RISC-V MCU中文社区

【分享】 开源RISC-V处理器(蜂鸟E203)学习(三)低成本方案,成功运行hello word程序

发表于 开源蜂鸟E203 2021-04-18 13:20:17
1
5187
12

1.简述

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

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. 推荐使用友善串口助手,我在大学期间用过很多串口助手,都没有友善好用,它画面简洁清晰稳定而且无广告。但是需要付费,然而我有注册码:
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处理器,不知道能不能成功,有相同目标的朋友,欢迎来交流,一起努力。

喜欢12
用户评论 (1)
  • 2022-03-09 10:25:43 1#

    我想问一下,这样下载的程序,不是掉电就丢失了吗?

LANxg

LANxg 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板