01
RISC-V架构概述
发展历史、设计哲学、指令集模块化(RV32I/RV64I、M、A、F、D、C扩展)、与ARM/x86对比分析
基础对比
02
RISC-V特权架构
机器/监督/用户模式、CSR寄存器详解、异常与中断处理机制
特权级CSR
03
启动流程基础
CPU复位行为、Boot ROM设计、多级启动链、典型RISC-V芯片启动时序
Boot时序
04
链接脚本(Linker Script)深入
内存布局、段管理、符号解析、链接脚本模板实战
内存链接
05
启动汇编代码(Startup.S)编写
中断向量表、栈初始化、BSS清零、数据段拷贝、跳转main
汇编启动
06
C运行时环境初始化
堆栈设置、全局变量初始化、构造函数、libc初始化、argc/argv传递
运行时C库
07
设备树(Device Tree)基础
语法、绑定文档、DTC编译、固件中解析设备树
设备树DTS
08
时钟与定时器驱动
系统时钟配置、定时器初始化、Tick中断、延时函数
时钟定时器
09
GPIO驱动开发
寄存器映射、输入输出配置、中断触发、按键中断实战
GPIO中断
10
UART串口驱动
协议基础、波特率配置、环形缓冲区、printf重定向
UART串口
11
SPI总线驱动
模式与时序、主从配置、Flash读写、DMA传输优化
SPIFlash
12
I2C总线驱动
协议详解、主机从机模式、EEPROM读写、多主机仲裁
I2CEEPROM
13
中断控制器(PLIC/CLIC)驱动
优先级管理、使能与屏蔽、嵌套处理、上下文保存恢复
PLIC中断
14
看门狗(WDT)与电源管理
WDT配置、喂狗机制、低功耗模式、唤醒源配置
WDT低功耗
15
Flash存储与XIP
Flash控制器驱动、读/写/擦除、XIP模式、OTA升级基础
FlashXIP
16
DMA控制器驱动
传输模式、描述符链、中断回调、性能优化技巧
DMA性能
17
RTC(实时时钟)驱动
工作原理、时间戳转换、闹钟设置、后备电池切换
RTC时间
18
PWM与电机控制
PWM原理、占空比/频率配置、电机驱动、舵机控制
PWM电机
19
ADC与传感器采集
分辨率/采样率、单次/连续转换、滤波算法、校准
ADC传感器
20
安全启动(Secure Boot)
SHA-256、RSA/ECDSA签名、信任根、防回滚机制
安全签名
21
固件加密与解密
AES引擎驱动、密钥管理、加密打包、运行时解密
加密AES
22
固件更新(FOTA)方案
分区表设计、差分更新、断点续传、A/B双备份
FOTA升级
23
调试与日志系统
JTAG/SWD、Semihosting、日志分级、环形缓冲区
调试日志
24
性能分析与优化
代码尺寸/速度优化、循环展开、内联汇编、Cache友好
优化性能
25
RTOS移植基础
FreeRTOS/TinyUSB移植、任务调度、中断同步、内存管理
RTOSFreeRTOS
26
裸机与RTOS混合编程
ISR通知任务、临界区保护、队列/信号量、优先级反转
混合同步
27
硬件抽象层(HAL)设计
架构原则、驱动分层(LL/HAL/BSP)、接口标准化、跨平台
HAL抽象
28
固件测试方法
单元测试(Unity/CMock)、HIL、覆盖率、CI集成
测试CI
29
RISC-V向量扩展(RVV)基础
向量寄存器、指令集、数据并行、FFT/矩阵加速
RVV向量
30
综合实战项目
从零构建完整固件工程:启动代码、驱动、RTOS、安全启动、FOTA
实战项目