潍坊公司网站制作做程序的网站
配套视频学习链接:https://www.bilibili.com/video/BV1HE411w7by?p=4&vd_source=d488bc722b90657aaa06a1e8647eddfc
目录
Linux驱动演进的过程
Linux驱动的原始架构(Linux V2.4)
平台总线架构(platform)
Linux设备树
Linux驱动演进的趋势
Linux驱动演进的过程
- Linux-v2.4--->Linux-v2.6--->Linux-V3.x
 - 原始架构--->平台总线--->设备树
 
- 总体上来讲,产品的开发越来越方便
 - 架构越来越复杂,但使用越来越简单,开发工作量减少
 

Linux驱动的原始架构(Linux V2.4)
- ‘设备节点’,即设备文件(/dev/xxx),它是上层应用和底层驱动的桥梁
 - Linux:设备即文件(read,write)
 - 主设备号,次设备号,mknod()
 - 结构体file_operations(函数指针)
 - register_chdev()---系统注册
 - 用户态read()->sys_read()->vfs_read()->驱动read
 - 原始架构依然很重要,里面的知识并没有被淘汰,而是被封装和继承了。
 

平台总线架构(platform)
- Linux2.6版本,封装了原始架构,更加抽象
 - 引入了设备驱动模型(sysfs),使得热插拔/电源管理得以加强
 - 好处:做产品更省事省力
 - 实现了BSP(板级支持包)和驱动的分离
 

-  
Linux设备树
 - 设备资源独立了出来(arch/arm/mach-xxx/board-xxx.c),从C文件发展为DTS设备树脚本文件 (arch/arm/boot/dts/xxx.dts)
 - 换个板子,不需编译Linux系统,只要换个设备树文件就好。
 - BootLoard参与传递设备资源(启动时需要把设备树文件传给内核)。
 

Linux驱动演进的趋势
- 越来越先进易用,但内部架构越来越复杂
 - ‘分离’,实际是一种模块化设计思路
 - ’分层’,Linux中应用很普遍,屏蔽了底层的细节,增加了易用性
 

