基于RISC-V的嵌入式系统设计实战
📚 共计 30 章节
01
RISC-V架构概述
起源·设计哲学·模块化扩展·对比ARM/x86
RV32I
M/F/D/C
对比
02
嵌入式系统基础
定义·组成·RTOS/Linux·RISC-V优势
处理器
存储器
外设
03
开发环境搭建
FPGA/开发板·GCC/OpenOCD·QEMU/Spike·IDE
工具链
仿真
VS Code
04
RISC-V汇编基础
寄存器·指令格式·常用指令·汇编结构
R/I/S/B/U/J
CSR
05
链接脚本与启动流程
.ld文件·Startup.S·中断向量·堆栈初始化
链接脚本
C运行时
06
GPIO驱动开发
寄存器映射·输出/输入·中断·按键控制LED
LED
按键
中断
07
UART串口通信
协议·寄存器·轮询/中断·printf重定向
收发
中断
重定向
08
定时器与PWM
SysTick·mtime/mtimecmp·PWM生成·电机控制
定时器
PWM
电机
09
I2C总线通信
时序·控制器驱动·EEPROM/传感器·温度读取
I2C
EEPROM
传感器
10
SPI总线通信
模式0/1/2/3·控制器驱动·Flash读写·LCD驱动
SPI
Flash
LCD
11
ADC与传感器
逐次逼近·寄存器配置·光敏/电位计·滤波算法
ADC
均值滤波
中值
12
中断系统详解
PLIC/CLINT·向量表·优先级·嵌套·多中断源
PLIC
CLINT
嵌套
13
DMA数据传输
工作原理·控制器配置·内存/外设传输·中断标志
DMA
内存拷贝
ADC
14
看门狗与低功耗
WDT·喂狗·Sleep/Deep Sleep·唤醒源·电池设备
WDT
低功耗
唤醒
15
FreeRTOS移植 (上)
内核架构·port.c/portmacro.h·任务调度·临界区
FreeRTOS
移植
任务
16
FreeRTOS移植 (下)
heap_1~5·软件定时器·事件组·任务通知·多任务
内存管理
事件组
通知
17
RT-Thread移植
内核架构·BSP框架·移植步骤·FinSH·设备驱动
RT-Thread
BSP
FinSH
18
文件系统移植
FatFS架构·SPI Flash对接·文件读写·目录·日志
FatFS
Flash
日志
19
USB设备驱动
协议基础·控制器配置·HID键盘/鼠标·CDC虚拟串口
USB
HID
CDC
20
以太网通信
LwIP·MAC驱动·DHCP·TCP/UDP·HTTP服务器
LwIP
TCP/IP
HTTP
21
CAN总线通信
帧格式·控制器配置·收发·过滤器·电机控制
CAN
过滤器
电机节点
22
传感器融合与姿态解算
MPU6050·加速度/陀螺仪·互补滤波·四元数·自平衡
MPU6050
姿态
自平衡
23
图形界面 (LVGL) 移植
LVGL架构·显示/触摸对接·UI控件·智能仪表盘
LVGL
LCD
触摸
24
安全启动与加密
PMP·AES·SHA256·安全启动·固件加密
PMP
AES
安全启动
25
调试与性能优化
GDB·OpenOCD·Cycle计数·循环展开·内联
GDB
性能
优化
26
FPGA原型验证
Vivado/Quartus·VexRiscv/Rocket Chip·IP核·ILA
FPGA
软核
在线调试
27
RISC-V向量扩展 (V扩展)
向量指令·寄存器·加载/存储·矩阵乘法加速
V扩展
SIMD
矩阵乘
28
多核RISC-V系统
SMP/AMP·核间通信·Mailbox·缓存一致性·双核
多核
共享内存
并行
29
实时操作系统对比与选型
FreeRTOS vs RT-Thread vs Zephyr vs LiteOS·调度·选型
RTOS
对比
选型树
30
综合项目:智能家居网关
需求·架构·WiFi/BLE/传感器·MQTT·Web配置·调试
网关
MQTT
云平台