android底层开发流程_从linux驱动到APK调用_图文详解

android底层开发流程_从linux驱动到APK调用_图文详解

ID:37637220

大小:654.62 KB

页数:17页

时间:2019-05-27

android底层开发流程_从linux驱动到APK调用_图文详解_第1页
android底层开发流程_从linux驱动到APK调用_图文详解_第2页
android底层开发流程_从linux驱动到APK调用_图文详解_第3页
android底层开发流程_从linux驱动到APK调用_图文详解_第4页
android底层开发流程_从linux驱动到APK调用_图文详解_第5页
资源描述:

《android底层开发流程_从linux驱动到APK调用_图文详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第一步:在Linux下编写驱动程序1,在Linux3.0/driver/->mkdirhello_me2,在hello_me目录下,新建编写makefiel和Kconfigmakefile如下:[csharp]viewplaincopyprint?1.#2.#MakefileforHELLO_ME_LEDS3.#4.5.#SPItestingonlyfor(usingspidevdriver)6.#file->spi_test.c7.8.#version1.0.09.10.#date201

2、4年04月23日11.12.#authorjiangdou13.14.#Copyright(c)2014jiangdou.AllRightsReserved.15.16.obj-$(CONFIG_HELLO_ME_LEDS)+=leds.oKconfig如下:[cpp]viewplaincopyprint?1.#2.#HSIdriverconfiguration3.#4.5.6.7.configHELLO_ME_LEDS8.tristate"HELLO

3、_MELEDSDriver"9.10.help11.SayYhereifyouwanttosupporttheLEDSdeviceleds.c如下:[cpp]viewplaincopyprint?1.#include2.#include3.#include4.#include5.#include6.#include7.#i

4、nclude8.#include9.#include10.#include11.12.13.#if114.#defineGPIO_BASE0x01C2080015.#defineGPE_CFG0(GPIO_BASE+0x90)//PECFG016.#defineGPE06_CFG(1<<24)//配置PE06为输出模式17.#defineGPE_DATA(GPIO_BASE+0xA0)18.#

5、endif19.20./*自动创建设备节点结构体*/21.staticstructclass*leddrv_class;22./*cfg0里面有PE06*/23.volatileunsignedlong*gpe_cfg0=NULL;24.volatileunsignedlong*gpe_date=NULL;25.26.27./*设备打开函数,当你在应用程序里面对led执行open函数这个函数就会被执行*/28.staticintled_drv_open(structinode*inode,str

6、uctfile*file)29.{30.31./*将PE06_CFG位清零*/32.*gpe_cfg0&=~(GPE06_CFG);33./*将PE06_CFG位置1,即设置为输出模式*/34.*gpe_cfg0

7、=GPE06_CFG;35.36./*在内核里面打印要用printk*/37.//printk(KERN_ALERT"ledopeni");38.printk("ledopeni");39.return0;40.}41./*设备写函数,当你在应用程序里面对led执行write函

8、数这个函数就会被执行*/42.staticssize_tled_drv_write(structfile*file,constchar__user*buf,size_tcount,loff_t*ppos)43.{44.//printk(KERN_ALERT"ledwrite");45.intval;46./*内核空间和用户空间相互独立,两者之间数据交换要用这个函数*/47.copy_from_user(&val,buf,count);48.if(val==1)49.{50./*置0,相当pi

9、n_write写0*/51.//*gph_date&=~(0×03<<15);//写PH15,PH1652.*gpe_date&=~(0x01<<6);//写PE0653.}54.else55.{56./*置1,相当pin_write写1*/57.//*gph_date

10、=(0×03<<15);58.*gpe_date

11、=(0x01<<6);59.}60.return0;61.}62./*linux设备驱动里面每个设备都得要一个设备描述符,其实就可以结构体,有兴趣的可以看看他的原型*/63.st

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。