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

1.简述

之前分享过蜂鸟V1版本的移植教程,主要实现VCS仿真、移植到自己FPGA板卡上、最后使用芯来windows下IDE成功运行hello world;但是作为ICer,怎么不在Linux下开发,同时实现编译C语言进行仿真;后面芯来更新了V2版本,对比一下V1,发现V2环境更合理干净,所以这次直接上V2版本;
说明 :本文章参考芯来的说明教程,详情请看:蜂鸟v2 E203 核心和 SoC

2.获取原工程

先虚拟机联网,我的所有IC工程都放在"ic_projs"目录下,进入该目录下,使用以下命令取下V2的工程;

git clone https://gitee.com/riscv-mcu/e203_hbirdv2

在这里插入图片描述

3.VCS+Verdi仿真

直接进入到vsim目录下,这里体现V2版本的优势,不用修改仿真脚本,使用命令参数化选择仿真工具,使用以下命令进行vcs仿真;

make clean
make install
make compile SIM=vcs
make run_test SIM=vcs

在这里插入图片描述

使用以下命令,启动Verdi查看波形;

make wave SIM=vcs

在这里插入图片描述

4.FPGA移植

这部分方法和V1的一致,修改FPGA型号、管脚约束、注释不用引脚相关的信号,其中需要注意的是32K时钟,由于我板子没有这个晶振,所以在system.v中编写分频器代码;具体的修改可以参考我gitee的工程;
我的gitee传送门
在这里插入图片描述

5.安装linux工具安装与环境设置

1)下载

下载图中的两个工具:芯来linux工具下载传送门
在这里插入图片描述

2)拷贝

可以在虚拟机用火狐浏览器下载,但我是在windows中下载,通过共享文件的方式拷贝到虚拟机中。强调一下:将windows文件考入虚拟机,最好通过共享文件夹方式,因为直接将文件拖入(copy)都会出现文件损坏的情况;这里不知道怎们设置共享文件夹的朋友可以看我 EDA系列安装教程的第三部分。
还有我一般在home目录下建一个文件夹,集中仿真一些文件和安装包,如 12文件夹;
在这里插入图片描述

3)解压

使用以下命令解压,分别得到 gcc和Nuclei两个文件;

tar -xf nuclei-openocd-0.10.0-15-linux-x64.tgz
tar -xf nuclei_riscv_newlibc_prebuilt_linux64_2020.08\ .tar.bz2

在这里插入图片描述回到home下新建一个 Nuclei_Tools 的文件夹,分别将上面解压的两个文件拷贝进来;

mkdir Nuclei_Tools
cp -rf ../12/gcc/ ./
cp -rf ../12/Nuclei/openocd/ ./

在这里插入图片描述

4)获取HBird SDK

进入到Hbirdv2的工程目录下,使用git取下SDK;

git clone https://gitee.com/riscv-mcu/hbird-sdk.git

在这里插入图片描述

5)设置 SDK环境

进入到hbird-sdk目录下,新建setup_config.sh文件,并加入第三个命令;第三个是上面解压两个文件,和我不一样的路径,自己灵活修改;

touch setup_config.sh
g setup_config.sh
NUCLEI_TOOL_ROOT=/home/ICer/Nuclei_Tools

在这里插入图片描述
在这里插入图片描述
最后还需要运行以下命令构建环境;

source setup.sh
echo $PATH
which riscv-nuclei-elf-gcc openocd make rm
make help

在这里插入图片描述

6)编译hello world demo

进入到 helloword目录,使用ilm模式编译;最后编译成功;

cd application/baremetal/helloworld/
make dasm SOC=hbirdv2 BOARD=ddr200t CORE=e203 DOWNLOAD=ilm

在这里插入图片描述

7)调试器驱动安装

(1) 先将调试器插入电脑USB,在虚拟机中设置,如图所示,选择连接;
在这里插入图片描述
(2) 依次使用以下命令

lsusb
sudo gvim /etc/udev/rules.d/99-openocd.rules

文件中加入以下内容,我的调试器是sipeed的,与芯来199的一致;

SUBSYSTEM=="usb", ATTR{idVendor}=="0403",
ATTR{idProduct}=="6010", MODE="664", GROUP="plugdev"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403",
ATTRS{idProduct}=="6010", MODE="664", GROUP="plugdev"

最后将当前用户加入plugdev时提示,该组不存在,因此还需要继续设置;
在这里插入图片描述
(3) 新建plugdev
使用以下命令新建;

sudo groupadd plugdev

再次使用该命令将所在用户添加到 plugdev 组中;

sudo usermod -a -G plugdev ICer

重启一下,就可以查询ICer已经在 plugdev 组中;

groups

在这里插入图片描述
(4) 修改openocd_hbirdv2.cfg
在 hbird-sdk 目录下,直接使用下面命令打开openocd配置文件;将Flash相关全部注释掉,具体如下图;
我的板子没有额外的Flash,很多人板子也没有Flash,因此只能将程序烧写到Ram中,所以使用 ilm模式,并Flash相关的配置注释掉,不然影响烧写;

g SoC/hbirdv2/Board/ddr200t/openocd_hbirdv2.cfg

在这里插入图片描述
(5) 烧写
进入到 helloworld目录下,使用下面命令进行烧写;
但是出现 “openocd:未找到命令”,

make upload SOC=hbirdv2 BOARD=ddr200t CORE=e203 DOWNLOAD=ilm

在这里插入图片描述

(6) 修改脚本
发现 hbird-sdk 目录中的 setup.sh脚本有问题;如图修改为正确的路径;然后重新走一遍流程(下面的命令);

source setup.sh
echo $PATH
which riscv-nuclei-elf-gcc openocd make rm
make help

