- 什么是Bootloader
- 嵌入式系统中的作用
- MTK平台架构概览
- 芯片特性介绍
- 硬件架构框图
- 关键外设接口 (UART, SPI, NAND, eMMC)
- Ubuntu系统安装
- 交叉编译工具链 (GCC for ARM)
- 源码管理工具 Repo
- 从MTK官方获取源码
- LK (Little Kernel) 目录解析
- 关键文件说明 (bootable/bootloader/lk)
- Makefile体系分析
- BoardConfig.mk配置
- 编译命令与镜像 (lk.bin, preloader.bin)
- 链接脚本 (.ld) 解析
- 代码段/数据段/BSS段布局
- SRAM与DRAM地址映射
- ROM Code启动
- Preloader加载与执行
- 硬件初始化 (时钟, PLL, DDR)
- Preloader跳转到LK
- LK入口函数 (kmain)
- 架构初始化 (MMU, Cache, 中断)
- 设备树概念
- dts/dtsi文件语法
- MTK平台设备树定制
- 时钟树配置
- GPT定时器驱动移植
- 延时函数 (udelay, mdelay)
- GPIO控制器寄存器
- Pinmux配置
- gpio_set_value / gpio_get_value
- UART控制器初始化
- 波特率设置
- 串口收发 & 调试串口
- SPI控制器特性
- SPI时序配置
- Flash读写 (SFDP命令)
- NAND控制器初始化
- ECC校验配置
- 坏块管理 & 读写擦除
- eMMC协议基础
- MMC控制器初始化
- 分区管理 & 读写操作
- MIPI DSI接口配置
- LCD初始化序列
- framebuffer驱动实现
- 矩阵键盘 / ADC按键
- 按键消抖处理
- 长按/短按逻辑
- PMIC初始化
- 电池电压检测
- 充电状态机 & 低电量关机
- MTK安全启动架构
- 签名工具 & 公钥烧录
- 校验流程
- Fastboot命令解析
- 下载与烧录功能
- 分区表管理
- UART日志输出
- 内存dump分析
- JTAG调试方法
- DDR压力测试
- 内存带宽测试
- Cache一致性优化
- 启动时间优化 (Boot Time)
- 代码尺寸优化 (Size)
- 功耗优化
- 单板配置分离
- BoardConfig差异化
- 多项目维护策略
- 启动卡死分析
- 驱动加载失败
- 内存访问异常 & 时序排查
- 新硬件平台步骤详解
- 环境适配 & 最小系统
- 点亮LED与串口输出
- Bootloader开发职业路径
- 开源项目推荐 (U-Boot, Barebox)
- 后续学习建议