摘要: 概述:inotify检测目录下文件的新建与删除,epoll监测某个文件被写了还是被读了。二者结合实现热插拔检测。inotify介绍:/* 功能: 初始化inotify 返回值: inotify的文件描述符,以后的add操作将要用到*/ int inotify_... 阅读全文
posted @ 2017-03-01 21:23 云鹤比天 阅读(353) 评论(0) 推荐(0) 编辑
摘要: kobject与sysfs:设备和驱动的最基本单位都是基于kobject实现的。 kobject对应/sys/xxx_bus/或者/sys/class/下的某个目录, kobject中有包含了一些属性,对应/sys/xxx/xxx/下面的狗哥文件。kobject与文件层次之间的关系... 阅读全文
posted @ 2017-02-27 15:35 云鹤比天 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 1.传数组:java端:JNI端:传字符串:1.java端:2.jni端: 阅读全文
posted @ 2017-02-27 13:36 云鹤比天 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 动态jni:1.java端:静态初始化块:加载类时就执行,去加载本地库用native 声明本地方法jni端:这里面函数和变量的定义规则不同,除了void型,其他记得加j前缀,JNI_OnLoad()函数,很重要将jni编译生成动态库:arm-linux-gnueabi-gcc -s... 阅读全文
posted @ 2017-02-25 12:18 云鹤比天 阅读(490) 评论(0) 推荐(0) 编辑
摘要: javaVM与DVM的区别:1. DVM基于寄存器,执行速度快,访问效率高;javaVM基于栈;2.后缀不一样javaVM是.class; javaVM是.dex;执行一个shell脚本的方法:1. ./my.sh ... 阅读全文
posted @ 2017-02-23 11:57 云鹤比天 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 框架解释:见xmind思维导图:实例:例程代码下载:https://git.coding.net/xxgui1992/LinuxDriver-usb.git 阅读全文
posted @ 2017-02-22 16:16 云鹤比天 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 概述:对于我们写驱动的来说,nand Flash、norFlash 等常见设备的驱动内核已经帮我们是实现好了,我们只需要在板级文件或平台文件中对分区表信息进行修改(如arch/arm/match-s3c24xx/mach-jive.c)。针对不同的CPU,根据nand控制器时序要求... 阅读全文
posted @ 2017-02-20 17:07 云鹤比天 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 裸机 时序1. 读寄存器:1. *(unsigned int *)0x5000000 = reg; //从哪个寄存器读 //0x5000000为bank1,访问bank1时他会自动产生nGCSx信号和WE信号, // MCU的地址总线上会出现0x50000000,数据总线 上会出现... 阅读全文
posted @ 2017-02-16 17:01 云鹤比天 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 概念及作用:应用层有这样的需求:我要映射一片空间,但这片空间不是随便的一片空间,他跟我当前要操作的设备有关联,但我又不知道他的绝对物理地址,只是想能够获得一片与该设备相关的,偏移一定偏移量的区域,并映射到用户空间。那么此后我在用户空间操作这片虚拟地址就相当于操作了与该设备相关的物理... 阅读全文
posted @ 2017-02-13 22:15 云鹤比天 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 数据结构重要函数:mmap:1.运用层:【1】void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);功能:在进程的虚拟地址空间建立一个内存映... 阅读全文
posted @ 2017-02-11 17:18 云鹤比天 阅读(110) 评论(0) 推荐(0) 编辑