fuzidage
专注嵌入式、linux驱动 、arm裸机研究

导航

 
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页

2023年9月16日

摘要: 1 GNU 汇编格式 label:instruction @ comment label 即标号,表示地址位置,有些指令前面可能会有标号,这样就可以通过这个标号得到指令的地址,标号也可以用来表示数据地址。注意 label 后面的“:”,任何以“:”结尾的标识符都会被识别为一个标号。 instruct 阅读全文
posted @ 2023-09-16 14:20 fuzidage 阅读(261) 评论(0) 推荐(0) 编辑
 

2023年8月27日

摘要: #1 定义寄存器 以键盘keyscan为例,定义一个IP寄存器描述头文件,IOCRREG, IOCWREG定义了两个ioctl命令,用来读写寄存器。struct msg用来存放寄存器地址和值。 ![image](https://img2023.cnblogs.com/blog/1876680/202 阅读全文
posted @ 2023-08-27 16:42 fuzidage 阅读(42) 评论(0) 推荐(0) 编辑
 

2023年8月21日

摘要: #1 引入ioctl 一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些需要细分的情境下,如果需要扩展新的功能增添命令,通常以增设 ioctl() 命令的方式实现。 对于ioctl这个系统调用接口,Linux的创始人在2.0版本之前并没有进行添加,仅有write和read两个接口,但是后 阅读全文
posted @ 2023-08-21 21:57 fuzidage 阅读(459) 评论(0) 推荐(0) 编辑
 

2023年8月18日

摘要: #1 引入misc device ## 1.1传统cdev方式 char_drv.c ``` #include #include #include #include #include #include #include #include #include #include #include stat 阅读全文
posted @ 2023-08-18 17:02 fuzidage 阅读(113) 评论(0) 推荐(0) 编辑
 

2023年8月10日

摘要: #1 mmap驱动要做的事情 确定物理地址 确定属性:是否使用 cache、 buffer 建立映射关系 参考 Linux 驱动源文件代码: ![image](https://img2023.cnblogs.com/blog/1876680/202308/1876680-20230810110006 阅读全文
posted @ 2023-08-10 16:16 fuzidage 阅读(265) 评论(0) 推荐(0) 编辑
 

2023年8月9日

摘要: 1 引入mmap 应用程序和驱动程序之间传递数据时,可以通过 read、write 函数进行, 用户态和内核态的数据交互一般用copy_from_user,copy_to_user。这种方式在数据量比较小时没什么问题;但是数据量比较大时效率就太低了。比如更新 LCD 显示时,如果每次都让 APP 传 阅读全文
posted @ 2023-08-09 17:22 fuzidage 阅读(234) 评论(0) 推荐(0) 编辑
 

2023年7月29日

摘要: 1. threaded_irq引入 工作队列用起来挺简单,但是它有一个缺点:工作队列中有多个 work,前一个 work 没处理完会影响后面的 work执行,导致后面的work没法快速响应。那么可以再内核自己创建一个线程来单独处理,不跟别的 work 凑在一块了。比如在 Linux 系统中,对于存储 阅读全文
posted @ 2023-07-29 18:34 fuzidage 阅读(263) 评论(0) 推荐(0) 编辑
 

2023年7月22日

摘要: 1工作队列workqueue引入 定时器、 tasklet,它们都是在中断上下文中执行,它们无法休眠。那么如果一旦中断要处理耗时复杂的操作,就会显得很卡。那么使用内核线程来处理这些耗时的工作,那就可以解决系统卡顿的问题。 Linux内核中工作队列workqueue就是线程化处理的一种方式,“工作队列 阅读全文
posted @ 2023-07-22 20:10 fuzidage 阅读(88) 评论(0) 推荐(0) 编辑
 

2023年7月16日

摘要: 1 中断下半部分引入 引入中断下半部介绍了硬件中断和软件中断,硬件中断有gpio中断,网卡,外部电路IP引起的中断,而软件中断则有定时器,tasklet这些为软件中断。cpu会先处理硬件中断,然后处理软件中断。 简单说可以认为内核中有一个数组softirq[], 里面有很多项,某一项都应timer, 阅读全文
posted @ 2023-07-16 21:14 fuzidage 阅读(44) 评论(0) 推荐(0) 编辑
 

2023年7月15日

摘要: 1. 中断在设备树中的表述 1 中断控制器 如图:GPIO1 连接到 GIC,GPIO2 连接到 GIC,所以 GPIO1 的父亲是 GIC,GPIO2的父亲是 GIC。假设 GPIO1 有 32 个中断源,但是它把其中的 16 个汇聚起来向 GIC 发出一个中断,把另外 16 个汇聚起来向 GIC 阅读全文
posted @ 2023-07-15 15:26 fuzidage 阅读(266) 评论(0) 推荐(0) 编辑
 
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页