自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 资源 (38)
  • 收藏
  • 关注

原创 Android Sensor Demo Framework实例

HAL 开发方式HAL Toolkit由用户开发Service服务及Service Runtime服务应用层, 用户需要开发应用程序以及对应的Service和Service Runtime。HAL层, 用户需要开发HAL模块, 设备代理对象HAL Framework使用Google提供的Framework Service提供的服务框架应用层, 用户只需要开发应用程序

2014-03-15 11:14:15 2093

原创 Android LED HVL Stub 实现

Vendor Hal Stub管理Hal Stub目前没有严格的标准  Interface(公布的方法)由各厂商决定  实现细节自己决定以products tree方式进行维护  易于管理  便于以后升级API & HAL stub开发流程开发LedService API设计Led Stub与LedService整合编写Led设备驱动开发设计测试

2014-03-15 10:56:47 1549

原创 Android HAL硬件抽象层

硬件抽象层硬件设备驱动包括对硬件操作进行封装的库以及协议等, 如显卡的2d库, 3d加速库, wifi协议等底层的基本的操作旧的硬件抽象层架构新的硬件抽象层架构旧的硬件抽象层架构Android App通过访问对应设备的服务访问设备,Service位于Application F

2014-03-14 16:51:25 1873

原创 Android系统烧写

fastboot烧写uboot内实现了fastboot协议,目标板进入uboot,进入fastboot模式,主机使用fastboot将指定的镜像烧到指定的分区recovery烧写按组合按键进入recovery模式,通过SD卡中的update.zip包进行烧写该方式进入linux内核,启动recovery镜像,通过界面选择烧写的软件包update.ziplivesuit烧写

2014-03-12 17:44:48 2886

原创 Android启动流程

Android启动流程硬件启动,加载Linux内核,挂载root文件系统init进程启动及Native服务启动System Server(蓝牙、GPS)及Android服务启动Home桌面启动init解释执行init.rc、init.xxx.rc[init.hardware.rc]Android启动过程分析init进程启动过程find ./syste

2014-03-12 17:36:41 1246

原创 Android Linux Kernel 移植流程

Android Kernel移植流程参考文档Documentation/android.txt修改kernel configAndroid DriverAndroid Binder:基于openBinder框架的驱动,进程间通信底层主要驱动,没有可它,android无法工作Android Logger:是一个轻量级的日志系统,在内核里是misc(杂项)设备驱动,

2014-03-12 17:30:28 3826

原创 Android编译环境搭建

Android编译环境搭建A Linux or Mac system.  The Android build is routinely tested in house on recent versions of Ubuntu LTS (10.04), but most distributions should have the required build tools avai

2014-03-12 10:22:46 1266

原创 Google Android软件架构

Application Framework 应用程序框架层通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。

2014-03-12 10:21:00 2026

原创 设备驱动(二十)

网络设备无设备节点基本功能:数据发送/接收关注点.probe申请资源,注册网络设备.open初始化硬件(参考芯片手册)发送队列(通知网络子系统可以发送数据包).stop关闭发送队列,复位硬件.hard_start_xinit数据发送函数(参考芯片手册).interrupt数据接收的中断处理网卡工作模

2014-03-06 18:12:08 938

原创 设备驱动(十九)

块设备以固定大小为单位访问支持随机访问,带缓冲块设备层次结构块设备子系统功能缓冲区管理优化,合并优化IO请求块设备驱动设备结构体 gendisk加载函数卸载函数 字符设备块设备操作集合file_operationsblock_device_operations.open对应o

2014-03-06 18:10:18 816

原创 设备驱动(十八)

在平台代码中添加device定义设备结构体struct i2c_board_info{}使用i2c_register_board_info注册添加驱动定义id_table数组struct i2c_device_id e2prom_ids={     {"24c02", 0}};驱动struct i2c_driver 24c02_deiver=

2014-03-06 18:03:56 860

原创 设备驱动(十七)

