差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
reindeer_step_arduino [2020/01/08 21:00] group003 |
reindeer_step_arduino [2020/01/16 23:21] (当前版本) group003 [返回目录] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | #### 在小脚丫FPGA板上玩转开源农场(FARM)FPGA+Arduino+RISC-V+Make | + | # 使用Arduino IDE开发RISC-V处理器 |
本次移植的RISC-V软核是由Changyi Gu主持设计的 PulseRain Reindeer 处理器内核,该软核在2018年由RISC-V 基金会官方举办的全球 Soft CPU 设计大赛中脱颖而出,荣获季军 ([[https://riscv.org/2018/10/risc-v-contest/|RISC-V SoftCPU Contest]])。PulseRain Reindeer是一个Von Neumann架构的软CPU,支持RISC-V RV32I [M]指令集,并具有2 x 2流水线架构,是综合平衡了速度和面积的结果,为所有FPGA平台上的软CPU提供了灵活的选择。Pulserain公司特别将该处理器为小脚丫实验平台做了升级改进,可以同时支持DRAM和FPGA片上BRAM,还对外部中断做了更好的支持。(参考源码[[https://github.com/PulseRain/Reindeer_Step|RISC-V Reindeer_Step Soft CPU]])。 | 本次移植的RISC-V软核是由Changyi Gu主持设计的 PulseRain Reindeer 处理器内核,该软核在2018年由RISC-V 基金会官方举办的全球 Soft CPU 设计大赛中脱颖而出,荣获季军 ([[https://riscv.org/2018/10/risc-v-contest/|RISC-V SoftCPU Contest]])。PulseRain Reindeer是一个Von Neumann架构的软CPU,支持RISC-V RV32I [M]指令集,并具有2 x 2流水线架构,是综合平衡了速度和面积的结果,为所有FPGA平台上的软CPU提供了灵活的选择。Pulserain公司特别将该处理器为小脚丫实验平台做了升级改进,可以同时支持DRAM和FPGA片上BRAM,还对外部中断做了更好的支持。(参考源码[[https://github.com/PulseRain/Reindeer_Step|RISC-V Reindeer_Step Soft CPU]])。 | ||
行 6: | 行 7: | ||
- | === 准备工作 === | + | ## 准备工作 |
* 小脚丫FPGA开发板 STEP-CYC10 | * 小脚丫FPGA开发板 STEP-CYC10 | ||
* Intel Quantus Prime Lite18.1版本以上 | * Intel Quantus Prime Lite18.1版本以上 | ||
行 20: | 行 21: | ||
- | === 操作步骤 === | + | ## 操作步骤 |
* 获取PulseRain Reindeer_Step MCU软核 | * 获取PulseRain Reindeer_Step MCU软核 | ||
* 配置软核到STEP-CYC10 FPGA开发板 | * 配置软核到STEP-CYC10 FPGA开发板 | ||
行 64: | 行 65: | ||
Arduino IDE可以支持第三方板子的开发,但是需要安装第三方板卡的支持包。 | Arduino IDE可以支持第三方板子的开发,但是需要安装第三方板卡的支持包。 | ||
- | 打开Arduino IDE,打开 文件——首选项——附加开发板管理器网址,添加如下链接: **https://github.com/PulseRain/Arduino_RISCV_IDE/raw/master/package_pulserain.com_index.json**,确定后,打开 工具——开发板——开发板管理器,在搜索框中输入REINDEER,安装PACKAGE, 目前是1.1.5 版本。 | + | 打开Arduino IDE,打开 文件——首选项——附加开发板管理器网址,添加如下链接: **https://raw.githubusercontent.com/PulseRain/Arduino_RISCV_IDE/master/package_pulserain.com_index.json**,确定后,打开 工具——开发板——开发板管理器,在搜索框中输入REINDEER,安装PACKAGE。 |
{{ :安装板子支持包.png?nolink&500 |}} | {{ :安装板子支持包.png?nolink&500 |}} | ||
下载安装完成后在板卡管理器中有STEP CYC10 Board这个选项。 | 下载安装完成后在板卡管理器中有STEP CYC10 Board这个选项。 | ||
行 70: | 行 71: | ||
**步骤4:在Arduino IDE中开发应用程序** | **步骤4:在Arduino IDE中开发应用程序** | ||
- | 在Arduino IDE 工具一栏,选择开发板为STEP CYC10 Board,下面我们可以开始开发自己的应用程序了,这里我们编写一段应用程序实现[[reindeer_step_arduino_app1|流水灯和串口打印]]的功能: | + | 在Arduino IDE 工具一栏,选择开发板为STEP CYC10 Board,下面我们可以开始开发自己的应用程序了, |
+ | 这里我们编写一段应用程序实现[[reindeer_step_arduino_app1|流水灯和串口打印]]的功能: | ||
+ | |||
+ | <code c> | ||
+ | |||
+ | #define P0 (REG_GPIO[0]) | ||
+ | #define P1 (REG_GPIO[1]) | ||
+ | #define P2 (REG_GPIO[2]) | ||
+ | #define P3 (REG_GPIO[3]) | ||
+ | |||
+ | int kkk[1*1024]={999, 1000, 10001, 1898, 8888}; | ||
+ | |||
+ | void setup() { | ||
+ | // put your setup code here, to run once: | ||
+ | Serial.print(" ===================="); | ||
+ | P3 = 0xAA; | ||
+ | delay (1000); | ||
+ | |||
+ | } | ||
+ | |||
+ | int t = 0; | ||
+ | |||
+ | uint32_t i = 0; | ||
+ | uint8_t led_position = 0; | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | Serial.print (i); | ||
+ | i = (i + 1) %(1024); | ||
+ | Serial.print(" ===================="); | ||
+ | kkk [i] = kkk [i] + i; | ||
+ | Serial.print (kkk[i]); | ||
+ | Serial.println (" "); | ||
+ | delay (600); | ||
+ | led_position = (led_position + 1) % 8; | ||
+ | |||
+ | P3 = ~(1 << led_position); | ||
+ | } | ||
+ | </code> | ||
点击Arduino IDE的验证✔选项开始编译,程序编译结果会在下面的信息栏中给出。 | 点击Arduino IDE的验证✔选项开始编译,程序编译结果会在下面的信息栏中给出。 | ||
这里建议用户在Preferences对话框 (菜单File / Preferences) 中打开“Show Verbose Output”选项,这样信息栏中会给出详细的编译结果。 | 这里建议用户在Preferences对话框 (菜单File / Preferences) 中打开“Show Verbose Output”选项,这样信息栏中会给出详细的编译结果。 | ||
行 83: | 行 123: | ||
{{ :程序上传报告.png?nolink&500 |}} | {{ :程序上传报告.png?nolink&500 |}} | ||
- | === 结果演示 === | + | ## 流水灯例子演示效果 |
演示效果如下: | 演示效果如下: | ||
打开串口监视器波特率为115200,可以看到不断打印累加数字,板子上的LED呈现流水灯模式。 | 打开串口监视器波特率为115200,可以看到不断打印累加数字,板子上的LED呈现流水灯模式。 | ||
{{ :演示效果.jpg?nolink&500 |}} | {{ :演示效果.jpg?nolink&500 |}} | ||
更多外设支持正在持续不断的开发中,接下来也会推出更多好玩的Demo。 | 更多外设支持正在持续不断的开发中,接下来也会推出更多好玩的Demo。 | ||
+ | |||
+ | ## 综合例子演示 | ||
+ | 在源文件夹中,有一个综合demo,我们打开sketch文件夹,full_demo文件夹,打开full_demo.ino文件,这是一个Arduino工程,\\ | ||
+ | 在编译这个程序之前,我们需要安装两个库文件:Step_CYC10_I2C.h和Step_CYC10_Seven_Seg_Display.h。\\ | ||
+ | |||
+ | 打开 “项目”—“加载库”—“管理库”,搜索“step_cyc10”,安装I2C和数码管显示两个库。 | ||
+ | |||
+ | {{::arduino加载step_cyc10库文件.png?600|}} | ||
+ | |||
+ | {{::arduino加载step_cyc10库文件2.png?600|}} | ||
+ | \\ | ||
+ | 安装完成之后,编译,下载。 | ||
+ | |||
+ | {{:arduino-risc-v演示.mp4|}} | ||
+ | |||
+ | ## 返回目录 | ||
+ | * [[fpga_risc-v|基于FPGA与RISC-V的嵌入式系统设计]] | ||
+ | - [[reindeer_step_arduino|使用Arduino IDE开发RISC-V处理器]] | ||
+ | - [[reindeer_step_make|使用make配置编译RISC-V应用程序]] |