自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (11)
  • 收藏
  • 关注

原创 Android系统之SD卡分析三

Android系统之SD卡分析一 和 Android系统之SD卡分析二主要简单介绍了SD卡的挂载流程以及所涉及的关键文件。在《Android系统之SD卡分析三》中,将简要介绍Android 2.3中Vold的运行机制,并从接收内核uevent开始介绍程序调用流程。1. Vold     Vold的全称是volume daemon。主要负责系统对大容量存储设备(USB/SD)的挂载/

2016-03-13 23:02:08 694

原创 Android系统之SD卡分析二

1.SD卡挂载流程图SD卡的挂载流程图如下:绿色箭头:表示插入SD卡后事件传递以及SD卡挂载红色箭头:表示挂载成功后的消息传递流程黄色箭头:表示MountService发出挂载/卸载SD卡的命令大家可能对图中突然出现的这么多的名称感到奇怪,这些都是在Android 源码中可以找到的,接下来我会为大家一一解释这些类的作用.2.各个文件的主要作用 (1)Kernel

2016-03-13 22:32:08 580

原创 Android系统之SD卡分析一

在Android系统中,当SD卡插入系统之后,系统会自动挂载。Vold 就是负责挂载SD卡的,vold 的全称是volume daemon。实际上是负责完成系统的CDROM,USB 大容量存储,MMC 卡等扩展存储的挂载任务自动完成的守护进程。它提供的主要特点是支持这些存储外设的热插拔。在Android上的这个vold系统和GNU/Linux的之间存在很大的差异。自Android 2.2开

2016-03-13 22:15:39 2210

原创 SD/eMMC寄存器介绍

熟悉SD/MMC的相关寄存器对协议的理解有一定的辅助作用,所以这篇文章来介绍一下SD/MMC相关的寄存器有哪些呢?1.SD卡内部架构在熟悉SD/MMC相关寄存器之前,我们先来看看SD卡的内部架构是怎么样的,如下图所示:2.SD/MMC相关寄存器的介绍从上图中总结出:SD卡内部有7个寄存器.一、OCR,CID,CSD和SCR寄存器保存卡的配置信息;二、

2016-03-12 23:13:15 5739

原创 android 删除某个目录及其子目录

