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

167 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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工具链路径"` 命令,在指定工具链位置的同时直接编译。
### 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)