单片机没有严格的界限区分应用程序和驱动程序。
单片机芯片一般称MCU(微控制器单元):
Linux芯片一般称MPU(微处理器单元),有MMU(内存管理单元):
单片机分层:
Linux中APP怎么调用驱动的?
可分为以下四个步骤:
(1)、应用层在glib.c库中调用open函数;
(2)、在某个寄存器R中设置某个值,并产生SWI异常;
(3)、CPU调用内核中SWI异常处理函数;
(4)、根据R分辨原因,如R = val1,调用sys_open函数,R = val2,调用sys_read等。在里面首先会判断文件名,然后在找到对应的驱动,调用drv_open。
答疑:
1、为了效率更高,Linux开了一个后门,如下图划线所示,以后访问addr = mmap()的时候就相当于访问了指定的硬件地址,但是也得通过驱动程序。