LINUX驱动子系统设计的粗糙模型

本文解析了Linux内核驱动的设计思想模型,介绍了驱动子系统的平台无关性和如何通过子系统实现应用程序与底层硬件的隔离,确保应用的跨平台移植。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    LINUX内核的特点:

    1).可移植性很强.从其支持众多的CPU及DEMO板可以知道;

    2).上层APP的统一.

    这两点都得归功于内核设计的思想模型,简而言之就是驱动子系统的功劳.

    最粗糙、最笼统的LINUX内核驱动设计思想模型图如下:

 

    下面分析上述的框架图:

    (1).直接面向用户空间(UserSpace)的是内核驱动子系统,比如一些用户空间的系统调用直接对接过去的就是子系统(SubSystem).如UART子系统、RTC子系统、FBI子系统、SPI子系统、IIC子系统、USB子系统等.以RTC子系统为例,BUSYBOX在启动过程中可以读取时间.一些用户空间的驱动如IIC、libusb等.也是得益于子系统(SubSystem).这使应用程序不用作大模块的改动便从一个平台移植到另外一个平台的重要保障.是应用程序和底层硬件完全隔离的"保证层";

    (2).为了其可移植性,子系统(SubSystem)是平台无关性的.它向上对接了用户空间的应用程序,往下定义了一些结构体函数接口(需要根据我们平台相关的结构体信息去初始化这些结构体信息,此时子系统(SubSystem)被赋于浓重的平台相关性了),自身是子系统的代码逻辑(由于这部分代码很少改动,而且每个CPU平台都路由此代码,因此,是比较扎实可靠的);

    (3).Device_Driver对子系统(SubSystem)而言,只是个"插件",把平台相关的信息插入到平台无关的子系统里面.

    (4).HardWare,硬件层.没啥好说的,只是原理图上的电路,还有一些协议(如IIS、IIC、L3、SPI等).一般来说,SOC都集成这些协议的主控.功能电路一般很少.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值