![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
驱动笔记
文章平均质量分 54
slander_1120
这个作者很懒,什么都没留下…
展开
-
0726_驱动1 非阻塞/阻塞
1.当一个app应用层程序,取读取硬件中的数据2.不管硬件中的数据是否准备好3.都会立即返回数据。原创 2024-07-27 19:20:08 · 172 阅读 · 0 评论 -
0725_驱动1 内核中并发和竟态解决方法
1.同一个驱动程序,同时被多个应用层程序进行访问2.访问同一个临界资源,驱动产生竟态。原创 2024-07-27 19:06:15 · 632 阅读 · 0 评论 -
0724_驱动2 inode和file结构体功能
1.在进程中调用open函数,打开设备文件时,会返回一个文件描述符2.每个进程都有自己唯一的文件描述符,文件描述符之间没有干扰3.在进程中调用open函数,返回的文件描述符4.所以在进程中可以找到文件描述符相关信息5.通过task_struct结构体,记录描述进程的相关信息6.所以task_struct结构体中可以找到文件描述符。原创 2024-07-27 17:34:17 · 119 阅读 · 0 评论 -
0724_驱动1 字符设备驱动内部实现
【代码】0724_驱动1 字符设备驱动内部实现。原创 2024-07-27 17:24:24 · 81 阅读 · 0 评论 -
0723_驱动2 ioctl使用
1.前面通过read和write函数完成对设备的读写操作2.在驱动中,有的时候需要完成对设备的控制3.所以需要将设备的控制,与设备的读写分开。原创 2024-07-27 16:51:36 · 84 阅读 · 0 评论 -
0723_驱动1 自动创建设备节点
1.因为应用层通过设备节点调用内核层,每次都需要输入mknod命令手动创建设备节点2.mknod命令手动创建设备节点,需要注意主设备号和次设备号。原创 2024-07-27 16:29:33 · 329 阅读 · 0 评论 -
0722_驱动3 地址映射驱动点灯
在芯片手册上查看到的地址属于物理地址,在硬件层在内核空间地址属于虚拟地址,在内核层在驱动中,操作的是虚拟地址需要将物理地址《--mmu内存管理单元--》虚拟地址映射。原创 2024-07-27 16:08:34 · 106 阅读 · 0 评论 -
0722_驱动2 用户空间和内核空间数据传输
函数功能:将用户空间的数据,拷贝到内核空间参数:to:内核空间首地址from:用户空间首地址n:拷贝大小返回值: 成功返回0,失败返回未拷贝的字节数。原创 2024-07-27 15:57:19 · 458 阅读 · 0 评论 -
0719_驱动6 通用Makefile
【代码】0719_驱动6 通用Makefile。原创 2024-07-27 15:36:28 · 36 阅读 · 0 评论 -
0722_驱动1 字符设备驱动框架
字符设备驱动按照字节流进行访问,并且只能顺序访问设备号一共有32位,主设备号(高12位)+次设备号(低20位)原创 2024-07-27 15:50:53 · 91 阅读 · 0 评论 -
0719_驱动5 导出符号表
1.因为内核空间共用3-4G空间2.通过上面可知,B模块只要拿到A模块add'函数地址就可以调用A模块的add函数3.A模块:提供者4.B模块:调用者。原创 2024-07-27 15:33:55 · 85 阅读 · 0 评论 -
0719_驱动3 printk使用方法
5.printk有8中打印级别(0-7),打印级别用来过滤信息。6.printk打印级别称之为消息级别,终端打印级别称之为终端级别。10.printk格式:printk(打印级别“格式控制符)3.在内核空间执行grep "printk" * -nR。11.使用dmesg命令,可以查看printk打印的消息。1.应用层打印使用printf,内核层使用printk。7.只有消息级别大于终端级别,消息才能在终端进行打印。13.消息灯集可以省略不写,使用默认的消息级别。9.设置消息级别大于终端级别。原创 2024-07-27 15:01:17 · 128 阅读 · 0 评论 -
0719_驱动2 编写编译linux内核模块
linux内核模块三要素:入口:执行insmod 安装命令操作出口: 执行rmmod 卸载命令操作许可证:遵循GPL协议,开源,指定入口地址,出口地址。原创 2024-07-27 14:02:03 · 330 阅读 · 0 评论 -
0719_驱动1 arm裸机开发与linux驱动开发区别
1.只要有硬件存在的地方,就会有驱动存在2.在windows操作系统中,usb驱动,网卡驱动,电源驱动......3.在linux操作系统中,电源驱动,网卡驱动,内存驱动,EMMC驱动.....原创 2024-07-27 13:48:28 · 341 阅读 · 0 评论