阅读量:0
一、什么是驱动
1.只要有硬件存在的地方,就会有驱动存在
2.在windows操作系统中,usb驱动,网卡驱动,电源驱动......
3.在linux操作系统中,电源驱动,网卡驱动,内存驱动,EMMC驱动.....
二、ARM逻辑开发和linux驱动开发区别
相同点:
都是对硬件进行操作
不同点:
1.是否具备linux操作系统
a.arm裸机开发,不基于linux操作系统运行
b.linux驱动开发,基于linux操作系统运行
2.是否具备多进程多线程开发
a.arm裸机开发,因为不基于linux操作系统,不具备多进程多线程开发能力
b.linux驱动开发,基于linux操作系统,具备多进程和多线程开发能力
3.操作地址是否相同
a.arm裸机开发,运行在硬件层,操作的物理地址
b.linux驱动开发,运行在内核层(3-4G空间),操作虚拟地址
三、linux系统层次
应用层:(0-3G空间)
执行用户空间代码,也就是应用层的入口,入口函数main函数
编程的逻辑
内核层:(3-4G空间)
执行驱动代码,也就是内核层代码,入口函数,出口函数,许可证
编程的机制
硬件层:
led灯,PWM,马达,风扇....