rt-thread/bsp/sparkfun-redv/README.md

167 lines
6.0 KiB
Markdown
Raw Normal View History

2020-10-31 15:40:38 +08:00
# SparkFun RED-V #
## 1 简介
[SparkFun RED-V](https://www.sparkfun.com/products/15594) 是一款基于 RISC-V 架构的低成本开源开发板,核心 SoC Freedom E310-002 (FE310) 是 SiFive 的 Freedom Everywhere 可定制 SoCs 系列 FE310 的一个升级版本(兼容 HiFive1-rev-b。最大主频提高了一倍多达到 320MHz具有 SiFive 的高性能32位 RV32IMAC 核心,性能测试表现很突出,达到了 1.61 DMIPs/MHz甚至超过了 Arm Cortex-M4 内核。适用于微控制器、嵌入式、物联网和可穿戴应用等领域。
![](figures/board.jpg)
### 1.1 板载资源
| 硬件 | 描述 |
| -- | -- |
|Soc| SiFive Freedom E310 (FE310-G002) |
| 内核 | SiFive E31 RISC-V Core |
| 架构 | 32-bit RV32IMAC |
| 主频 | 320+ MHz |
| 性能 | 1.61 DMIPs/MHz, 2.73 Coremark/MHz |
|SRAM| 16KB |
|Flash| 32 Mbit Off-Chip (ISSI SPI Flash) |
### 1.2 特性
- 16KB L1 指令缓存
- 16KB 数据 SRAM 暂存器
- 硬件乘/除
- 调试模块
- OTP 非易失性存储器
- 片上振荡器和 PLL 产生灵活的时钟
- 外围设备,包括 UARTQSPIPWM 和定时器
- 多个电源域+低功耗待机模式
## 2 编译说明
### 2.2 下载 Freedom Studio
[Freedom Studio](https://www.sifive.com/software) 是 SiFive 公司推出的一个集成开发环境,用来编写和调试基于 SiFive 处理器的软件。内嵌了编译好的 RISC-V GCC 工具链、OpenOCD、以及一些示例和文档。
特别地,这里以 v2019.08.1 版本进行演示:
- [FreedomStudio-2019-08-1-lin64](https://static.dev.sifive.com/dev-tools/FreedomStudio/2019.08/FreedomStudio-2019-08-1-lin64.tar.gz)
- [FreedomStudio-2019-08-1-win64](https://static.dev.sifive.com/dev-tools/FreedomStudio/2019.08/FreedomStudio-2019-08-1-win64.zip)
- [FreedomStudio-2019-08-1-mac64](https://static.dev.sifive.com/dev-tools/FreedomStudio/2019.08/FreedomStudio-2019-08-1-mac64.tar.gz)
将 Freedom Studio 解压到非中文字符且不含空格的目录下,如果是 Windows 系统,还需要打开 `FreedomStudio-2019-08-1-win64\SiFive\Drivers` 文件夹,安装驱动文件。
- HiFive1_Driver.exe
- sifive-winusb-utility.exe
### 2.3 配置工具链
工具链的默认位置为 `SiFive/riscv64-unknown-elf-gcc-8.3.0-2019.08.0/bin/` 目录。运行 Env 工具,根据实际情况,输入以下命令设置环境变量:
```shell
set RTT_EXEC_PATH=工具链的路径
set path=%path%;工具链的路径
```
例如:
```shell
set RTT_EXEC_PATH=C:\FreedomStudio-2019-08-1-win64\SiFive\riscv64-unknown-elf-gcc-8.3.0-2019.08.0\bin
set path=%path%;C:\FreedomStudio-2019-08-1-win64\SiFive\riscv64-unknown-elf-gcc-8.3.0-2019.08.0\bin
```
或者通过 `scons --exec-path="GCC工具链路径"` 命令,在指定工具链位置的同时直接编译。
2020-10-31 15:40:38 +08:00
### 2.4 从 Env 工具打开 IDE
在 Env 中使用 cd 命令切换到 FreedomStudio 解压后的目录中,再执行 `FreedomStudio.exe` 文件启动 IDE。例如
```
cd C:\FreedomStudio-2019-08-1-win64
FreedomStudio.exe
```
### 2.5 导入工程
点击菜单栏左上角 `File -> Import...`,展开 `C/C++` ,选择 `Existing Code as Makefile Project` ,点击 Next 继续。
![](figures/import_makefile_project.png)
在编辑框中填入 bsp 文件所在目录,选择 `Cross GCC` ,点击 Finish 导入。
![](figures/import_makefile_project_bsp.png)
### 2.6 编译
选中要编译的工程,点击左上角的锤子图标开始编译。
![build](figures/freedomstudio_compile.png)
当窗口输出 `Build Finished` ,左侧文件列表出现 `rtthread.elf` 文件时,即为编译成功。
## 3 烧写及执行
### 3.1 配置 Debug 参数
使用 type-c usb 数据线连接电脑与开发板。右键列表中的 `rtthread.elf` 文件,选择 `Debug As->1 As JLink launch`
点击 Debugger 选项卡,选择设备名称 `FE310`
![](figures/debug_Debugger.png)
点击 Config 选项卡,在 'Target Architecture' 处选择 'riscv:cv32' ,点击 Debug 开始调试。
![](figures/debug_Config.png)
### 3.2 运行结果
下载程序之后连接串口115200-N-8-1可以看到 RT-Thread 的输出信息:
![](./figures/debug_terminal_msh.png)
可以看到板载的蓝色 LED 灯以 1Hz 频率闪烁,按下 Tab 键可以查看 RT-Thread 内置的命令。
```
msh >
RT-Thread shell commands:
give_me_five - Show the SiFive logo
memcheck - check memory data
memtrace - dump memory trace information
clear - clear the terminal screen
version - show RT-Thread version information
list_thread - list thread
list_sem - list semaphore in system
list_event - list event in system
list_mutex - list mutex in system
list_mailbox - list mail box in system
list_msgqueue - list message queue in system
list_mempool - list memory pool in system
list_timer - list timer in system
list_device - list device in system
help - RT-Thread shell help.
ps - List threads in the system.
free - Show the memory usage in the system.
```
## 4 驱动支持情况及计划
| 驱动 | 支持情况 | 备注 |
| ------ | ---- | :------: |
| UART | 支持 | UART0_RX/TXGPIO 16/17 |
## 5 联系人信息
维护人:
- [luhuadong](https://github.com/luhuadong)
## 6 参考
* [RED-V Schematic](https://cdn.sparkfun.com/assets/d/d/1/e/7/RedFive.pdf)
* [RED-V Development Guide](https://learn.sparkfun.com/tutorials/red-v-development-guide)
* [Getting Started with the SparkFun Red-V](https://www.digikey.dk/da/maker/projects/getting-started-with-the-sparkfun-red-v/a28c5ce7d21a452db4aa3f4b94f345f4)
* [Freedom E310-G002 Datasheet](https://cdn.sparkfun.com/assets/5/b/e/6/2/fe310-g002-ds.pdf)
* [Freedom E310-G002 Manual](https://cdn.sparkfun.com/assets/7/f/0/2/7/fe310-g002-manual-v19p05.pdf)
* [Freedom Studio User Manual](https://static.dev.sifive.com/dev-tools/FreedomStudio/2020.06/freedom-studio-manual-4.7.2-2020-06-0.pdf)