🚀 Bootloader 底层驱动开发
全流程实战
📘 30章 · 从入门到移植
01
Bootloader概述
什么是Bootloader
嵌入式角色
U-Boot/AT91/MyBoot
开始学习
02
启动流程分析
上电到Bootloader
复位向量
NOR/NAND/SD卡
开始学习
03
硬件初始化(汇编)
关看门狗
时钟系统
SDRAM初始化
设置栈
开始学习
04
链接脚本与内存布局
.lds语法
代码/数据/BSS段
运行时地址
开始学习
05
从汇编跳转到C语言
C运行环境
清BSS
堆指针
main调用约定
开始学习
06
串口驱动(轮询模式)
UART原理
波特率计算
寄存器配置
收发函数
开始学习
07
串口驱动(中断模式)
中断控制器
UART中断使能
环形缓冲区
ISR
开始学习
08
GPIO驱动开发
GPIO框图
引脚复用
输出/输入
按键中断/LED
开始学习
09
时钟驱动开发
PLL锁相环
时钟树
分频系数
动态调频
开始学习
10
定时器驱动(SysTick)
SysTick寄存器
ms延时
us延时
定时中断
开始学习
11
看门狗驱动开发
IWDG / WWDG
喂狗策略
防死机
开始学习
12
Flash驱动(内部)
Flash控制器
扇区擦除
页编程
读写保护
开始学习
13
Flash驱动(外部SPI Nor)
SPI时序
W25Qxx命令
Quad/Dual SPI
开始学习
14
NAND Flash驱动
结构与坏块
ECC校验
页读写/块擦除
开始学习
15
DMA驱动开发
DMA控制器
内存到外设
内存到内存
中断回调
开始学习
16
存储设备分区管理
GPT/MBR
分区读写接口
坏块管理
开始学习
17
文件系统移植(LittleFS)
LittleFS特性
Flash移植
目录/文件API
开始学习
18
固件镜像格式设计
镜像头 Magic/CRC
签名校验
A/B分区
开始学习
19
固件升级协议(YModem)
帧格式
接收状态机
发送端
超时重传
开始学习
20
固件升级协议(HTTP/OTA)
lwIP移植
HTTP客户端
OTA流程
开始学习
21
固件校验与安全启动
CRC32
SHA256
RSA签名
安全启动链
开始学习
22
Bootloader命令行交互
解析器设计
命令注册
help/flash/boot/erase
开始学习
23
环境变量管理
存储布局
键值对解析
默认/用户变量
导入导出
开始学习
24
启动引导策略
启动延迟/按键
启动计数
多镜像选择
回滚
开始学习
25
设备树支持(FDT)
FDT格式解析
传递给内核
Overlay
开始学习
26
外设驱动抽象层
HAL/LL分层
设备对象注册
函数指针表
开始学习
27
低功耗模式与唤醒
睡眠管理
唤醒源
从Bootloader低功耗
开始学习
28
调试与日志系统
调试串口复用
日志等级
断言/故障处理
开始学习
29
移植实战(STM32MP1)
芯片选型
时钟树
DDR初始化
SD卡启动
开始学习
30
移植实战(i.MX6ULL)
启动ROM分析
DCD配置
eMMC启动
引导Linux
开始学习