VIP20
本课程属于:001-ATF移植 启动链与BSP系统构建 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

ATF移植实战 · 从零到一

📚 共计 30 章节
01
ATF初探
什么是ATF?为什么需要ATF?ATF在ARM生态系统中的位置。
概念ARM
02
环境搭建
搭建ATF编译环境、下载ATF源码、安装交叉编译工具链。
工具链编译
03
源码结构解析
ATF源码目录结构、BL1/BL2/BL31/BL32/BL33各阶段作用。
BL阶段架构
04
编译系统入门
ATF的Makefile体系、编译选项详解、如何配置目标平台。
Makefile配置
05
平台移植概览
移植一个ATF需要修改哪些文件?移植工作的核心流程。
流程文件修改
06
硬件抽象层
理解平台宏定义、内存映射、中断控制器(GIC)初始化。
HALGIC
07
串口驱动移植
从零实现UART驱动、配置时钟、波特率、数据位。
UART驱动
08
时钟与定时器
系统计时器(Generic Timer)的配置与使用。
Timer时钟
09
电源管理
PSCI(电源状态协调接口)协议介绍、CPU热插拔实现。
PSCI热插拔
10
异常处理
同步异常与异步异常、异常向量表的配置与实现。
异常向量表
11
MMU与内存管理
页表创建、内存属性配置、MMU开启与关闭。
MMU页表
12
BL1阶段移植
BootROM加载BL1、BL1初始化流程、跳转到BL2。
BL1启动
13
BL2阶段移植
加载FIP镜像、认证镜像、配置内存、跳转到BL31。
BL2FIP
14
BL31阶段移植
运行时服务框架、SMC处理、PSCI实现。
BL31SMC
15
BL32阶段移植
OP-TEE集成、SPD(安全分区调度器)配置。
BL32TEE
16
BL33阶段移植
U-Boot作为BL33、传递设备树、跳转到U-Boot。
BL33U-Boot
17
设备树(DTB)
设备树语法、为ATF创建设备树、传递设备树给下一阶段。
DTB设备树
18
FIP镜像制作
FIP工具使用、打包BL2/BL31/BL32/BL33镜像。
FIP打包
19
调试与日志
ATF日志系统、使用JTAG调试、添加自定义打印。
调试日志
20
安全启动
信任链建立、镜像签名与验证、OTP(一次性可编程)存储。
安全签名
21
中断控制器(GICv2/v3)
GIC初始化、中断路由、安全中断配置。
GIC中断
22
多核启动
CPU亲和性、主核与从核启动流程、spin-table实现。
多核spin-table
23
系统挂起与恢复
Suspend-to-RAM、Resume流程、上下文保存与恢复。
挂起恢复
24
性能优化
减少启动时间、优化内存访问、缓存策略。
优化缓存
25
常见问题排查
ATF启动卡死、异常跳转失败、内存访问错误。
调试问题
26
QEMU模拟器移植
在QEMU上运行ATF、使用QEMU调试ATF。
QEMU模拟
27
FPGA验证
在FPGA上运行ATF、硬件调试技巧。
FPGA硬件
28
真实芯片移植
以某款ARM SoC为例,完整移植流程。
SoC实战
29
ATF与Linux内核交互
ATF与Linux的SMC通信、PSCI调用。
LinuxSMC
30
项目实战
从零开始为一个新平台移植ATF,输出完整移植报告。
项目报告