开源RISC-V处理器(蜂鸟E203)学习(三)低成本方案,成功运行hello word程序
芯王国
2021年03月06日 20:31
收录于文集
共5篇

1.简述

        经过不懈的努力,终于成功运行hello word程序,这是一个极低成本的RISC-V学习方案,感兴趣继续往下看。

2.准备

1)硬件

如图,从左到右依次为:

  1. Xilinx FPGA HS3 Cable(下载器);

  2. K325t FPGA板卡,闲鱼淘的,花了750大洋,目前使用没有遇到任何问题;

  3. PCB拓展板,将FPGA板卡2.0mm接口转成常用2.54mm,顺便增加一些常用的外设和接口:LED、按键、Flash、Uart、IIC、SPI、GPIO等,另外还有软件程序调试接口;这个画的第一版,有些小瑕疵,第二版还在排队生产中。注意:这个PCB不是一定要做

  4. Sipeed 40大洋的RV-link调试器,与芯来淘宝店199的下载器一样,目前使用正常;与芯来淘宝点3、4千的FPGA板卡+199调试器相比,我使用现有的FPGA板卡和Cable,额外只需要制作PCB和购买Sipeed调试器,这两个的费用加起来不到100,比购买一个芯来的调试器还便宜,这应该是很低成本了吧,当然这样比较折腾人,但这也很值得。

2)软件

  1. 修改e200工程,这部分可以参考:开源RISC-V处理器(蜂鸟E203)学习(二)修改FPGA综合环境(移植到自己的Xilinx FPGA板卡)这篇文章。将e203移植到自己的FPGA板卡上。

  2. 除了以上之外,还需要修改FPGA顶层—system.v,如下图所示,将bootrom_n信号改为0,也就是上电从内部的ROM启动。因为不是每个人的板卡都有额外的Flash,所以这里直接选择从ROM启动。

  1. 推荐下载芯来2021最新IDE,下载连接:芯来官网连接。这个IDE提供配置好的环境,不用自己繁琐地设置,当然后面自己也会去尝试配置。

  1. 推荐使用友善串口助手,我在大学期间用过很多串口助手,都没有友善好用,它画面简洁清晰稳定而且无广告。但是需要付费,然而我有注册码:

代码块
JavaScript
自动换行
复制代码
SA56W-UR34V-7KY76-XB31F-HZPAU
复制成功

3.Hello Word

1)启动IED

        进入芯来IDE文件下,双击红框中的程序启动IDE。

2)指定工作目录

        我目前直接放在桌面,点击“Lauch”继续。

3)选择程序类型

4)建立工程

        这里可以直接使用提供e203环境。

5)工程设置

        默认就行。

6)使用例程

7)默认配置

8)修改openocd文件

        找到如下路径的openocd文件。

        将Flash全部注释掉,具体修改如下:

代码块
JavaScript
自动换行
复制代码
adapter_khz     1000


interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_oscan1_mode off

transport select jtag

ftdi_layout_init 0x0008 0x001b
ftdi_layout_signal nSRST -oe 0x0020 -data 0x0020
ftdi_layout_signal TCK -data 0x0001
ftdi_layout_signal TDI -data 0x0002
ftdi_layout_signal TDO -input 0x0004
ftdi_layout_signal TMS -data 0x0008
ftdi_layout_signal JTAG_SEL -data 0x0100 -oe 0x0100

set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME riscv -chain-position $_TARGETNAME
$_TARGETNAME configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1

#set _FLASHNAME $_CHIPNAME.flash
#flash bank $_FLASHNAME fespi 0x20000000 0 0 0 $_TARGETNAME
# Set the ILM space also as flash, to make sure it can be add breakpoint with hardware trigger
#flash bank onboard_ilm fespi 0x80000000 0 0 0 $_TARGETNAME

# Expose Nuclei self-defined CSRS range 770-800,835-850,1984-2032,2064-2070
# See https://github.com/riscv/riscv-gnu-toolchain/issues/319#issuecomment-358397306
# Then user can view the csr register value in gdb using: info reg csr775 for CSR MTVT(0x307)
riscv expose_csrs 770-800,835-850,1984-2032,2064-2070

init
#reset
if {[ info exists pulse_srst]} {
  ftdi_set_signal nSRST 0
  ftdi_set_signal nSRST z
}
halt
# We must turn on this because otherwise the IDE version debug cannot download the program into flash
#flash protect 0 0 last off
复制成功

9)编译

        选中工程右键,点击“Build Project”

        编译结果:

10)RUN

        同上右键工程,配置Run属性;

        核对下面配置有没问题

11)成功运行

        RUN之前需要连接好串口,下面是串口打印的信息,说明成功了。

4.总结

        到这里基本完成蜂鸟203的移植,剩下就看个人的学习了。今年计划设计一个RISC-V处理器,不知道能不能成功,有相同目标的朋友,欢迎一起交流,一起努力!!!