Linux-韦东山|linux-1-单片机程序对比Linux程序

linux-1-单片机程序对比Linux程序 【Linux-韦东山|linux-1-单片机程序对比Linux程序】单片机
在单片机的程序里面可以直接读写寄存器。
驱动层和app层分层没有明显的界限,只是一个人为分层的结果。
单片机中的cpu可以根据一个地址直接访问到外设(gpio)或者是存储单位(RAM)上面。
Linux
cpu根据一个地址去访问gpio,但是内存管理单元mmu会判断cpu处于什么模式下面,如果是处于用户模式,mmu会禁止cpu去访问gpio,如果是管理者模式,就可以去访问gpio。
Linux系统在app层里面无法直接读写寄存器,在app下面调用驱动程序才可以访问内存。
在Linux里面的app层应用程序怎样才能访问到驱动层的驱动程序呢?
为了安全所以把app和驱动分层了,在app层里面通过open,read,write等函数操作,那么open怎么调用驱动层的drv_open函数呢?调用open函数后,open函数就会故意触发一个异常,cpu就会执行异常处理函数(内核中的函数),实现了从用户态转换到内核态,就可以去访问驱动函数了。ps:open,read,write是glib.c库里面提供的程序。
Linux-韦东山|linux-1-单片机程序对比Linux程序
文章图片

到了drv_open函数就可以去读写寄存器了。
本文博客主要参考韦东山老师的linux驱动开发快速入门直播课(https://www.bilibili.com/video/BV1Yb4y1t7Uj?spm_id_from=333.999.0.0)

    推荐阅读