linux驱动开发学习路线规划

JeckXu666 JeckXu666     2023-01-22     157

关键词:

Linux驱动开发学习路线规划

关于Linux驱动开发路线学习的一个规划,学习内容以博客形式记录,打钩的表示学习完成

入门操作篇:

  • Linux常用指令
  • vim 编辑器使用
  • Makefile 基础语法
  • shell 基础语法

总结文章: Linux驱动开发系列:入门Ubuntu知识

ARM裸机篇:

  • 了解 Cortex-A7 MPCore 架构:ARM裸机开发:Cortex-A7 MPCore架构基础
  • 了解 Cortex-A7 常用汇编指令:ARM裸机开发:ARM汇编基础
  • 熟悉 IMX 芯片程序下载下载流程:ARM裸机开发:I.MX6UL 程序编译下载(SD卡)
  • 了解 IO 配置有关寄存器,汇编编程点亮LED灯:ARM裸机开发:汇编LED灯实验(I.MX6UL芯片)
  • 了解 IMX 启动方式和启动原理:ARM裸机开发:I.MX6U 启动方式
  • 使用汇编准备C语言开发环境,用C语言点亮LED灯:ARM裸机开发:C语言点亮LED
  • 熟悉官方 SDK 移植开发流程:
  • 对 SDK 进行管理,建立 BSP 工程意识:
  • GPIO 控制加强,控制蜂鸣器:
  • GPIO 控制加强,读取按键输入:
  • 定时器学习,学会配置定时器中断:
  • 定时器学习加强,用定时器来做按键消抖:
  • 定时器学习加强,用定时器来做精准延时:
  • 了解串口收发器有关寄存器配置,学习使用串口收发数据:
  • 将C库函数映射到串口,方便直接调用
  • 了解DDR配置,学习使用扩展RAM
  • 了解 RGB LCD 的寄存器,学习如何使用 LCD
  • 了解触摸屏相关寄存器,学习如何获取 LCB 触摸位置数据
  • 了解 IMX 内部 RTC 模块寄存器,学习如何配置使用
  • 了解 IMX IIC 配置寄存器,使用 IIC
  • 了解 IMX SPI 配置寄存器,使用 SPI

系统移植篇:

  • 了解 U-Boot
  • 从 U-Boot 顶层 Makefile 分析其编译流程
  • 分析 U-Boot 启动流程
  • 移植官方 U-Boot 到 IMX 开发板
  • 学会使用图形化配置 U-Boot ,加快开发流程
  • 从 Linux 顶层 Makefile 分析其内核编译流程
  • 了解 Linux 内核启动流程
  • 移植官方提供的 Linux 内核到 IMX 开发板上
  • 了解根文件系统的组成以及如何构建根文件系统 rootfs
  • 使用 USB OTG 来烧写整个系统:

驱动开发篇:

  • 了解字符设备驱动开发
  • 使用老版驱动 API 函数编写 LED 驱动
  • 使用Linux内核推荐的新字符设备驱动API函数编写 LED 驱动
  • 了解 Linux 设备树
  • 基于设备树开发 LED 驱动
  • 学习借助 pinctrl 和 gpio 子系统来简化 GPIO 驱动开发,编写点灯程序
  • 上一节加强,驱动蜂鸣器
  • 学习多任务共享资源时的并发与竞争处理
  • 上一节加强,具体使用相关操作处理并发与竞争
  • 编写按键输入驱动,并且结合原子操作保护按键资源
  • 学习 Linux 内核提供的定时操作及其实现原理
  • 学习在 Linux 下使用中断
  • 学习一下阻塞和非阻塞 IO及如何在驱动程序中处理阻塞与非阻塞
  • 学习如何在驱动程序中进行异步通知
  • 学习一下 Linux 下的驱动分离与分层, 以及 platform 框架下的设备驱动该如何编写
  • 学习使用 Linux 自带的 LED 灯驱动(基于 platform 框架)
  • 学习编写无法分类的杂项驱动编写
  • 学习 Linux 内核中的 input 子系统处理输入事件
  • 学习 Linux 下驱动 LCD 屏幕
  • 学习 Linux 下驱动 RTC时钟
  • 学习 Linux 下 IIC 驱动框架
  • 学习 Linux 下 SPI 驱动框架
  • 学习 Linux 下 UART 驱动框架
  • 待更新

应用开发篇:

应用开发基础:

  • 了解文件IO基本操作:Linux应用开发:文件IO基础
  • 了解文件IO高级操作:Linux应用开发:文件IO进阶
  • 学习标准IO操作
  • 学习其他文件相关系统调用
  • 学习C库中常用的字符串处理函数
  • 学习使用 Linux 系统调用或C库函数获取系统信息
  • 学习 Linux 下信号的使用
  • 学习进程的基本操作
  • 学习进程间通信机制
  • 学习线程基本操作
  • 学习线程间的同步操作
  • 学习文件IO的高级操作

应用开发实战:

  • 点亮LED
  • 控制GPIO
  • 获取输入设备信息
  • Framebuffer帧缓冲设备应用编程(LCD使用)
  • PWM应用编程
  • 摄像头应用编程
  • 串口应用编程
  • 看门狗应用编程
  • IIC 应用编程
  • SPI 应用编程
  • CAN 应用编程

嵌入式工程师学习路线

