当前位置: 首页 > news >正文

Linux学习方法-框架学习法——Linux驱动架构的演进

配套视频学习链接: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中应用很普遍,屏蔽了底层的细节,增加了易用性

http://www.lryc.cn/news/305078.html

相关文章:

  • Spring Boot基础面试问题(一)
  • 电路设计(28)——交通灯控制器的multisim仿真
  • 【Docker】免费使用的腾讯云容器镜像服务
  • 如何让qml使用opengl es
  • 金航标电子位于广西柳州鹿寨县天线生产基地于大年正月初九开工了!!
  • FlinkCDC详解
  • 力扣代码学习日记六
  • 「Python系列」Python标准库
  • 虚拟列表【vue】等高虚拟列表/非等高虚拟列表
  • 【MySQL】如何理解索引(高频面试点)
  • NXP实战笔记(四):S32K3xx如何产生中心对称三相六路波形
  • 关于uniapp H5应用无法在触摸屏正常显示的处理办法
  • Stable Diffusion 3 发布,AI生图效果,再次到达全新里程碑!
  • 单例模式怎样实现单例(独例)?
  • MySQL——基础内容
  • node 之 初步认识
  • css复习
  • HTML5和CSS3提高
  • 感受2024生物发酵展示会-明章机械
  • 算法打卡day1|数组篇|Leetcode 704.二分查找、27.移除元素
  • 什么是高阶组件
  • python实现裂区试验方差分析
  • Vue v-for、v-if、v-show常见问题
  • GPT技术在学术研究中的革命性应用:开启论文创作新篇章
  • 【K8s】-- 描述容器中 pod 的状态
  • 使用yolo-seg模型实现自定义自动动态抠图
  • FairyGUI × Cocos Creator 3.x 场景切换
  • 【Java程序设计】【C00288】基于Springboot的篮球竞赛预约平台(有论文)
  • textbox文本框跨线程写入,扩展textobx控件
  • 【踩坑】PyTorch中指定GPU不生效和GPU编号不一致问题