检查FE310-G002片内存储器的内容以及Red-V Thing Plus的Flash内容 GDB 连接 FE310-G002,并检查其内置存储器的内容。Red-V Thing Plus 外部的 SPI Flash 布局与 HiFive1 Rev B 一致。0x20000000 处存储 boot loader,用户程序从 0x20010000 开始存储。
使用 CMake 作为嵌入式开发构建工具执行交叉编译 默认情况下,cmake 使用本地编译器,如 gcc,而嵌入式开发往往使用的是交叉编译器,如 riscv-none-embed-gcc ,cmake 不知道要使用哪个交叉编译器,因此需要明确地告知 camke 。此外,嵌入式开发最终需要的可能是 binary 或 hex 格式的烧录文件,而不是 elf 格式的可执行文件,因此最终需要对生成 elf 文件执行 objcopy 得到所需的烧录文件。
risc-v gcc 编译 atomic 指令时产生 illegal operands 错误的解决办法 凡是 Load、Store 类型的指令,汇编指令和 Reference Card 的格式是不一样的,存储地址的那个寄存器要加上圆括号,而且要放在指令的最后。