基于I2C子系统i2c-core:纽带;提供了一组通用的和硬件无关的接口函数I2C adapter driver :驱动总线产生时序i2c device driver:调用i2c-core中的函数完成i2c device driver的注册、注销和i2cmsg的封装i2c-dev在子系统中实现的通用i2c设备驱动,可用来访问任意i2c设备,为快速测试硬件I2C用户模式驱

2014-03-06 17:59:21 966

原创 设备驱动(十六)

ADCInput 0~3.3TSADCCON0[16] 转换精度[15] 结束标记位[14] 是否预分频[13,6] 分频值0xff[2] 0x0正常工作[1] 读操作时开始[0] 0x1开始转换TXDATX0 转换后的数字结果 [0, 11]CLRINTADC0模块许可加载函数注册字符设备注册中断 arch/arm/mach

2014-03-06 17:56:26 711

原创 设备驱动(十五)

开启设备的时钟struct clk *my_clk;     //定义时钟结构体my_clk = clk_get(NULL, "watchdog");     //获取设备的时钟信息clk_enable(my_clk);      //打开时钟clk_disable(my_clk);     //关闭时钟所有有关时钟的设备,只有打开时钟后设置设备的寄存器才有效。看门狗驱动原理图

2014-03-06 17:55:59 1128

原创 设备驱动(十四)

GPIO控制LED一、原理图、芯片手册     GPC0_3/4     GPC0CON     GPC0DAT二、驱动模块许可加载函数构建设备号申请设备号注册字符设备映射寄存器初始化设备卸载函数逆向卸载file_operations键盘驱动编写:一、原理图gph0 0~5gph2 6~7二、驱动

2014-03-06 17:55:30 915

原创 设备驱动(十三)

自动创建设备节点2.6内核支持devfs、udev两种方式创建设备节点2.6内核以后只支持udev在应用层自动创建设备节点udev有一个后台守护进程udev(嵌入式中有mdev,根文件系统中已经有mdev),会一直扫描/sys/class目录,自动创建和删除设备节点udev自动创建节点方式:1、创建设备分类struct class *myclass;myclas

2014-03-06 17:54:46 729

原创 设备驱动(十二)

设备模型内核对设备进行分类,以层次结构组织管理成为设备结构/sys/devices 下显示了所有的设备/sys/bus 按照总线分类显示了所有设备 /sys/class 按照功能类型分类显示了所有设备驱动和设备都会在总线上注册/sys/bus不需要总线的设备将会注册到flatform总线上为了达到驱动与平台的无关性使用设备

2014-03-06 17:53:59 811

原创 设备驱动(十一)

应用层申请内存malloc, calloc, realloc, free内核中申请内存申请/释放/映射按页分配(每页4K)unsigned long __get_free_pages(int gfp_mask, unsigned long order)得到的内存物理地址连续gfp_mask GFP_ATOMIC  不能分配也会返回GFP_KE

2014-03-06 17:50:06 768

原创 设备驱动(十)

