公司动态
FPGA SoC 的 RISC-V 固件开发全攻略(三):RISC-V MCU 启动流程深入解析
FPGA SoC 的 RISC-V 固件开发全攻略(三):RISC-V MCU 启动流程深入解析本文是《FPGA SoC 的 RISC-V 固件开发全攻略》专栏第 3 篇。上一篇:第 2 篇《开发环境搭建与工具链避坑》 | 下一篇:第 4 篇《RISC-V 与 ARM Cortex-M 开发差异对比》一、为什么要搞懂启动流程很多人做 MCU 开发,是从main()开始的。但嵌入式固件真正出问题(上电死机、跳转失败、中断异常、Cache 导致数据错乱),往往发生在main()之前那段"看不见"的启动代码里。理解启动流程,能让你在遇到下面这些问题时快速定位:上电后完全不运行、或打印乱码;Bootloader 跳转 APP 后崩溃;开了 Cache 后外设寄存器读写异常;中断一直进不去或一直触发。本文以一颗 RISC-V 内核(带 FPU)的 FPGA SoC 为例,把从"上电复位"到"进入 main"的完整链路讲清楚。二、上电复位:从复位向量到_start2.1 复位向量放的是"指令",不是"地址"RISC-V 上电后,CPU 从复位