模块与驱动
文章平均质量分 82
模块与驱动
hjjdebug
西方用26个字母表示世界,计算机用0,1两个数字表示世界,大道至简!
人类用6号元素碳来思考, 计算机用14号元素硅来演算,精妙绝伦!
展开
-
文件数据IO 的细节分析
## 文件数据IO 的细节分析:参考:Linux设备驱动开发详解:基于最新的Linux4.0内核:宋宝华编著.编程离不开数据, 所以数据获取是编程的第一步.#### 1.文件打开方式数据IO可以是阻塞式式的或非阻塞式的. 例如读取数据,当数据没有准备好时,是把读取线程或进程阻塞,还是立即返回一个无数据的错误. 这可由用户选择.默认的文件打开方式是阻塞式读写. 如果想非阻塞式读写,需要如此打开文件:int fd = open(path,O_RDONLY | O_NONBLOCK) 这..原创 2021-03-15 10:57:26 · 170 阅读 · 0 评论 -
Ubuntu下查看usb设备信息
Ubuntu下查看usb设备信息新来了一个usb 设备, 飞天的加密狗. 怎样来熟悉它?插上硬件1. 用dmesg 看看内核说什么?[ 1738.688160] usb 1-1.2: new full-speed USB device number 8 using ehci-pci[ 1738.798968] usb 1-1.2: New USB device found, idVendor=096e, idProduct=0209[ 1738.798974] usb 1-1.2: New原创 2020-10-23 10:58:41 · 16378 阅读 · 4 评论 -
编译内核模块及交叉编译内核模块
理解了它就简单了,所以关键是理解.编译内核模块,可以用两种方法.1. 常规方法,通过make menuconfig 去设置对应的项,将功能编进内核或编成module.2. 利用内核环境直接从模块源代码编出module第一种方法菜单操作,不易出错.第二种方法更简单,实质.可以理解模块的生成过程下面以usb转串行口驱动的生成为例来说明.将pl2303.c pl2303.h 源码cop...原创 2020-01-19 12:02:36 · 2857 阅读 · 0 评论 -
hello world 级别模块程序
模块是内核执行的代码,与应用也没有什么本质的差别。只不过它有它的书写规范下面看一个简单的hello world 级别module 代码。--------------------------------------------------------------------------------[root@hjj /home/samba/test]# cat test.c---...原创 2014-05-08 17:28:47 · 764 阅读 · 0 评论 -
centos 为当前linux 内核下载源码以便开发编译module
-------------------------------------------------centos 为当前linux 内核下载源码以便开发编译module-------------------------------------------------如果按照下载对应源码,配置编译内核就太繁琐了。有简单办法. 用yum 安装内核源码包就可以了(可能要更新内核)先原创 2014-09-09 11:00:56 · 2374 阅读 · 1 评论 -
字符型设备驱动程序--gpio 驱动实例
概述: 字符设备驱动程序: 是按照字符设备要求完成的由操作系统调用的代码。重点理解以下内容:1. 驱动是写给操作系统的代码,它不是直接给用户层程序调用的,而是给系统调用的2. 所以驱动要向系统注册。3. 注册的时候,要求驱动必须符合一定的规范,否则系统就会不认识。这就是程序架构。4. 字符设备驱动对应一个cdev 结构, 需要向系统注册或申请设备号,注册cdev设备,......原创 2014-05-09 18:03:48 · 8606 阅读 · 0 评论 -
多个源文件编译成一个模块注意Makefile 书写
多个源文件编译成一个模块,不正确的Makefile 会使printk 不能输出信息。细细观测,发现是对Makefile 语法未深刻理解所致。 下面附上一例说明问题。--------------------------------------------------------------------------------简单的测试文件1[root@hjj /home/samba/原创 2014-05-09 15:40:48 · 2566 阅读 · 0 评论