获取时间1、jiffiesjiffies:从系统启动到当前,时钟中断产生的次数marco HZ 每秒产生的时钟中断次数,范围100~10002、使用do_gettimeofday函数延时1、长延迟以jiffy为单位的延迟叫长延迟(占用CPU)time_before(jiffies, new_jiffies)time_after(new_jiffi

2014-03-06 17:49:21 890

原创 设备驱动(九)

中断处理分为上下半部上半部:完成紧急的,不耗时的操作(ISR)下半部:不紧急,耗时的操作,一般使用内核延时机制执行下半部内核延时机制内核延时机制:内核在某个时间点调用执行指定的函数内核延时机制实现方式:tasklet/work queue/软中断(软中断不推荐)内核调度优先级内优先级中断 > tasklet > work queuetasklet

2014-03-06 17:48:50 827

原创 设备驱动(八)

Linux中断机制中断子系统对所有的中断源进行编号(中断号) 位置:linux-3.2/arch/arm/mach-s5pv210/include/mach/irqs.h判断中断源,执行相应的ISRIRQ_EINT(n)获取外部中断源中断号内核中存在中断描述表struct irq_desc irqdesc[];注册中断static inline

2014-02-18 09:47:09 756

原创 设备驱动(七)

IO模型阻塞非阻塞异步IO (信号驱动IO)IO多路复用(select poll epoll)阻塞与非阻塞等待队列头 wait_queue_head_t等待队列项 wait_queue_tread操作示例获取信号量判断是否有数据有数据,copy_to_user没数据,使用以下方式释放信号量判断是否是非阻塞若是非阻塞,返回EAGAIN若是阻塞,在等

2014-02-18 09:45:13 987

原创 设备驱动(六)

设备的并发访问互斥访问方式屏蔽中断原子操作自旋锁(关抢占, 自旋时处于运行状态, 忙等待)信号量 semaphore互斥添加位置     在具体的file_operations中添加互斥操作,例如在read, write中添加互斥操作自旋锁使用条件持有自旋锁的时间尽可能短持有锁时间严禁睡眠自旋锁使用方式spinlock_t l

2014-02-18 09:41:37 785

原创 设备驱动(五)

开发板与发行版编码规范MakefileDEBUG = n     //开发板测试版标识ifeq ($(DEBUG),y)     EXTRA_CFLAGS += -DHELLO_DEBUG     //根据DEBUG,动态配置编译参数,在命令行添加宏endifobj-m     += hello.oall:     make -C /

2014-02-18 09:33:03 691

原创 设备驱动(四)

实现操作集合实现open统计计数,检查错误申请资源识别次设备号,如果必要更新f_op指针实现realseopen逆操作实现实现read          copy_to_user返回值为未被读取的字节数实现write          copy_from_user          返回值为未被读取的字节数实现unlock

2014-02-18 09:19:01 734

原创 设备驱动(三)

设备分类 字符设备块设备网络设备访问方式顺序访问,字节为单位随机访问,固定大小为单位访问 设备键盘,键盘磁盘[扇区],FLASH[读:页,写:块] 有无缓冲没有有 有无设备文件有有没有设备号dev_t devno;     //32位的

2014-02-18 09:17:24 946

原创 设备驱动(二)

模块传参#include #include #include #include #include #define DRIVER_AUTHOR "Foobar"#define DRIVER_DESC   "A sample driver"MODULE_LICENSE ("GPL");MODULE_AUTHOR (DRIVER_AUTHOR);

2014-02-18 09:14:34 807

原创 设备驱动(一)

驱动是模块程序,模块程序不一定都是驱动模块三要素模块许可声明MODULE_LICENSE("GPL");加载函数默认是int init_module(void)成功返回0失败返回负数错误码卸载函数默认是void cleanup_module(void)模块与应用程序的区别 modulesapp运行空

2014-02-18 09:10:22 1369

转载 持续近40年的战争 X86系列CPU大史记

X86系列CPU大史记(1)    编者按:这是一篇强文,虽然从出文到现在已经一年的时间了,但是编者认为,作为历史来说是永远不过时的。就象司马迁的《史记》一样,到今天仍是经典。但毕竟时间已经进入2006年,因此,我对最后一部分内容作了少许改动。如有不妥,望见谅。     [前言]     计算机中最重要的是什么?毫无疑问是CPU,即中央处理器(微型处理器),它在计算机中的地位是

2014-02-08 20:58:35 2598

转载 软件版本Beta,RC,Release,Demo,Build

版本总结版本号:V(Version):即版本,通常用数字表示版本号。(如:EVEREST Ultimate v4.20.1188 Beta )Build:用数字或日期标示版本号的一种方式。(如:VeryCD eMule v0.48a Build 071112)SP:Service Pack,升级包。(如:Windows XP SP 2/Vista SP 1)授权和功能划

2014-02-08 13:10:20 1278

原创 SQLite install

背景Ubuntu 12.04SQLite 3.8.2下载源码去sqlite官方下载源码sqlite-autoconf-3080200.tar.gz。解压tar包.安装查看README和INSTALL文档知道sudo ./configuresudo make install测试执行sqlite3 test.db

2014-01-14 21:37:28 1410

原创 Linux下进程间通信

Linux下进程间通信概述Linux下的进程通信基本上是从UNIX平台上的进程通信继承来的。而对UNIX发展做出最大贡献的俩大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了“System V IPC”,其通信主要局限在单个计算机内;后者跳出了该限制,形成了基于套接字(

2014-01-06 15:23:34 1176

原创 C语言 线程同步互斥生产者消费者

gcc producer_and_consumer.c -pthread#include #include #include #include #include #include #include #define PRODUCER_NUM 10#define CONSUMER_MUM 8#define BUFFER_SIZE 20#define SLEEP_TIME 1

2014-01-04 23:10:02 2838

原创 虚拟内存技术

1 虚拟内存技术1.1虚拟地址(逻辑地址)    操作系统中申请的物理空间,都会映射到虚拟地址上。然后可通过虚拟地址访问物理空间。1.2 内存页面    操作系统分配(映射)物理空间时,以页为单位    malloc申请的空间后台会用一定的数据结构来管理    brk/sbrk申请的空间后台会维护一个位置    mmap申请的空间由程序员自己管理1.3 sbrk(i

2013-12-30 09:28:38 970

原创 C语言内存管理

首先简单介绍一下概念:程序:在磁盘保存的可以运行的文件进程:正在运行的程序,存在于内存中一个进程空间被划分为以下部分:1)代码区:要执行的程序被放入此区,只读区域2)全局区:保存全局变量,mian函数执行前分配3)BSS段:保存未初始化的全局变量,BSS段在mian函数执行前会被清04)栈区:保存局部变量(包括函数参数),内存分配释放都是自动进行的5)堆区:也叫自由

