1.掌握基本的硬件基础。
懂得磁盘的读写方式,移动设备的接口以及轮询,中断,中央处理器的内存管理单元等。
2.掌握计算机语言。
能灵活地运用计算机语言的结构体,指针,函数指针及内存动态申请和释放等。
3.掌握内核基本知识。
理解驱动与内核的接口,尤其是对于块设备,网络设备,串口设备等复杂设备,内核定义的驱动体系架构本身就非常复杂。
4.掌握多任务并发控制和同步。
因为在驱动中会大量使用自旋锁,互斥,信号量等待队列等并发与同步机制。
arm体系结构从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
1.第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
2.第二种为Thumb状态,此时处理器执行16位的半字对齐的Thumb指令。
ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。
全称为Advanced RISC Machine。
ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。
1、在设置中断禁止位禁止相应中断后,ARM核保存返回地址到,同时设置PC为相应的异常向量。
当异常返回时, 异常处理需要从寄存器中恢复CPSR的值。
2、当发生指令预取中止异常中断时,程序要返回到该有问题的指令处,重新读取并执行该指令。
因此指令预取中止异常中断程序应该返回到产生该指令预取中止异常中断的指令处,而不是返回到发生中断的指令的下一条指令。
3、发生数据访问异常中断时,程序要返回到该有问题的指令处,重新访问该数据,因此数据访问异常中断应该返回到产生该数据访问中止异常中断的指令处,而不是当前指令的下一条指令。
4、当IRQ异常中断产生时,程序计数器pc的值已经更新,它指向当前指令后面第3条指令,当IRQ异常中断产生时,处理器将值保存到IRQ异常模式下的寄存器中,它指向当前指令之后的第2条指令。