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     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程序相关推荐

  1. 开源RISC-V处理器(蜂鸟E203)学习(五)A100T-FPGA 移植蜂鸟Hbirdv2,实现Centos下调试器USB识别以及程序编译烧写,并进行C语言仿真

    1.简述 最近购买了一块适合做原型验证FPGA板卡,板卡接口和外设比较丰富,十分适合跑一些小型的SOC工程,比如蜂鸟E203:板卡自带FPGA烧写器和软核CPU的JATG调试器,还有USB接口的UAR ...

  2. 蜂鸟E203学习笔记-取指模块概述(2)

    蜂鸟E203学习笔记 前言 1 部分译码 2 分支预测与PC生成 3 请求与响应 4 流水线冲刷 5 阻塞请求 前言 本文取指模块概述后半部分,前半部分跳转至:取指模块概述(1) 1 部分译码 Min ...

  3. 蜂鸟E203学习笔记(四)——取指

    1.1 取值概述 1.1.1 如何快速取指 首先要保证存储器的读延时足够小,通常使用指令紧耦合存储器(ITCM)和指令缓存器(ICache). ITCM通常使用离处理核很近的SRAM因此实现极短的延时 ...

  4. 蜂鸟E203学习笔记(五)——执行

    1.1 执行概述 1.1.1 指令译码 指令所包含的信息编码在有限长度的指令字中,信息如下: 指令所需要读取的操作数寄存器索引 指令需要写回的寄存器索引 指令的其他信息如指令类型.指令的操作信息等 顺 ...

  5. 蜂鸟E203学习笔记(二)--蜂鸟E203总体框架

    蜂鸟E203总体框架 蜂鸟E203处理器系统如下图所示 一.蜂鸟E203处理器核设计总览和顶层 1.1 蜂鸟E203处理器核的设计理念 模块化和可重用性:将处理器分成几个主体模块,每个单元之间的接口简 ...

  6. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  7. Arm确认对华禁售先进处理器IP!平头哥宣布:RISC-V成功运行安卓12

    12月14日消息,日本软银集团旗下英国芯片设计公司Arm,已经拒绝向中国企业出售先进CPU芯片设计IP--Neoverse V1 和 V2产品,涉及包括阿里旗下芯片设计公司平头哥半导体,以及其他中国芯 ...

  8. mini2440开发板学习裸机开发——day1 裸机运行LED灯程序

    开发背景:系统:ubuntu18.04系统 开发板:mini2440 串口连接工具 J-link连接工具 工具:secureCRT J-link 本次学习基于韦东山老师的嵌入式linux应用开发手册书 ...

  9. RISCV学习笔记6.2--vcs和verdi开发蜂鸟e203

    参考博客:1.在vcs中编译及运行测试E203例子 2.开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs2018+verdi2018) 3. VCS常用命令详解 上一个教程中,e2 ...

最新文章

  1. 如何使用visual studio 2017创建C语言项目
  2. 神策 2020 数据驱动用户大会报名开启
  3. 用于zsh的插件incr(目录提示和补全)
  4. oracle静默文件建库,【配置上线】Oracle静默建库 for 11g
  5. 数据分析的流程是啥样?
  6. 群晖 mysql 自动备份_宝塔定时备份网站及数据库至群晖FTP存储空间
  7. Mssql高级注入笔记.txt (转自:慕容小雨BLOG)
  8. $.getJSON()不执行回调函数
  9. 关于编辑区无法调用chekbox的问题
  10. Rust : 危险! 关于字符串切片以及取值......
  11. php 自定义 base64 解码,php base64 编码与解码实例代码
  12. 辽宁专科php教材用什么,辽宁新高考改革方案的具体内容是什么?
  13. Ubuntu命令方式安装中文语言包
  14. 超实用的doc 转 docx
  15. java duplicate_java中出现duplicate local variable
  16. HTTP服务器中keep-alive 与 url常见问题
  17. SQL Server 教程 之 一目了然
  18. 8 - 1 - Non-linear Hypotheses (10 min)
  19. oracle转换全角函数,Oracle全角変換
  20. iTunes只能装C盘吗_iphone备份太大,严重挤占C盘空间,怎么把备份放在其他的硬盘?...

热门文章

  1. 华为路由器:真机AR1200路由器密码重置
  2. 微博爬虫(python)历险记
  3. Oracle进阶篇之查看执行计划
  4. Luogu P5037 抓捕
  5. 计量经济学Stata-自用笔记
  6. java | 什么是动态代理?
  7. 2022年Matlab毕设避坑指南及选题推荐
  8. 相位噪声基础及测试原理和方法
  9. 赛码网输入输出整理(Java)
  10. 如何优化Facebook广告提高您的转化率!Facebook广告投放优化的高阶策略