什么是Bootloader
嵌入式系统作用
常见方案对比
CPU复位第一条指令
中断向量表
启动模式选择
启动介质
链接脚本(.lds)
ROM/RAM/Stack/Heap
符号表与重定位
ARM/Thumb指令集
Reset_Handler
设置堆栈指针SP
跳转main函数
HSE/HSI/PLL
时钟树配置
HAL库初始化
低功耗时钟切换
SDRAM/DDR时序
Flash控制器配置
Cache与MMU设置
UART协议基础
轮询/中断模式
printf重定向
波特率自适应
读/写/擦除
磨损均衡
分区管理
写保护与安全区域
SD协议(SPI/SDIO)
eMMC分区管理
FAT32移植
Page/Block/Plane
ECC校验
坏块管理BBT
MAC与PHY
LwIP移植
TFTP实现
PXE/NetBoot
I2C协议基础
EEPROM读写时序
多设备地址冲突
IWDG/WWDG
安全启动链
RSA/ECDSA签名
自定义升级协议
YModem实现
HTTP/HTTPS远程
JTAG/SWD调试
串口打印调试
LED指示灯
HardFault定位
AMP/SMP启动
核间通信Mailbox
从核启动代码
FreeRTOS启动流程
任务创建与调度
运行RTOS考量
单元测试Unity/CMock
集成测试
压力测试
边界条件测试
电源掉电保护
CRC32/MD5校验
看门狗喂狗策略
状态机设计
BOOT0/BOOT1配置
系统存储器Bootloader
自定义Bootloader
ROM/第二级Bootloader
分区表配置
OTA升级
启动设备eMMC/SD/NAND
IVT与DCD
U-Boot移植
需求分析/架构设计
代码实现/测试报告
课程总结与展望