在这里插入图片描述
在这里插入图片描述
(7) 再次烧写
如图所示,应该是成功了;
如果还是不行,就需要确认前面设置路径是否问题,setup_config.sh脚本中路径是否正确;
在这里插入图片描述
(8) 安装串口
另开一个terminal,使用第一个命令安装;使用第二个命令启动串口窗口;重新烧写以下程序,就可以看到打印的helloworld信息,说明成功了;

sudo yum install screen
sudo screen /dev/ttyUSB1 115200

在这里插入图片描述

6.c仿真

1)修改Makefile

进入到vsim目录下,打开Makefile,修改如下;将我们前面编译的helloworld程序修改进来;其他也是如此操作
在这里插入图片描述

2)make

使用以下命令,重置环境进行仿真,最后打印 hello world字样,完美 祝贺成功!!!

make clean
make install
make compile SIM=vcs
make run_test SIM=vcs

在这里插入图片描述

7.总结

这次内容其实在五一前实现了,只是后面各种事情耽误,没来得及分享,希望现在还来得及;
蜂鸟e203的环境和代码有很多值得学习的地方,为我后面的造U计划提供很大的帮助,非常具有参考价值,希望大家多多交流,交流中获取更多的灵感;

在这里插入图片描述

### 回答1: Zynq 7020 蜂鸟 E20 是一款基于 Xilinx 的 SoC(系统级芯片)平台的开发板。它采用了著名的 ARM Cortex-A9 双核处理器,和 Xilinx 7 系列 FPGA 集成在一起。这使得该开发板不仅有强大的处理性能,还能够灵活地进行可编程逻辑的设计。 Zynq 7020 蜂鸟 E20 开发板提供了丰富的外设和接口,例如 HDMI 输入/输出,以太网接口,SD 卡槽,USB 接口等。这些接口可以让开发者与外部设备进行数据交互,满足不同应用领域的需求。此外,该开发板还具有一定的扩展性,可以通过 PMOD 接口和 FMC 总线连接各种扩展模块和外部设备。 对于软件开发,Zynq 7020 蜂鸟 E20 支持多种开发环境,包括 Vivado 开发套件和 Xilinx SDK。开发者可以使用 Vivado 进行 FPGA 的逻辑设计和调试,同时使用 Xilinx SDK 进行 ARM 处理器上的软件开发。这个双重模式的设计使得开发板具备了更大的灵活性和开发效率。 总的来说,Zynq 7020 蜂鸟 E20 是一款功能强大的开发板,适用于嵌入式系统开发和可编程逻辑设计。它把处理器和 FPGA 结合在一起,既具备了强大的处理性能,又拥有灵活的可编程逻辑设计能力。无论是对于学习者还是专业开发者来说,这款开发板都具备了广泛的使用价值。 ### 回答2: 蜂鸟E20是一款基于Xilinx Zynq-7000系列 SoC芯片的嵌入式开发平台。Zynq-7000系列芯片结合了ARM Cortex-A9双核处理器和FPGA芯片,具有高性能和灵活性。蜂鸟E20使用的Zynq-7020芯片拥有双核ARM Cortex-A9处理器和可编程逻辑资源,可以实现软硬件协同设计和高性能的数字信号处理。 蜂鸟E20拥有丰富的外设接口,包括多个UART、SPI、I2C和GPIO接口,以及高速USB接口和以太网接口,方便与外部设备进行通信。此外,它还有支持高清视频输入输出的HDMI接口,并且可以通过板载扩展接口连接摄像头、显示屏等外部器件。 蜂鸟E20的硬件平台搭载了Linux操作系统,开发者可以在该平台上进行软件开发和调试。它还提供了丰富的软件开发工具,包括Xilinx的Vivado设计套件和SDK开发套件,方便开发者进行硬件设计和软件编程。 蜂鸟E20适用于各种嵌入式应用,如工业自动化、智能家居、机器人和无人机等领域。它的灵活性和可扩展性使得开发者可以根据项目需求进行定制化开发,满足不同的应用需求。 总之,蜂鸟E20是一款功能强大的嵌入式开发平台,具有高性能和灵活性,适用于各种嵌入式应用的开发和实现。 ### 回答3: Zynq-7020蜂鸟e20是一款基于Xilinx Zynq-7000系列SoC的嵌入式开发板。它集成了ARM Cortex-A9双核处理器和Artix-7系列FPGA,提供了强大的计算和可编程的逻辑功能。 ARM Cortex-A9处理器是一种高性能的嵌入式处理器,可用于运行复杂的应用程序蜂鸟e20采用了双核设计,可以实现多线程运行,提高处理性能和并行计算能力。此外,Cortex-A9还支持硬浮点运算单元,可以加速浮点计算任务。 与单独使用ARM Cortex-A9处理器相比,使用Zynq-7020的蜂鸟e20还具有FPGA的优势。FPGA可编程逻辑可以根据应用需求自定义,使开发者能够实现高度定制的硬件加速和接口控制。这意味着用户可以针对不同的应用场景优化系统性能,提高能效并减少功耗。 由于Zynq-7020蜂鸟e20具有强大的处理和可编程的逻辑功能,因此它在很多领域都得到了广泛应用。例如,它可以用于工业自动化控制系统,实现精确的数据采集和实时控制。在通信和网络设备领域,它可以用于实现高速数据处理和流量控制。此外,蜂鸟e20还可以用于图像处理、机器人技术和智能家居等领域。 总之,Zynq-7020蜂鸟e20是一款功能强大的嵌入式开发板,它结合了ARM Cortex-A9处理器和可编程的逻辑功能,可以广泛应用于多个领域,为开发者提供高性能和灵活的解决方案。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值