开源RISC-V处理器(蜂鸟E203)学习(三)低成本方案,成功运行hello word程序
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 1000interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_oscan1_mode offtransport select jtagftdi_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 0x0100set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5set _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-2070init
#reset
if {[ info exists pulse_srst]} {ftdi_set_signal nSRST 0ftdi_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处理器,不知道能不能成功,有相同目标的朋友,欢迎来交流,一起努力。
开源RISC-V处理器(蜂鸟E203)学习(三)低成本方案,成功运行hello word程序相关推荐
- 开源RISC-V处理器(蜂鸟E203)学习(五)A100T-FPGA 移植蜂鸟Hbirdv2,实现Centos下调试器USB识别以及程序编译烧写,并进行C语言仿真
1.简述 最近购买了一块适合做原型验证FPGA板卡,板卡接口和外设比较丰富,十分适合跑一些小型的SOC工程,比如蜂鸟E203:板卡自带FPGA烧写器和软核CPU的JATG调试器,还有USB接口的UAR ...
- 蜂鸟E203学习笔记-取指模块概述(2)
蜂鸟E203学习笔记 前言 1 部分译码 2 分支预测与PC生成 3 请求与响应 4 流水线冲刷 5 阻塞请求 前言 本文取指模块概述后半部分,前半部分跳转至:取指模块概述(1) 1 部分译码 Min ...
- 蜂鸟E203学习笔记(四)——取指
1.1 取值概述 1.1.1 如何快速取指 首先要保证存储器的读延时足够小,通常使用指令紧耦合存储器(ITCM)和指令缓存器(ICache). ITCM通常使用离处理核很近的SRAM因此实现极短的延时 ...
- 蜂鸟E203学习笔记(五)——执行
1.1 执行概述 1.1.1 指令译码 指令所包含的信息编码在有限长度的指令字中,信息如下: 指令所需要读取的操作数寄存器索引 指令需要写回的寄存器索引 指令的其他信息如指令类型.指令的操作信息等 顺 ...
- 蜂鸟E203学习笔记(二)--蜂鸟E203总体框架
蜂鸟E203总体框架 蜂鸟E203处理器系统如下图所示 一.蜂鸟E203处理器核设计总览和顶层 1.1 蜂鸟E203处理器核的设计理念 模块化和可重用性:将处理器分成几个主体模块,每个单元之间的接口简 ...
- AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- Arm确认对华禁售先进处理器IP!平头哥宣布:RISC-V成功运行安卓12
12月14日消息,日本软银集团旗下英国芯片设计公司Arm,已经拒绝向中国企业出售先进CPU芯片设计IP--Neoverse V1 和 V2产品,涉及包括阿里旗下芯片设计公司平头哥半导体,以及其他中国芯 ...
- mini2440开发板学习裸机开发——day1 裸机运行LED灯程序
开发背景:系统:ubuntu18.04系统 开发板:mini2440 串口连接工具 J-link连接工具 工具:secureCRT J-link 本次学习基于韦东山老师的嵌入式linux应用开发手册书 ...
- RISCV学习笔记6.2--vcs和verdi开发蜂鸟e203
参考博客:1.在vcs中编译及运行测试E203例子 2.开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs2018+verdi2018) 3. VCS常用命令详解 上一个教程中,e2 ...
最新文章
- 如何使用visual studio 2017创建C语言项目
- 神策 2020 数据驱动用户大会报名开启
- 用于zsh的插件incr(目录提示和补全)
- oracle静默文件建库,【配置上线】Oracle静默建库 for 11g
- 数据分析的流程是啥样?
- 群晖 mysql 自动备份_宝塔定时备份网站及数据库至群晖FTP存储空间
- Mssql高级注入笔记.txt (转自:慕容小雨BLOG)
- $.getJSON()不执行回调函数
- 关于编辑区无法调用chekbox的问题
- Rust : 危险! 关于字符串切片以及取值......
- php 自定义 base64 解码,php base64 编码与解码实例代码
- 辽宁专科php教材用什么,辽宁新高考改革方案的具体内容是什么?
- Ubuntu命令方式安装中文语言包
- 超实用的doc 转 docx
- java duplicate_java中出现duplicate local variable
- HTTP服务器中keep-alive 与 url常见问题
- SQL Server 教程 之 一目了然
- 8 - 1 - Non-linear Hypotheses (10 min)
- oracle转换全角函数,Oracle全角変換
- iTunes只能装C盘吗_iphone备份太大,严重挤占C盘空间,怎么把备份放在其他的硬盘?...