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中应用很普遍,屏蔽了底层的细节,增加了易用性

相关文章:
Linux学习方法-框架学习法——Linux驱动架构的演进
配套视频学习链接:https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux驱动演进的过程 Linux驱动的原始架构(Linux V2.4) 平台总线架构(platform) Linux设备树 Linux驱动演进的趋势 Linux驱动演进的过程…...
Spring Boot基础面试问题(一)
上篇文章中10个Spring Boot面试问题的标准答案: 什么是Spring Boot?它与Spring框架有什么区别? 标准回答:Spring Boot是基于Spring框架的快速开发框架,它简化了Spring应用程序的搭建和配置过程,提供了一套自…...
电路设计(28)——交通灯控制器的multisim仿真
1.功能设定 南北、东西两道的红灯时间、绿灯时间均为24S,数码管显示倒计时。在绿灯的最后5S内,黄灯闪烁。有夜间模式:按下按键进入夜间模式。在夜间模式下,数码管显示计数最大值,两个方向的黄灯不停闪烁。 2.电路设计 …...
【Docker】免费使用的腾讯云容器镜像服务
需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。 目录 1、设置密码 2、登录实例(sudo docker login xxxxxx) 3、新建命名空间(每个命名空…...
如何让qml使用opengl es
要让 QML 使用 OpenGL ES,您需要确保项目配置正确,并在应用程序中使用 QSurfaceFormat 来设置 OpenGL ES 渲染。 以下是一些步骤来配置 QML 使用 OpenGL ES: 1、项目配置:在您的项目配置文件(例如 .pro 文件…...
金航标电子位于广西柳州鹿寨县天线生产基地于大年正月初九开工了!!
金航标电子位于广西柳州鹿寨县天线生产基地于大年正月初九开工了!!!金航标kinghelm( http://www.kinghelm.com.cn )总部位于中国深圳市,兼顾技术、成本、管理、效率和可持续发展。东莞塘厦实验室全电波暗…...
FlinkCDC详解
1、FlinkCDC是什么 1.1 CDC是什么 CDC是Chanage Data Capture(数据变更捕获)的简称。其核心原理就是监测并捕获数据库的变动(例如增删改),将这些变更按照发生顺序捕获,将捕获到的数据,写入数据…...
力扣代码学习日记六
Problem: 66. 加一 思路 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输…...
「Python系列」Python标准库
文章目录 一、 os 模块:文件和目录操作二、 sys 模块:与Python解释器交互三、 datetime 模块:日期和时间处理四、 json 模块:处理JSON数据五、 re 模块:正则表达式六、 time模块1. 获取当前时间2. 延迟执行(…...
虚拟列表【vue】等高虚拟列表/非等高虚拟列表
文章目录 1、等高虚拟列表2、非等高虚拟列表 1、等高虚拟列表 参考文章1 参考文章2 <!-- eslint-disable vue/multi-word-component-names --> <template><divclass"waterfall-wrapper"ref"waterfallWrapperRef"scroll"handleScro…...
【MySQL】如何理解索引(高频面试点)
一、前言 首先这个博客会介绍一些关于MySQL中索引的基本内容以及一些基本的语法,当然里面也会有些常见的面试题的解答。 二、关于索引 1、概念 索引是一种能够帮助MySQL高效的去磁盘检索数据的一种数据结构。在MySQL的Innodb存储引擎中呢,采用的是B树的…...
NXP实战笔记(四):S32K3xx如何产生中心对称三相六路波形
目录 1、概述 1.1、理论基础 2、RTD实现 2.1、Emios时基配置 2.1.1、EmiosMcl 2.1.2、EmiosCommon 2.2、Emios PWM配置 2.3、TRGMUX 2.4、LCU 2.5、外设信号配置 3、代码实现 4、测试结果 1、概述 电机控制中需要产生三相六路SVPWM进行占空比与周期调制,怎么通过RT…...
关于uniapp H5应用无法在触摸屏正常显示的处理办法
关于uniapp H5应用无法在触摸屏正常显示的处理办法 1、问题2、处理3、建议 1、问题 前几天, 客户反馈在安卓触摸大屏上无法正确打开web系统(uni-app vue3开发的h5 应用),有些页面显示不出内容。该应用在 pc 端和手机端都可以正常…...
Stable Diffusion 3 发布,AI生图效果,再次到达全新里程碑!
AI生图效果,再次到达全新里程碑! Prompt:Epic anime artwork of a wizard atop a mountain at night casting a cosmic spell into the dark sky that says "Stable Diffusion 3" made out of colorful energy 提示(意译…...
单例模式怎样实现单例(独例)?
在类定义中加入私有属性 __init__flag Ture,在随后的初始化处理中,判断该属性为真时进行相应的初始化操作,否则,跳过相应的初始化操作。这个机制,保证在进行后续的调用时,不再占用额外的内存开销。 当然了,…...
MySQL——基础内容
目录 第01章_数据库概述 关系型数据库(RDBMS)——表、关系模型 非关系型数据库(非RDBMS) 表、记录、字段 表的关联关系 一对一关联 一对多关系 多对多 自我引用 第02章_MySQL环境搭建 登录命令 常用命令 show databases; create database use 数据库名 show tables 第03章…...
node 之 初步认识
思考:为什么JavaScript可以在浏览器中被执行 代执行的js代码——JavaScript解析引擎 不同的浏览器使用不同的JavaScript解析引擎 Chrome 浏览器 》 V8 Firefox浏览器 》OdinMonkey(奥丁猴) Safri浏览器 》JSCore IE浏览器 》Chakra(查克拉) e…...
css复习
盒模型相关: border:1px solid red (没有顺序) 单元格的border会发生重叠,如果不想要重叠设置 border-collapse:collapse (表示相邻边框合并在一起) padding padding影响盒子大小的好处使用 margin应用: 行内或行内块元素水…...
HTML5和CSS3提高
一、HTML5的新特性 增加了一些新的标签,新的表单,新的表单属性,IE9以上版本的浏览器才支持 注意: 这些语义化标准主要针对搜索引擎的 新标签可以使用多次 在IE9中需要把这些元素转化为块级元素 新增的多媒体标签 主要包含两个…...
感受2024生物发酵展示会-明章机械
参展企业介绍 温州明章机械有限公司是一家专业从事搅拌传动装置机械密封,减速机,机架,联轴器及相关配件。设计、开发及生产的服务型高新技术企业公司,座落于浙江省温州市瓯海区娄桥镇高新工业园区豪新路42号,交通位置…...
Wan2.2-T2V-A5B案例分享:用简单提示词生成流畅运动视频
Wan2.2-T2V-A5B案例分享:用简单提示词生成流畅运动视频 1. 模型简介与核心优势 Wan2.2-T2V-A5B是由通义万相开源的一款轻量级文本到视频生成模型,拥有50亿参数规模。这款模型专为快速内容创作优化,支持480P视频生成,具备优秀的时…...
Windows PDF处理终极指南:Poppler完整工具包快速入门
Windows PDF处理终极指南:Poppler完整工具包快速入门 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows平台上的PDF处理工具…...
AHT20温湿度传感器在STM32上的应用:从数据采集到OLED显示
AHT20温湿度传感器在STM32上的实战应用:从数据采集到OLED可视化 在物联网和智能硬件开发中,环境数据的实时监测与可视化是基础却关键的一环。AHT20作为新一代数字温湿度传感器,以其高精度、低功耗和I2C接口的便捷性,成为STM32开发…...
码农专用,轻松拥有小金库
作为天天和代码、BUG、项目进度死磕的程序员,咱们这辈子靠理性思维、逻辑推演解决了无数技术难题,可一碰到理财这件事,几乎全员踩坑:要么没时间研究,要么怕风险不敢下手,最后只能把辛苦攒下的工资、年终奖丢…...
ARM64虚拟化实战:从零搭建KVM环境并理解VHE特性
ARM64虚拟化实战:从零搭建KVM环境并深度解析VHE特性 开篇:为什么ARM64虚拟化值得关注? 在云计算和边缘计算迅猛发展的今天,ARM架构凭借其出色的能效比和可扩展性,正逐步蚕食传统x86服务器市场。根据最新行业报告&#…...
lingbot-depth-pretrain-vitl-14入门必看:DINOv2 ViT-L/14编码器在深度任务中的特征迁移机制
lingbot-depth-pretrain-vitl-14入门必看:DINOv2 ViT-L/14编码器在深度任务中的特征迁移机制 1. 引言:从一张照片到三维世界 你有没有想过,为什么我们人类看一张照片,就能大概判断出照片里物体的远近?比如࿰…...
墨语灵犀GPU算力适配指南:A10/A100/V100显卡部署性能与显存占用实测
墨语灵犀GPU算力适配指南:A10/A100/V100显卡部署性能与显存占用实测 1. 引言:当古典美学遇见现代算力 想象一下,你正在处理一份重要的海外文献,或者需要将一段优美的中文诗歌翻译成英文。你希望翻译结果不仅准确,更要…...
Dify工作流HTTP请求配置全攻略:从基础到进阶的系统优化指南
Dify工作流HTTP请求配置全攻略:从基础到进阶的系统优化指南 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-…...
手把手教你用Simulink复现永磁同步电机无感控制:龙伯格+PLL观测器建模全流程(附模型)
永磁同步电机无感控制实战:从龙伯格观测器到PLL锁相环的Simulink全流程解析 在电机控制领域,永磁同步电机(PMSM)因其高效率、高功率密度等优势,已成为工业驱动和新能源应用的主流选择。而无位置传感器控制技术的突破&a…...
Rocky Linux 9最小化安装后,我第一时间会做的10个安全加固设置(新手必看)
Rocky Linux 9最小化安装后的10个关键安全加固指南 当你完成Rocky Linux 9的最小化安装,系统虽然干净但远未达到安全标准。作为企业级RHEL的替代品,Rocky Linux继承了其稳定性与安全性基因,但默认配置仍需优化才能抵御现代网络威胁。本文将分…...
