上一页 1 2 3 4 5 6 ··· 12 下一页
摘要: 1. 建立动态映射 requset_mem_region:向内核申请需要映射的内存资源 ioremap:实现映射,传给物理地址返回虚拟地址 2. 销毁动态映射 iounmap: release_mem_region: 阅读全文
posted @ 2018-07-01 16:02 Ocean&Star 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 1. 静态映射: 不同版本内核中静态映射表位置,文件名可能不同 不同SoC的静态映射表位置,文件名可能不同 所谓映射表其实就是头文件的宏定义 2. 三星版本内核中的静态映射表 主映射表:F:\winshare\kernel\jiuding_kernel\arch\arm\plat s5p\inclu 阅读全文
posted @ 2018-07-01 16:01 Ocean&Star 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1. 不变: 硬件原理不变 硬件操作接口(寄存器)不变 硬件操作代码不变 寄存器地址不变:裸机直接用物理地址,现在用虚拟地址。 编程习惯不变:裸机用函数指针操作寄存器,现在用封装好的IO读写函数来操作寄存器。 2. 内核的虚拟地址映射方法(MMU) 两种方法: 静态映射: 在内核移植时就以代码方式硬 阅读全文
posted @ 2018-07-01 16:00 Ocean&Star 阅读(156) 评论(0) 推荐(0) 编辑
摘要: copy_from_user返回值:成功复制返回0,不成功复制则返回没有成功复制剩下的字节数 ./app [ 298.706261] test_chrdev_open [ 298.707817] test_chrdev_write [ 298.710645] copy_from_user succe 阅读全文
posted @ 2018-07-01 15:59 Ocean&Star 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 1. ./app 如果app只使用了write(fd, "hellowrite", 10);没有read的话,./app没有反应 error:如果该写了驱动,则应该重新安装驱动 lsmod Module Size Used by Not tainted module_test 1087 0 cat 阅读全文
posted @ 2018-07-01 15:58 Ocean&Star 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 1. 设备文件在/dev下 ls /dev/ (里面每一个文件代表一个硬件) 设备文件是用来索引驱动的(根据major) major相当于数组的下标 设备号=主设备号(决定设备种类如led)+次设备号(led1,led2) 2. 创建设备文件:mknod /dev/xxx c 主设备号 次设备号(c 阅读全文
posted @ 2018-07-01 15:48 Ocean&Star 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 1. F:\winshare\kernel\jiuding_kernel\include\asm generic\errno base.h定义了很多错误码 2. 用register_chrdev注册设备但是没有用unregister_chrdev注销函数 3. 加上unregister_chrdev 阅读全文
posted @ 2018-07-01 15:44 Ocean&Star 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 本节开始字符设备驱动的编码实践,首先把整体框架理顺,然后构建了file_operations结构体变量,并且填充了open和close方法。 5.2.8.1、准备 (1)目的:给空模块添加驱动壳子 (2)核心:file_operations及其元素填充、注册驱动 5.2.8.2、如何动手写驱动代码 阅读全文
posted @ 2018-07-01 15:41 Ocean&Star 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 本节讲解了register_chrdev函数,并且重点讲解了内核内部对字符设备驱动的管理机制。 5.2.7.1、register_chrdev( include ) (1)作用,驱动向内核注册自己的file_operations。驱动自己通过调用内核提供的register_chrdev函数向内核注册 阅读全文
posted @ 2018-07-01 15:40 Ocean&Star 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 5.2.6.1、系统整体工作原理 (1)硬件 设备驱动(实现open,read等) API 应用层 模块是驱动的雏形 驱动:软件控制硬件 (2)API:open、read、write、close等 (3)驱动源码中提供真正的open、read、write、close等函数实体 5.2.6.2、fil 阅读全文
posted @ 2018-07-01 15:34 Ocean&Star 阅读(219) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 12 下一页