1.简述
经过不懈的努力,终于成功运行hello word程序,这是一个极低成本的学习方案,感兴趣继续往下看。
2.准备
1)硬件
如图,从左到右依次为:
- Xilinx FPGA HS3 Cable(下载器);
- K325t FPGA板卡,闲鱼淘的,花了750大洋,目前使用没有遇到任何问题;
- PCB拓展板,将FPGA板卡2.0mm接口转成常用2.54mm,顺便增加一些常用的外设和接口:LED、按键、Flash、Uart、IIC、SPI、GPIO等,另外还有软件程序调试接口;这个画的第一版,有些小瑕疵,第二版还在排队生产中。注意:这个PCB不是一定要做;
- Sipeed 40大洋的RV-link调试器,与芯来淘宝店199的下载器一样,目前使用正常;
与芯来淘宝点3、4千的FPGA板卡+199调试器相比,我使用现有的FPGA板卡和Cable,额外只需要制作PCB和购买Sipeed调试器,这两个的费用加起来不到100,比购买一个芯来的调试器还便宜,这应该是很低成本了吧,当然这样比较折腾人,但这也很值得。
2)软件
- 修改e200工程,这部分可以参考:开源RISC-V处理器(蜂鸟E203)学习(二)修改FPGA综合环境(移植到自己的Xilinx FPGA板卡)这篇文章。将e203移植到自己的FPGA板卡上。
- 除了以上之外,还需要修改FPGA定成顶层—system.v,如下图所示,将bootrom_n信号改为0,也就是上电从内壁的ROM启动。因为每个人的板卡不一定都有额外的Flash放置程序,所以这里直接从ROM启动。
- 推荐下载芯来2021最新IDE,下载连接:芯来官网连接。这个IDE提供配置好的环境,不用自己繁琐地设置,当然后面自己也会去尝试配置。
- 推荐使用友善串口助手,我在大学期间用过很多串口助手,都没有友善好用,它画面简洁清晰稳定而且无广告。但是需要付费,然而我有注册码:
SA56W-UR34V-7KY76-XB31F-HZPAU
3.Hello Word
1)启动IED
进入芯来IDE文件下,双击红框中的程序启动IDE。
2)指定工作目录
我目前直接放在桌面,点击“Lauch”继续。
3)选择程序类型
4)建立工程
这里可以直接使用提供e203环境。
5)工程设置
默认就行。
6)使用例程
7)默认配置
8)修改openocd文件
找到如下路径的openocd文件。
将Flash全部注释掉,具体修改如下:
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处理器,不知道能不能成功,有相同目标的朋友,欢迎来交流,一起努力。