linux设备驱动
linux设备驱动
伶优
coder
展开
-
中断软硬件流程
cpu进入相应的异常模式pc = 异常处理入口(固定地址)中断发生:保存‘别人’的状态初始化相关寄存器(中断控制器:使能/禁止;分辨:状态寄存器;优先级;;外部引脚:高低电平出发或者上升沿下降沿出发;引脚设置或硬件相关设置(GPIO/UART))使能中断中断处理:分辨中断源进行不同的处理清理工作(清中断)恢复:恢复别人的状态ARM 内核SP,LR,PC寄存器1、堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈...原创 2021-01-20 14:11:58 · 450 阅读 · 1 评论 -
linux:tslib
嵌入式触摸屏调试工具:tsliblinks: http://threeway.h.baike.com/article-1271423.html links: http://www.tslib.org原创 2018-05-22 15:02:40 · 240 阅读 · 0 评论 -
linux:Nor Flash
mtd flash驱动编写完成后测试工具:mtd-utils原创 2020-12-23 14:20:33 · 141 阅读 · 0 评论 -
linux:SPI设备层简单理解
Spi_device Spi_master属同一父设备原创 2020-12-23 14:10:19 · 185 阅读 · 0 评论 -
linux设备驱动:中断处理中的hardirq与softirq详细流程
中断处理的整体框架:内核用于标识中断上下文(in_interrupt())的变量preempt_count的布局:按照x86处理器在外部中断发生时的硬件逻辑,在do_IRQ被调用时,处理器已经屏蔽了对外部中断的响应。在图中我们看 到中断的处理大体上被分成两部分HARDIRQ和SOFTIRQ,对应到代码层面,do_IRQ()中调用irq_enter函数可以看做hardirq 部分的开始,而irq_exit函数的调用则标志着softirq部分的开始:unsigned int __irq_entry原创 2020-10-22 14:02:54 · 1009 阅读 · 0 评论 -
BSP 驱动移植借鉴套路
【嵌牛正文】对设备驱动最通俗的解释就是“驱使硬件设备行动”。设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA 通信,进行物理内存向虚拟内存的映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件和数据。设备驱动充当了硬件和应用软件之间的纽带,它使得应用软件只需要调用系统软件的应用编程接口(API)就可让硬件去...原创 2019-11-20 09:22:39 · 988 阅读 · 0 评论 -
linux设备驱动:驱动分类
Linux驱动是用户访问底层硬件的桥梁,驱动有可以简单分成三类:字符设备、块设备、网络设备。其中最多的是字符设备,其中字符设备的注册方法主要有三种:杂项设备注册、早期字符设备注册、标准字符设备注册。字符设备注册过程...原创 2020-10-15 16:44:36 · 237 阅读 · 0 评论 -
Linux设备驱动:GPIO子系统API接口概述
1、前言在嵌入式Linux开发中,对嵌入式SoC中的GPIO进行控制非常重要,Linux内核中提供了GPIO子系统,驱动开发者在驱动代码中使用GPIO子系统提供的API函数,便可以达到对GPIO控制的效果,例如将IO口的方向设置为输入或输出,当IO口的方向为输入时,可以通过调用API函数获取相应的IO口电平,当IO口设置为输出方向时,可以调用相关的API函数去设置IO口电平,本文将简单描述如何去使用Linux内核中GPIO子系统的API接口。下图是Linux内核中GPIO子系统的软件驱动分层图:2、原创 2020-09-29 18:08:59 · 210 阅读 · 0 评论 -
linux设备驱动:中断下半部的三种实现机制
软中断软中断是一组静态定义的下半部接口,有 32 个,可以在所有处理器上同时执行,类型相同,也可以在编译时静态注册。asmlinkage void do_softirq(void){ __u32 pending; unsigned long flags; /* 判断是否在中断处理中,如果正在中断处理,就直接返回 */ if (in_interrupt()) return; /* 保存当前寄存器的值 */ local_irq_..原创 2020-09-23 18:42:00 · 307 阅读 · 0 评论 -
linux设备驱动:中断
关于中断的理解中断你可以理解为就是一种电信号,是由硬件设备产生的然后发送给处理器,处理器接收到中断后,就会马上向操作系统反映此信号,之后就是系统的工作了。这里有两个注意的地方,第一中断是随时都可以产生,意味着中断的处理程序随时都可以执行,所以得保证中断处理程序能够快速执行,才可能尽快的恢复中断代码执行,所以中断代码尽量简短。第二每一个中断都有自己唯一的数字标记,这样操作系统才能对症下药中断上半部,下半部理解顶半部完成尽可能少的比较紧急的功能,它往往只是简单地读取寄存器中的中断状态并清..原创 2020-09-23 18:12:30 · 147 阅读 · 0 评论