从零搭建RISC-V嵌入式系统开发环境

📚 共计 30 章节
01
RISC-V 前世今生
为什么是 RISC-V?开源指令集架构的诞生背景、RISC-V 基金会与生态现状。
起源生态
02
开发板选型指南
主流 RISC-V 开发板对比 (SiFive HiFive1、GD32VF103、K210、ESP32-C3),如何根据项目需求选择。
硬件对比
03
工具链搭建(上)
RISC-V GNU 工具链的源码编译与安装、配置环境变量、验证工具链。
编译环境
04
工具链搭建(下)
使用 OpenOCD 与 JTAG/SWD 调试器、配置调试环境、第一个点灯程序。
调试点灯
05
裸机编程基础
链接脚本(Linker Script)详解、启动代码(Startup Code)、内存映射。
链接启动
06
GPIO 与中断
GPIO 寄存器操作、外部中断配置、中断服务函数编写。
GPIO中断
07
定时器与 PWM
系统滴答定时器(SysTick)、通用定时器、PWM 输出实现呼吸灯。
定时器PWM
08
串口通信(UART)
UART 协议基础、轮询与中断方式收发数据、实现 printf 重定向。
UARTprintf
09
I2C 总线通信
I2C 协议时序、主机模式读写 EEPROM/传感器。
I2C传感器
10
SPI 总线通信
SPI 协议模式、驱动 LCD 屏幕或 Flash 芯片。
SPILCD
11
ADC 与传感器
ADC 基本原理、读取模拟信号、驱动温湿度传感器。
ADC传感器
12
DMA 数据传输
DMA 控制器配置、内存到外设/内存到内存传输、降低 CPU 负载。
DMA效率
13
FreeRTOS 移植(上)
FreeRTOS 源码结构、移植关键文件修改、配置系统时钟。
RTOS移植
14
FreeRTOS 移植(下)
任务创建与调度、临界区保护、中断管理。
任务调度
15
FreeRTOS 同步与通信
队列(Queue)、信号量(Semaphore)、互斥锁(Mutex)。
同步通信
16
FreeRTOS 内存管理
heap_1 到 heap_5 方案对比、内存碎片问题、实际项目选型。
内存heap
17
低功耗设计
WFI 指令、睡眠与停止模式、RTC 唤醒、功耗测量。
低功耗RTC
18
文件系统(LittleFS)
Flash 磨损均衡、LittleFS 移植与挂载、文件读写操作。
文件系统Flash
19
USB 设备开发
USB 协议基础、CDC(虚拟串口)与 HID 设备实现。
USBCDC
20
Wi-Fi 联网(ESP32-C3)
Wi-Fi Station/AP 模式、HTTP 客户端请求、MQTT 数据上报。
Wi-FiMQTT
21
蓝牙 BLE 通信
BLE GATT 协议、广播与扫描、自定义服务与特征值。
BLEGATT
22
安全启动与加密
硬件随机数生成器(TRNG)、AES 加密引擎、安全启动流程。
安全加密
23
调试与性能分析
Segger RTT 日志、逻辑分析仪使用、代码性能 Profiling。
调试RTT
24
单元测试框架
Unity/CMock 测试框架集成、模拟外设寄存器、自动化测试。
测试Unity
25
持续集成(CI)
GitHub Actions 搭建、自动化编译与静态检查、固件版本管理。
CI自动化
26
Bootloader 设计
双区备份启动、固件校验与升级、回滚机制。
Bootloader升级
27
RT-Thread 快速上手
RT-Thread 内核特性、Env 工具使用、组件包管理。
RT-Thread组件
28
Zephyr OS 入门
Zephyr 构建系统、设备树(Device Tree)、驱动框架。
Zephyr设备树
29
RISC-V 向量扩展(V扩展)
向量寄存器与指令、自动向量化编译、矩阵运算加速。
V扩展向量
30
综合实战:智能家居网关
需求分析、模块划分、多任务协同、系统联调与优化。
实战网关