05 2023 档案
摘要:挂在命令:mount -t nfs -o nolock,vers=3 192.168.1.19:/home/book/nfs_rootfs /mnt ERROR: mount: mounting 192.168.1.19:/home/book/nfs_rootfs on /mnt failed: N
阅读全文
摘要:本文主要介绍Linux内核中的软中断、tasklet和工作队列详解: 首先,先介绍一下中断上下文以及进程上下文: 所谓上下文就是中断或进程发生时前后的环境。中断上下文就是当中断产生后,将中断前的参数或函数入口等参数保存到临时寄存器中,也就是我们常说的保护现场或中断上文,然后进入中断向量表中查找跳转或
阅读全文
摘要:linux设备节点是什么? https://www.qycn.com/xzx/article/14037.html class_creat()创建设备节点 https://blog.csdn.net/code_lyb/article/details/127387579
阅读全文
摘要:写LED驱动 首先,我们要建立一个file_operator结构体: /* 定义自己的file_operations结构体 */ static struct file_operations led_drv = { .owner = THIS_MODULE, //主设备号 .open = led_dr
阅读全文
摘要:写LED驱动 首先,我们要清楚总线设备驱动相比于传统驱动模型而言,在操作上做了精简。传统驱动模型针对不同的board或者change gpio,都需要对相应drv.c进行修改,这样操作相对比较复杂,也不容易后期的维护,总线驱动将所有的设备全部注册在platform_dev结构体内,每个设备不同的在于
阅读全文
摘要:首先我们都知道LED的基本操作,通过上拉或下拉电阻的方式实现LED的开关,这里不再介绍。那么怎么知道GPIO地址在那个位置1,也就是如何通过位操作来实现硬件的开关呢? IMX6ULL 的 GPIO 操作方法 GPIO 的控制涉及 4 大模块:CCM、IOMUXC、GPIO 模块本身,框图如下: GP
阅读全文
摘要:字符设备驱动程序框架: 如何编写驱动代码 ① 确定主设备号,也可以让内核分配 ② 定义自己的 file_operations 结构体 ③ 实现对应的 drv_open/drv_read/drv_write 等函数,填入 file_operations 结构体 ④ 把 file_operations
阅读全文