/*要加载这两个类*/import java.io.File;import android.text.TextUtils;删除目录及其目录下的子目录和文件 public void deleteFolderFile(String filePath, boolean deleteThisPath) { if (!TextUtils.isEmpty(filePath)) {

2016-03-07 16:25:51 3070

原创 Android系统之G-sersor调试

----------------------------------------------------------------------------------------------------------------gsensor原理:gsensor的作用是测量重力在x,y,z3个方向的分量。重力是1G=9.8。在gsensordriver打印出的x,y,z值就是gsensor

2016-02-28 00:17:30 2955

原创 Linux内核通知链原理及机制

一、概念:   大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。通知链表是一个函数链表,链表上的每一个节点都注册了一个函数。当某个事情发生时,链表上所有节点对应的函数就会

2016-02-27 23:43:49 331

原创 Android系统启动时添加运行脚本

最近在做项目的过程中,遇到了这么一个需求,需要在Android(4.2.2)启动时候执行以下命令,命令的具体含义不再解释:mount -t usbfs none /proc/bus/usb最初做法是将其加入init.rc文件中,但是发现此方法行不通,原因到现在也未查明,希望知道原因的朋友能够留言告知,不胜感激o(∩_∩)o 。接着查阅相关资料,发现将命令写入一个

2016-02-27 23:42:08 1185

转载 Android按键映射

一:  用户空间的处理 1.处理的内容和流程触摸屏和轨迹球上报的是坐标、按下、抬起等信息,信息量比较少。按键处理的过程稍微复杂,从驱动程序到Android的Java层受到的信息,键表示方式经过了两次转化,如图8-4所示。图8-4  Android按键输入的两次转化键扫描码Scancode是由Linux的Input驱动框架定义的整数类型。键扫描码Scancode经过一

2016-02-27 23:40:45 3504

转载 Android系统之G-sensor

一、首先建立这样一个全局的观念:    Android中sensor在Android系统架构中的位置及其工作。方框图如下:从以上方框图中,可以看出Android中sensor在系统分为四层:驱动层(Sensor Driver)、硬件抽象层(Native)、中间层(Framework)、应用层(Java)。硬件抽象层与中间层可以合并一起作为Framework层。针对我们xx这里一

2016-02-27 23:37:08 2802

原创 Linux LCD驱动分析

一.LCD屏理论1.1 LCD屏基本概念我们知道,诸如PCI、I2C和USB等外围设备总线都来自于系统PC机的南桥,今天我们看到的视频控制器则来自于北桥。LCD主要由TN(扭转向列型)、STN(超扭转向列型)、DSTN(双层超扭曲向列阵)和TFT(薄膜式晶体管型)四种显示器,许多MCU内部直接集成了LCD控制器,通过LCD控制器可以方便地控制STN和TFT屏,其中TFT屏是

2016-01-04 13:57:48 507

原创 GPS数据解析

#ifndef __GPS_H__#define __GPS_H__#include "common.h"typedef struct{u8 UTCDateTime[6]; //YMDHMSu8 Status; //A/Vu8 Latitude[9]; //ddmm.mmmmu8 NS; //N/Su8 Longitude[10]; //dddmm.mmmmu8 EW; /

2015-12-30 09:40:20 1375

转载 GPS数据包解析

GPS数据包解析GPS 上电后,每隔一定的时间就会返回一定格式的数据,数据格式为:$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x每行开头的字符都是‘$’,接着是信息类型,后面是数据,以逗号分隔开。一行完整的数据如下:$GPRMC,080655.00,A,4546.40891,N,12639.65641,E,1.045,328.42,170809,,,A*60

2015-12-30 09:33:50 493

原创 strace 调试

strace命令详解strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。  strace 显示这些调用的参数并返回符号形式的值。strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。  下面记录几个常用 option .  1 -f -F选项告诉strace同时跟踪fork和vfork出来的进程  2 -o xxx.txt 输出到某个文

2015-12-20 22:26:23 395

原创 USB驱动结构分析

drivers\usb\usb-skeleton.cmodule_usb_driver(skel_driver) //是一个宏...int usb_register_driver(struct usb_driver *new_driver, struct module *owner,const char *mod_name)-->driver_register(&new

2015-12-12 13:45:13 568

原创 SD/eMMC驱动详解

声明:此原创非彼原创,资料来源于网络,只是经过加工整理罢了。如果引用了你的资料并没有说明出处,敬请原谅!仅供学习参考。1. 总论 1.1 概念MMC - MultiMedia CardSD    - Secure Digital Card1.2 分类按存储大小,普通SD卡(2GB,按体积大小,普通SD卡,mini-SD卡,micro-SD卡(TF卡)

2015-12-04 15:39:07 10534 1

原创 SD卡驱动理论篇

声明:此原创非彼原创,资料来源于网络,只是经过加工整理罢了。如果引用了你的资料并没有说明出处,敬请原谅!仅供学习参考。 一.SD/MMC卡介绍1.1.什么是MMC卡       MMC:MMC就是MultiMediaCard的缩写,即多媒体卡。它是一种非易失性存储器件,体积小巧(24mm*32mm*1.4mm),容量大,耗电量低,传输速度快,广泛应用

2015-12-04 15:27:45 550

原创 ARM的BIN文件反汇编方法

最近在帮别人反汇编一个pos机的bin文件,调试的方法如下。使用arm-linux 工具链里面的arm-linux-objdump 就能反汇编cd到bin文件所在的目录, 在命令行下输入:arm-linux-objdump -D -b binary -m arm xxx.bin > xxx.asm参数:-D 反编译所有代码-m 主机类型, arm-b 文件格式, bin

2015-11-22 12:08:32 3490

原创 Android HAL Stub框架分析 .

声明:此原创非彼原创,资料来源于网络,只是经过加工整理罢了。如果引用了你的资料并没有说明出处,敬请原谅!仅供学习参考。HAL stub的框架比较简单,三个结构体、两个常量、一个函数,简称321架构,它的定义在:@hardware/libhardware/include/hardware/hardware.h@hardware/libhardware/hardware.c/* 每

2015-11-18 13:28:46 610

原创 内核通知链原理及机制

声明:此原创非彼原创,资料来源于网络,只是经过加工整理罢了。如果引用了你的资料并没有说明出处,敬请原谅!仅供学习参考。一、概念:   大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户

2015-10-06 22:43:44 327

原创 adb命令查看报名和查看手机分辨率

声明:此原创非彼原创,资料来源于网络,只是经过加工整理罢了。如果引用了你的资料并没有说明出处,敬请原谅!仅供学习参考。打开所要查看的应用包名:$ adb shell dumpsys activity top | head -n 10TASK com.ss.android.article.news id=5 ACTIVITY com.ss.android.article.news/

2015-10-06 22:15:11 611

原创 蓝牙核心技术概述(三): 蓝牙协议规范(射频、基带链路控制、链路管理)

声明:此原创非彼原创,资料来源于网络,只是经过加工整理罢了。如果引用了你的资料并没有说明出处,敬请原谅!仅供学习参考。下载链接:Bluetooth PROFILE SPECIFICATIONS (基本涵盖所有蓝牙协议)、buletooth core 2.1-4.0 SPECIFICATION(三蓝牙版本的核心协议v2.1\v3.0\v4.0)、蓝牙核心技术与应用 马建仓 版

2015-09-13 23:50:47 536

原创 eMMC分区详解

    最近总结了一下关于eMMC分区的一些资料,在此分享给大家,希望对大家在这方面的工作有所帮助:      大家一般所熟悉的分区的概念是在逻辑上将一个磁盘或存储设备分为几个区,每个区当做独立磁盘,以方便使用和管理。例如第一个磁盘的第一个分区叫做sda1,第二个磁盘的第二个分区叫做sda2;第二个磁盘的第一个分区叫做sdb1,第二个磁盘的第二个分区叫做sdb2。      大家所

2015-08-31 23:00:31 2122

转载 andorid系统启动过程中添加启动脚本

最近在做项目的过程中,遇到了这么一个需求,需要在Android(4.2.2)启动时候执行以下命令,命令的具体含义不再解释:mount -t usbfs none /proc/bus/usb最初做法是将其加入init.rc文件中,但是发现此方法行不通,原因到现在也未查明,希望知道原因的朋友能够留言告知,不胜感激o(∩_∩)o 。接着查阅相关资料,发现将命令写入一个sh文件中,之后在开机的

2015-08-20 14:02:35 444

转载 Linux进程调用原理

Linux进程调度原理    Linux进程调度的目标    1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效;    2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间;    3.保证公平和避免饥渴;    4.SMP调度:调度程序必须支持多处理系统;    5.软实时调度:系统必须有

2015-08-15 22:56:36 1405

原创 Android系统优化

这些其实就是优化rom 的一些实用小技巧. 觉得很多还是有用的.Build.prop (编辑 /system/build.prop 文件(需要root, 可以用文件管理器或者其他root explorer)如果build.prop里面有这些参数,只需要把数值更改1. 强制把Home程序驻入内存.参数:ro.HOME_APP_ADJ=12.提高 JPG 质量为 100%参

2015-08-12 17:36:56 1068

原创 程序猿必须掌握的git命令

git status -sM README           //M表示修改过的文件,没有addMM Rakefile        //第一个M表示修改过没有add,第二个M表示 add了但是没有commitA lib/git.rb       //A表示新添加的文件,已经add但是还没有commitM lib/simplegit.rb //M表示修改过但是没有add??

2015-08-12 17:34:54 351

原创 Android4.4 GPS框架分析

GPS HAL层代码在目录trunk/Android/hardware/xxx/gps/skytraqskytraq_gsp.c,向下与硬件驱动通讯,向上提供接口GPS JNI层层代码在目录trunk/Android/frameworks/base/services/jni/com_android_server_location_GpsLocationProvider.cpp C与java转

2015-06-28 22:02:52 2027

原创 android 限制广播消息的接收者

在android系统中sendBroadcast和BroadcastReceiver。只要BroadcastReceiver指定的action和sendBroadcast action一致就可以就行消息接收。但是我们有这样的需求即我发送的广播不允许所有应用都可以接收广播消息,而是要经过发送者允许的才可以。比如某一个产品簇,每一个产品发送的广播消息只允许本簇内的产品才允许接收消息。其它应用即使act

2015-06-23 09:33:40 636

原创 Android系统从kernel启动过程

Android init进程启动一、Android Init.c执行流程Android中的内核启动后,kernel会启动第一个用户级别的进程:init,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程。PS:可以通过:ps aux |

2015-06-17 14:28:54 875

原创 C语言位图查找(面试题)

今天在某公司面试,出现这样一道面试,大概意思如下:假设某系统同时最多支持128个设备,要求从编号1开始分配设备编号,例如,当设备编号 1, 2, 3, 5, 6,已经分配,那么下次插入一个设备的时候要求分配编号4,试题给定定一下参数,#define uint32 unsigned int#define uint8  unsigned charuint32 bitmap[4];

2015-05-21 01:21:21 518

原创 Android 编译命令及选项

Android编译命令及选项1 运行build/envsetup.sh,该文件提供m,mm,mmm等命令#. ./build/envsetup.sh注意: . . 之间是空格运行之后用help查看命令#helpm 编译整个android工程mm 编译当前目录下的模块mmm path 编译指定目录下的模块2 配置参数#tapas运行该命令后会出现:Bu

2015-05-16 14:59:05 518

转载 Android距离感应器P-Sensor浅析

(一)  前言P-Sensor,距离感应器,可以感应手机和人体距离。具体使用用途是在通话过程中打开P-Sensor,那么当手机屏幕贴近用户脸部时,就会自动感应出手机和人体距离是多少。当小于某一个值时,就会熄灭屏幕,不再接收用户触摸屏幕事件,从而有效的防止通话过程中误触摸事件的出现。(有很多人通话过程中脸部会触碰到挂断键,从而导致通话中断有没有? ^_^)。(二)  打开P-Sensor

2015-05-15 14:50:25 13724 2

原创 linux块设备驱动

字符设备与块设备I/O操作有一下不同:1:块设备只能以块为单位接受输入和返回输出,而字符设备以字节为单位。大多数设备是字符设备,因为他们不需要缓冲而且不以固定块大小进行操作。2:块设备对应I/O操作有对应的缓冲区,因此他们可以选择以什么顺序进行访问,字符设备无缓冲并且直接进行读写3:字符设备只能顺序的读写,而块设备能够随机的访问。弄懂Linux块设备驱动程序,必须理解块设备

2015-05-07 22:55:11 522

原创 Linux驱动之input子系统

input子系统主要应用在 TP,Sensor,和一些按键之类的驱动中,对于驱动工程师来说,写input设备驱动工作量很少,只要是分别一个input_device结构体然后设置事件,当有事件发送的时候上报事件就可以,当然,还是要理清input子系统的框架,这个很重要,以下是我个人对input子系统的理解。input子系统也主要分为三次,input核心层(input.c),input设备层(自己

2015-05-06 15:55:56 340

转载 数据段、代码段、堆栈段、BSS段的区别

5个数据段       进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。Linux进程的五个段下面我们来简单归纳一下进程对应的内存空间中所包

2015-05-05 23:18:28 353

原创 Linux驱动之i2c

如果应聘Linux驱动的工作岗位,面试官一般就会问你i2c驱动程序框架,下面就以我个人的理解来谈谈i2c驱动程序框架。Linux驱动中的 i2c驱动主要有 四个结构体,要弄清Linux下i2c驱动,必须理解一下四个结构体的关系,struct i2c_adapter { struct module *owner; //所属模块 unsigned int id;

2015-05-05 10:42:48 503

原创 linux 驱动之异步通知

linux驱动异步通知是指应用程序app不去主动调用驱动程序,而是有驱动程序主动将发生事件的结果告诉app,比如按键驱动,当有一个按键按下或者抬起的时候,就会主动通知app而无需app一直在那里等待按键事件的发送,中断+等待队列和poll机制也是app主动去调用驱动接口函数,而异步通知是驱动主动告诉app。异步通知必须做到以下几点:1:注册信号处理函数                   

2015-05-03 11:25:25 487

原创 linux驱动之poll

poll机制是指驱动中,如果事件(如中断)没有发生,在一段时间内事件还没有发生,那么就超时返回,如果在这段时间有时间发生,那么就直接相应事件,等事件相应后返回。驱动代码#include #include #include #include #include #include #include #include #include #include #include

2015-05-02 20:30:34 302

转载 container_of()宏

  在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/** * container_of - cast a member of a structure out to the containing structure * @ptr:        the point

2015-04-29 12:18:40 253

数据恢复工具

专业数据恢复工具,可以用做SD卡、移动硬盘、数据硬盘等等

2018-08-10

移植Android到mini2440.doc

移植Android到mini2440.doc

2015-01-11

计算机组成原理.胡越明.pdf

计算机组成原理教材原版,计算机组成原理.胡越明.pdf

2015-01-11

THS8200 datasheet

THS8200数据手册(完整版)官方网站下载

2013-08-26

嵌入式学习方法

嵌入式linux学习方法

2012-11-06

Mini2440 Linux移植开发实战指南.pdf

Mini2440 Linux移植开发实战指南.pdf

2012-11-06

How We Test Software at Microsoft

How We Test Software at Microsoft

2011-07-21

How We Test Software at Microsoft

How We Test Software at Microsoft

2011-07-21

常用protel零件封装库大全 .rar

常用protel零件封装库大全包含丰富 的封装库

2011-06-04

12864字符液晶图形软件

12864液晶图形软件可以直接生成对应的坐标

2011-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除