嵌入式驱动开发学习路线整理

news/2024/10/7 22:27:19

1、学习路线

1.1 知乎:菜鸟分享嵌入式Linux驱动开发学习路线与心得(一)

  • 嵌入式方向:嵌入式Linux系统中,往上有应用程序功能开发和界面设计,往下有内核编程相关的驱动开发;
  • 学习嵌入式Linux需要的基础知识:
    • C语言基础知识;
    • 基础知识:操作系统相关知识、Linux系统基本使用、虚拟机使用;
    • Linux内核编程:Linux驱动开发的重要基础,包括各种锁、同步与异步操作、中断与时钟、内存操作等;
    • Linux驱动正文:
      • Linux内核模块相关;
      • Linux文件系统相关——Linux下一切皆文件,设备也是文件;
      • 三种基本的驱动设备——字符设备、块设备、网络设备;
      • Linux驱动的基本架构——重中之重,会学到虚拟总线platform
      • 常用的总线(USB、I2C、SPI)等在Linux内核中的抽象——用一堆结构体定义总线的结构,用这些结构体来进行总线驱动开发;
    • 最终开发;
  • 嵌入式Linux开发可能会经历的工作内容:
    • 移值系统:把Linux系统烧录到没有烧录系统的开发板中;
    • 读原理图:硬件通过电路连接在总线上,要读懂总线自己的结构图;
    • 设备树文件:各种总线及总线上挂载的各种设备被.dtb文件组织成设备树结构——从而用比较明朗的结构、比较少的代码告诉系统当前接入的设备有哪些。
      • 系统中有最基本的设备树文件,需要把自己的设备用规定的语法添加在设备树文件中;
    • Maefile文件的编写;
    • 驱动代码编写;
    • 驱动模块的加载、卸载与调试;
  • 学习书籍:
    • 宋宝华《Linux驱动开发详解》
    • 学习不要拘泥于一本书,不要期待只通过一本书学完所有知识点,多准备几本,学习时专注于其中一本书,在学习遇到障碍时多去参考其他的书;

2、Linux驱动开发详解——参考资料

2.1 CSDN:最全Linux驱动开发全流程详细解析

  • 目录:
    • 驱动概念、分类、功能;
    • 驱动开发前提知识;
    • 设备树
    • 字符设备驱动;
    • pinctrl子系统;
    • GPIO子系统;
    • 内核并发与竞争;
    • 内核定时器;
    • 设备控制接口(ioctl);
    • 中断机制;
    • 阻塞与非阻塞IO;
    • 异步通知机制;
    • Platform设备驱动框架
  • Q&A
    • 参考书:宋宝华老师《Linux驱动开发详解》、约翰·马迪厄《Linux设备驱动开发》;
    • 开发板:正点原子;

2.2 GitHub:《Linux 设备驱动开发详解》(宋宝华) 学习笔记

  • 资源获取:可以搜索随书光盘,会有站点提供免费下载;
  • 作者公众号:Linux阅码场;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/68800.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

你可能没听过的手机输入法技巧

其实手机输入法真的很强其实手机输入法真的很强 ‍ 手机输入法的自带功能 比起电脑上的输入法,手机上的输入法有一些特有的功能。这里就以 iPhone 为例进行讲解,而安卓的话大部分情况也有类似的功能,这里就不一一进行评测了。 ‍ 快速移动光标 当内容很多,想要移动光标到内…

Webpack 初始化

1、初始化npm项目 npm init -y 得到 package.json 2、安装 webpack,webpack-cli相关 npm install webpack webpack-cli --dev node_modules .bin目录有webpack相关 即可通过npm 运行 webpack命令 如: npm webpack --version 可直接执行 webpack命令进行打包也可这么着: webpac…

iPhone开机一直白苹果闪烁,3个解决卡在开机画面的方法!

很多苹果用户在网上反馈,某天iPhone开机一直卡在开机Apple标志画面,而且白苹果一直闪烁。长按电源键也无法正常启动设备,黑屏后还是会出现苹果logo,一直闪烁。遇到iPhone开机一直白苹果闪烁的情况,多半是因为iOS系统故障。更专业的说,是系统组件调用执行失败而导致无法出…

因果推断与中介效应

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 因果推断(Causal Inference)是统计学和数据科学中的重要分支,用于理解事件之间的因果关系,而不仅仅是相关性。与相关性分析不同,因果推断追求揭示因变量…

#HACKTHEBOX——Driver

靶机详情靶机地址:10.10.11.106 kali地址:10.10.16.4 初始侦察与渗透确认kali与靶机之间可以ping通使用nmap进行侦查扫描 nmap -sT --min-rate 1000 -p- 10.10.11.106 #以TCP协议,基于当前网络情况,以最低1000的速率进行该IP的全部端口nmap -sT -sC -sV -p 80,135,445,5985…

HACKTHEBOX——Crafty

靶机详情靶机地址:10.10.11.249 kali地址:10.10.16.3 端口服务扫描确认kali与靶机可以ping通使用nmap进行扫描 nmap -sT --min-rate 1000 -p- 10.10.11.249 #以TCP协议,基于当前网络情况,以最低1000的速率进行该IP的全部端口nmap -sT -sC -sV -p 80,25565 10.10.11.249 #详…

字符编码发展史5 — UTF-16和UTF-32

上一篇《字符编码发展史4 — Unicode与UTF-8》我们讲解了Unicode字符集与UTF-8编码。本篇我们将继续讲解字符编码的第三个发展阶段中的UTF-16和UTF-32。 2.3. 第三个阶段 国际化 2.3.2. Unicode的编码方式 2.3.2.2. UTF-16 UTF-16也是一种变长编码,对于一个Unicode字符被编码成…

24.10.07

A 质朴的想法,每一行都放 ryxyryx...,然后因为有 \(40\) 列所以最后一列完全没用,所以把那一行竖着放进去,算一下有 \(2223\) 个。 然后枚举填多少行,如果数量多了就在最后一行选一个位置插入字符(这样后面就没有斜着的贡献了)。还多就从后往前覆盖 y。然后总可以构造出…