2013-12-29 17:02:17 970

转载 二叉树遍历之非递归算法

在前一篇文章二叉树遍历递归算法对二叉树遍历的递归算法做了总结,这篇文章就来对二叉树遍历的非递归算法做个汇总。还是与上一篇文章一样的顺序,一一汇总先序、中序、后序以及层序遍历的非递归算法。1、先序遍历(非递归算法)先序遍历非递归访问,使用栈即可实现。先序遍历的非递归访问在所有的遍历中算是最简单的了。主要思想就是先将根结点压入栈,然后根结点出栈并访问根结点,而后依次将根结点的右

2013-12-23 22:04:21 1712

原创 结构体与共用体

结构体结构体是用户定义的新数据类型,在结构体中可以包含若干个不同数据类型和不同意义的数据项(相同也可以),从而使这些数据项组合起来反映某个信息。不考虑内存补齐,结构体占用的空间为所有元素占用的总空间。//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c//同时又声明了结构体变量s1//这个结构体并没有标明其标签struct { in

2013-12-16 20:25:14 1614 1

原创 C语言内存管理

局部变量全局变量存储类别autoregisterstatic局部static全局外部全局存储区栈寄存器静态存储区(存放字符串)生命期函数调用期间程序整个运行期间作用域代码块内本文件本文件及其他文件(其他文件需要用extern声明后使用)赋初值每次函数调用时编译时赋初值,只赋值

2013-12-16 19:33:05 876

转载 buntu 12.04 安装VMware Tools无法找到kernel header path的问题

在使用VMware的共享文件夹时,需要虚拟机操作系统安装VMware Tools。Ubuntu 12.04 安装 VMware Tools,运行vmware-config-tools.pl 时,总是提示The path "" is not valid.What is the location of the directory of C header files that match y

2013-12-13 13:43:43 1854

原创 gcc基本用法

Gcc最基本的用法是:gcc [options] [filenames]-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-o output_filename,确定输出的文件的名称-g,产生符号调试工具(GNU的gdb)所需要的符号资讯-O,对程序进行优化编译,连接,采用该项,这样产生的可执行文件效率可

2013-12-13 10:31:28 852

JSP_使用_Session_ArrayList_实现购物车程序

JSP_使用_Session_ArrayList_实现购物车程序

2012-03-24

Oracle 11g 安装&卸载步骤

Oracle 11g 安装&卸载步骤

2012-03-26

操作系统更换后Oracle不能使用的问题

解决操作系统更换后Oracle不能使用的问题

2013-01-12