...用,包括QT的GUI开发2、嵌入式linux系统开发3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。所以你可以尝试以下路线:... 查看详情

嵌入式开发要学什么_必备嵌入式学习路线_高手速成方法

...后可以从系统编程入手,再深入到裸机开发、系统移植、驱动开发等。嵌入式需要懂得的一些基本诸如Linux,C语言,数据结构,文件IO,并发程序设计,进程间通信,网络编程,数据库开发,在线词典,ARM-4412,系统移植,驱动... 查看详情

java学习路线规划

...高薪就业将不费吹灰之力。现在学习Java技术,合格的Java开发培训课程都有哪些技术呢?有没有新版的Java学习路线图?相信这个才是大家都关注的。都说程序员的 查看详情

ai工程师职业规划和学习路线完整版

...版 如何成为一名机器学习算法工程师成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能力,这些能力中的每一项掌握起来都需要足够的努力和经验。而要成为一名合格的机器学习算法... 查看详情

结对项目—地铁出行路线规划

...间发布新版本结对编程体会:结对编程的优点:站在软件开发的角度,两个人共同面对同一台电脑进行开发,无论是效率还是软件质量都要超过一个人进行开发的情况。对于还处于学习阶段的年轻软件开发者来说,结对编程是一... 查看详情

想学嵌入式开发怎么学?看这份超详细的嵌入式学习路线

...用,包括QT的GUI开发2、嵌入式linux系统开发3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学 查看详情

c#bs方向该如何规划学习?学习路线指南

...线规划,在这里分享下,希望可以帮助到想从事C#开发的同学们。本人阅历尚浅,有些知识点可能分享不正确,希望广大网友评论区补充,我会同步修正更新。题记最近自己一直在想,一个初学者刚开始应... 查看详情

c#新手该如何规划学习学习路线指南

...线规划,在这里分享下,希望可以帮助到想从事C#开发的同学们。本人阅历尚浅,有些知识点可能分享不正确,希望广大网友评论区补充,我会同步修正更新。题记最近自己一直在想,一个初学者刚开始应... 查看详情

作为移动开发程序员应该怎样去规划自己的学习路线,吐血整理

关于Android的近况大家都知道,今年移动开发不那么火热了,完全没有了前两年Android开发那种火热的势头,如此同时,AI热火朝天,很多言论都说Android不行了。其实不光是Android,iOS也有类似的言论。那么到... 查看详情

想学python有啥路线可以规划一下吗?

...技术,你需要掌握HTML、CSS、JavaScript、jQuery、BootStrap、Web开发基础、VUE、FlaskViews、Flask模板、数据库操作、Flask配置等知识。学习目标:掌握WEB前端技术内容,掌握WEB后端框架,熟练使用Flask、Tornado、Django,可以完成数据监控后... 查看详情

嵌入式驱动工程师学习路线建议收藏

网上看了很多的嵌入式学习路线,有的比较片面,有的为了博人眼球东拼西凑,几乎把整个行业用得着用不着的技术都写上去了,没有侧重点,简直是劝退指南,还有的纯粹是打广告卖板子招生。一口君曾... 查看详情

第四季-专题1-课程规划与学习方法

...是:嵌入式环境搭建(2-4),linux内核开发基础(5-8),驱动开发(9-20)。2. 学习方法(1)核心理论学习(概念与函数原型)(2)范例程序分析(3)思维导图设计(4)手把手编写程序 查看详情

两万字解析aiot智能物联网工程师学习路线,c站最全路线谁赞成谁反对?

...,我是老白。 今天给大家带来AIoT智能物联网工程师学习路线规划以及详细解析。目录AIoT智能物联网工程师学习路线详解AIoT学习路线规划学习阶段学习项目AIoT介绍培养目标学习路线培养目标职业规划目标一、Python 基础与... 查看详情

机器学习2——学习路线规划

一、学习路线1)理论基础:微积分、线性代数、概论论与数理统计、典型算法;2)编程语言、工具和环境:3)基本工作流程===================================================== 二、理论基础 ====================================================... 查看详情

韦东山嵌入式linux三大学习路线

...机学习,你可以使用KEL、HAL库来快速的掌握单片机的开发。KEL、HAL库已经帮你封装好了一切,就学习而言,你没有办法深入学习更多的知识,对后续学习Linux、rtos帮助不大,但这样的学习方式好处就是能够快... 查看详情

arm嵌入式开发板学习路线指引

如何入门嵌入式?嵌入式开发学习方法步骤如何入门嵌入式?嵌入式开发学习路线指引嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有linux,android。平台:Cortex-A9开发板嵌入式技术学习如何入手,从何学起呢... 查看详情

后端开发学习路线

...只学过c语言和数据结构基础,目前初步打算从事后端开发相关工作。写这篇文章之前也在网上查了很多资料,看了许多大神写的学习路线和规划,个人感觉面试所需要的技能树大概是编程语言&# 查看详情

深入了解小程序的学习路线(以项目驱动的方式带你学习微信小程序)(代码片段)

文章目录一、我的微信小程序开发历程(1)我的代码经历(2)我的微信小程序项目二、微信小程序开发的学习路线三、认识小程序(1)小程序分类(2)小程序是啥?①小程序大概②uniapp和DCloud(3)小程序的方便之处四、小程序与普通网... 查看详情