0719_驱动1 arm裸机开发与linux驱动开发区别

avatar
作者
筋斗云
阅读量: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,马达,风扇....

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!