jsp url中文乱码四种解决方式

get提交中文乱码 地址重写中文乱码 jsp url中文乱码四种解决方式

2012-03-19

eclipse-maven3-plugin

eclipse-maven3-plugin 离线插件

2013-03-26

uploadify.zip

内容包括: 超棒的jquery上传插件Uploadify3.1中文详细参考手册.pdf jquery.uploadify-3.1.rar

2013-09-26

uml2tools for eclipse

mdt-uml2tools-Update-incubation-0.9.0.zip uml2tools for eclipse plugin

2013-08-21

MLDN Java Web 开发实战经典案例篇全部代码2of1

MLDN Java Web 开发实战经典 案例篇 全部代码 基础篇 习题答案

2012-03-30

jquery放大镜效果

jquery放大镜效果

2012-11-17

sql-map-config-2.dtd

sql-map-config-2.dtd

2013-08-14

Ibatis 2.3.4 数据库无关分页

Ibatis 2.3.4 数据库无关分页 有示例,可以运行 网上找的很不错

2013-07-12

java-ee-5.chm

java-ee-5 文档 j2ee 5.0 API

2012-03-24

eclipse-svn-plusin

eclipse svn plusin 插件 离线

2013-03-26

java web标签

java web标签 struts2标签 web开发必用的标签 chm(帮助文档)格式

2012-11-17

JQuery-esqyUI中文-1.2.5API.CHM

JQuery-esqyUI中文-1.2.5API.CHM

2013-01-12

MyEclipse 9.0 非常简单 图文讲解

基于Windows下MyEclipse 9激活的图解说明 MyEclipse 9.0 非常简单 图文讲解

2012-04-03

JAXWS2.2-20091203.zip

JAXWS2.2-20091203.zip

2013-06-18

Android启动过程分析

Android启动过程分析 Android启动过程源码分析

2014-03-12

pthread_cond_wait详解

一篇博客内容 pthread_cond_wait详解

2015-03-20

ORACLE 11gR2 官方文档中英对照版

ORACLE 11gR2 官方文档中英对照版

2013-12-29

Source Insight 常用设置和最佳配色

Source Insight 常用设置和最佳配色

2014-03-27

SensorDemo HAL DEMO

SensorDemo HAL DEMO framework

2014-03-15

Mac cmake 与 lldb 手动按照

解决Android SDK 不能发现CMAKE 与 LLDB,导致不能安装 cmake 3.6.4111459 3 LLDB 3.1 解压后放到SDK根目录即可

2020-12-13

busybox下local配置

解决在busybox下没有语言环境导致的问题 例如setlocale 函数不可用等

2014-07-08

LedDemo,Android LED HVL Stub实现

LedDemo Android LED HVL Stub 实现

2014-03-12

vimrc 配置文件

vimrc 配置文件

2013-12-12

vim简单的配置文件

vim简单的配置文件

2013-12-12

SerialInterface 串口HAL Toolkit

Android Serial 串口 HAL Toolkit

2014-03-13

vim配置文件

包含代码提示 使用tar xf vim_pkg.tar.gz解压到用户家目录下即可 适用于vim-gnome,需要安装ctags插件

2018-02-05

Mac os串口调试助手

简单方便易用,一看就懂的Mac OS下串口调试工具 免安装、绿色版

2016-01-07

Sublime-Text-2中文包.zip

Sublime-Text-2中文包.zip

2015-05-21

SD卡物理层规范学习套装.zip

Part_1_Physical_Layer_Specification_Ver2.00_Final_060509.pdf【184页】 SD卡系统物理层规范(中文翻译).pdf【74页】 MMC子系统流程分析.doc linux SD卡驱动分析.pdf

2014-05-24

邓凡平-TS-DLNA解决方案介绍.zip

邓凡平-TS-DLNA解决方案介绍.zip 包含详细讲解的ppt以及有关的视频演示 非常不错

2014-08-21

嵌入式系统--体系结构.编程与设计 .pdf

嵌入式系统--体系结构.编程与设计 .pdf

2013-12-10

空空如也

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

TA关注的人

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