Linux开发(驱动&应用)学习路线规划

网友投稿 1002 2022-05-30

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 移植开发流程:ARM裸机开发:I.MX6U官方SDK包使用

对 SDK 进行管理,建立 BSP 工程意识:ARM裸机开发:BSP工程管理

GPIO 控制加强,控制蜂鸣器:ARM裸机开发:蜂鸣器实验

GPIO 控制加强,读取按键输入:ARM裸机开发:按键输入实验

ARM 时钟树学习,理解时钟配置原理:ARM裸机开发:主频与时钟

I.MX 中断系统学习: ARM裸机开发:中断系统

I.MX 配置按键触发中断:ARM裸机开发:输入中断

定时器学习,学会配置定时器:ARM裸机开发:EPIT定时器

定时器学习加强,用定时器来做精准延时:ARM裸机开发:GPT定时器

了解串口收发器有关寄存器配置,学习使用串口收发数据:ARM裸机开发:串口通信

Linux开发(驱动&应用)学习路线规划

将串口映射到C库函数,方便直接调用:ARM裸机开发:串口格式化输出

补充处理器内存几个概念:ARM裸机开发:RAM、ROM、FLASH概念

了解DDR配置,学习使用扩展RAM(暂不更新)

了解 RGB LCD 的寄存器,学习如何使用 LCD(暂不更新)

了解触摸屏相关寄存器,学习如何获取 LCB 触摸位置数据(暂不更新)

了解 IMX 内部 RTC 模块寄存器,学习如何配置使用(暂不更新)

了解 IMX IIC 配置寄存器,使用 IIC(暂不更新)

了解 IMX SPI 配置寄存器,使用 SPI(暂不更新)

系统移植篇:

了解 U-Boot,编译烧写一个 uboot:Linux系统移植:正点原子 U-Boot 移植

了解 U-Boot 常用的指令:Linux系统移植:U-Boot常用指令(上)

了解 U-Boot 常用的指令:Linux系统移植:U-Boot常用指令(下)

分析 U-Boot 源码目录:Linux系统移植:U-Boot 工程分析

分析 U-Boot 源码的顶层 Makefile 文件:Linux系统移植:U-Boot 顶层 Makefile 分析(上)

分析 U-Boot 源码的顶层 Makefile 文件:Linux系统移植:U-Boot 顶层 Makefile 分析(下)

分析 U-Boot 源码的链接脚本文件:Linux系统移植:U-Boot 链接脚本

分析 U-Boot 源码的运行流程:Linux系统移植:U-Boot 启动流程(上)

分析 U-Boot 源码的运行流程:Linux系统移植:U-Boot 启动流程(中)

分析 U-Boot 源码的运行流程:Linux系统移植:U-Boot 启动流程(下)

分析 U-Boot 运行完成结束时,启动 Linux 内核的过程:Linux系统移植: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操作:Linux应用开发:标准IO库(上)

学习标准IO操作:Linux应用开发:标准IO库(下)

学习其他文件相关系统调用

学习C库中常用的字符串处理函数

学习使用 Linux 系统调用或C库函数获取系统信息

学习 Linux 下信号的使用

学习进程的基本操作

学习进程间通信机制

学习线程基本操作

学习线程间的同步操作

学习文件IO的高级操作

应用开发实战:

点亮LED

控制GPIO

获取输入设备信息

Framebuffer帧缓冲设备应用编程(LCD使用)

PWM应用编程

摄像头应用编程

串口应用编程

看门狗应用编程

IIC 应用编程

SPI 应用编程

CAN 应用编程

ARM Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SSL证书显示错误如何解决?
下一篇:近数据处理(NDP),为GaussDB(for MySQL)性能提升“加冕”
相关文章