【自用】Ubuntu20.4从Vivado到ddr200t运行HelloWorld

【自用】Ubuntu20.4新系统从输入法到ddr200t运行HelloWorld

  • 一、编辑bashrc
  • 二、Vivado2022.2安装
  • 三、编译蜂鸟E203自测样例
    • 1. 环境准备
    • 2. 下载e203_hbirdv2工程文件
    • 3. 尝试编译自测案例
      • 1. 安装RISC-V GNU工具链
      • 2. 编译测试样例
    • 4. 用vivado为FPGA生成mcs文件
      • 1.准备RTL
      • 2.生成bit文件
      • 3.生成mcs文件
    • 5. 向硬件中烧MCS文件
  • 四、配置HBird SDK
    • 1.准备
    • 2.安装工具链
    • 3. 工具配置
    • 4.准备setup.config.sh文件
  • 五、HelloWorld
    • 1. 编译HelloWorld样例
    • 2. 运行HelloWorld样例
    • 3.自己踩过的坑

一、编辑bashrc

vim ~./bashrc

a编辑,将一下内容复制在最后

# ~/.bashrc
if [[ $- == *i* ]]
then
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
fi

在安装完Vivado和e203蜂鸟SDK后再复制下面内容,注意修改路径

function e203 {
source /tools/Xilinx/Vivado/2022.2/settings64.sh
cur_dir=$(pwd)
cd /home/UserName/Documents/hbirdv2_dev/hbird-sdk
source setup.sh
cd $cur_dir
}

e203

Esc退出编辑模式

输入 :wq ( 不可忽略,保存退出)

输入 :q! (不保存退出)

二、Vivado2022.2安装

参考【踩坑】Ubuntu20.4安装Vivado

三、编译蜂鸟E203自测样例

可参考官方上手指南

1. 环境准备

在终端输入

sudo apt-get install autoconf automake autotools-dev curl device-tree-compiler libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev git

注意官网是分成了两行,但是一定要一整行输进去,不然会报错。

2. 下载e203_hbirdv2工程文件

在文件夹下打开终端输入

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

3. 尝试编译自测案例

1. 安装RISC-V GNU工具链

从这里安装,注意建议安装2022.12的版本!!!!!如果使用2022.08和2023.10都会遇到不同程度无法解决的报错。

riscv-nuclei-elf-gcc: Command not found ../Makefile:78: recipe for target 'rv32ui-p-simple' failed make: *** [rv32ui-p-simple] Error 127

在这里插入图片描述配置测试文件

cp nuclei_riscv_newlibc_prebuilt_linux64_2022.12.tgz.bz2 ~/

cd ~/

tar -xjvf nuclei_riscv_newlibc_prebuilt_linux64_2022.12.tgz.bz2

cd <your_e203_dir>/

mkdir -p ./riscv-tools/prebuilt_tools/prefix/bin

cd ./riscv-tools/prebuilt_tools/prefix/bin/

ln -s ~/nuclei_riscv_newlibc_prebuilt_linux64_2022.12/bin/* .

文件名和文件夹名按照自己的文件修改

2. 编译测试样例

cd <your_e203_dir>/riscv-tools/riscv-tests/isa

source regen.sh

4. 用vivado为FPGA生成mcs文件

可参考4.2. How to generate mcs for FPGA

1.准备RTL

cd <your_e203_dir>/fpga

make install FPGA_NAME=ddr200t

2.生成bit文件

make bit FPGA_NAME=ddr200t

3.生成mcs文件

make mcs FPGA_NAME=ddr200t

5. 向硬件中烧MCS文件

4.2.2. FPGA MCS download

四、配置HBird SDK

1.准备

在系统对应位置创建文件夹Nuclei-Tools

2.安装工具链

安装地址,RISC-V 工具链和OpenOCD最好下载相同的版本,这里也是建议安装2022.12版本
在这里插入图片描述

3. 工具配置

在Nuclei-Tools文件夹下创建gcc文件夹和openocd文件夹。
将解压的gnu toolchain终文件夹下所有内容复制到gcc文件夹下,将解压的openocd终文件夹下所有内容复制到我们准备好的openocd文件夹下

4.准备setup.config.sh文件

在< hbird-sdk >文件夹下打开终端

touch setup_config.sh
gedit setup_config.sh

输入以下内容,注意修改路径

NUCLEI_TOOL_ROOT=<nuclei-tools>

保存后在< hbibrd-sdk >目录下执行

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

五、HelloWorld

1. 编译HelloWorld样例

进入HelloWorld文件夹

cd <hbird-sdk>/application/baremetal/helloworld

编译样例

make dasm SOC=hbirdv2 BOARD=ddr200t CORE=e203 DOWNLOAD=flashxip

注:

  1. dash :表示对程序进行编译,并对可执行文件(.elf)进行反汇编生成.dump文件
  2. SOC=hbirdv2:指明SOC型号
  3. BOARD=ddr200t:指明开发板型号
  4. CORE=e203:指明Core型号,此处指的是蜂鸟E203 Core
  5. 此处可根据实际修改参数。

2. 运行HelloWorld样例

4.3.4. Run Hello World demo

  1. 链接开发板和蜂鸟调试器
  2. 输入groups 观察是否出现... plugdev ... ,如果出现说明在组件中,可以继续后面的步骤
  3. 编译下载文件
cd <hbird-sdk>/application/baremetal/helloworld
make upload SOC=hbirdv2 BOARD=ddr200t CORE=e203 DOWNLOAD=flash
  1. 打开UART 终端
sudo screen /dev/ttyUSB1 115200
  1. 按下复位键会刷新
    在这里插入图片描述

3.自己踩过的坑

  1. 【踩坑】参考官方文档 蜂鸟E203从运行自测样例到运行HelloWorld路上的坑
  2. 【踩坑】Ubuntu20.4安装Vivado

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/267329.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Centos 7.9安装Oracle19c步骤亲测可用有视频

视频介绍了在虚拟机安装centos 7.9并安装数据库软件的全过程 视频链接&#xff1a;https://www.zhihu.com/zvideo/1721267375351996416 下面的文字描述是安装数据库的部分介绍 一.安装环境准备 链接&#xff1a;https://pan.baidu.com/s/1Ogn47UZQ2w7iiHAiVdWDSQ 提取码&am…

贝叶斯球快速检验条件独立

贝叶斯球 定义几个术语&#xff0c;描述贝叶斯球在一个结点上的动作&#xff1a; 通过&#xff08;pass through&#xff09;&#xff1a;从当前结点的父结点方向过来的球&#xff0c;可以访问当前结点的任意子结点&#xff08;父->子&#xff09;。从当前节点的子结点方向…

基于电商场景的高并发RocketMQ实战-NameServer内核原理剖析、Broker 主从架构与集群模式原理分析

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 【11来了】文章导读地址&#xff1a;点击查看文章导读&#xff01; &#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f3…

Prometheus介绍和安装

Prometheus介绍和安装 1. Prometheus介绍 Prometheus&#xff08;普罗米修斯&#xff09;是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目&#xff0c;拥有非常活跃的开发人员和用户社区。为强调开源及独立维护&#xff0c;Prometheus于2016年加入云原生云…

指标体系构建-03-交易型的数据指标体系

参考&#xff1a; 本文参考 1.接地气的陈老师的数据指标系列 2.科普 | 零售行业的数据指标体系及其含义、应用阶段 3.”人货场”模型搞懂没&#xff1f;数据分析大部分场景都能用&#xff01; 4.一分钟读懂广告投放各计费CPM、CPC等&#xff08;公式推导干货&#xff09; 5.AA…

mysql 数据编译安装以及参数说明 安装包下载

目录 MySQL 官网地址官网下载源码包安装步骤修改密码 MySQL 官网地址 https://dev.mysql.com/doc/ 官网下载源码包 安装步骤 # 所需要的依赖及安装mysql的包" [rootmysql_source ~]# yum -y install ncurses ncurses-devel openssl-devel bison libgcrypt gcc gcc-c ma…

前缀和+单调双队列+贪心:LeetCode2945:找到最大非递减数组的长度

本文涉及知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 单调双队列 贪心 题目 给你一个下标从 0 开始的整数数组 nums 。 你可以执行任意次操作。每次操作中&#xff0c;你需要选择一个 子数组 &#xff0c;并将这个子数组用它所…

AcWing 1238. 日志统计(双指针,滑动窗口)

题目&#xff1a; 1238. 日志统计 - AcWing题库 数据范围 输入样例&#xff1a; 7 10 2 0 1 0 10 10 10 10 1 9 1 100 3 100 3输出样例&#xff1a; 1 3 思路&#xff1a;双指针 代码&#xff1a; #include<iostream> #include<cstdio> #include<cmath>…

如何从 Android 手机免费恢复已删除的通话记录/历史记录?

有一个有合作意向的人给我打电话&#xff0c;但我没有接听。更糟糕的是&#xff0c;我错误地将其删除&#xff0c;认为这是一个骚扰电话。那么有没有办法从 Android 手机恢复已删除的通话记录呢&#xff1f;” 塞缪尔问道。如何在 Android 上恢复已删除的通话记录&#xff1f;如…

LeetCode刷题--- 组合总和

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述递归递归、搜…

uniapp怎么动态渲染导航栏的title?

直接在接口请求里面写入以下&#xff1a; 自己要什么参数就写什么参数 本人仅供参考&#xff1a; this.name res.data.data[i].name; console.log(名字, res.data.data[i].name); uni.setNavigationBarTitle({title: this.name}) 效果&#xff1a;

[Linux] MySQL数据库之索引

一、索引的相关知识 1.1 索引的简介 索引是一个排序列表&#xff0c;包含索引值和包含该值的数据行的物理地址&#xff08;类似于 c 语言链表&#xff0c;通过指针指向数据记录的内存地址&#xff09;。 使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索…

Redis-运维

转自 极客时间 Redis 亚风 原文视频&#xff1a;https://u.geekbang.org/lesson/535?article681062 Redis 同步 Redis主从数据同步,主从第⼀次同步是全量同步 replicaof 主机 端口 #当前这个机器做Master的备份master如何判断slave是不是第⼀次来同步数据&#xff1a; Repl…

掌握iText:轻松实现固定pdf模板的动态数据填充

推荐语 如果你在工作中需要处理大量的PDF表单&#xff0c;那么使用iText5实现固定PDF模板的动态数据填充&#xff0c;将是一种非常有效的方法。这篇技术文章详细介绍了如何使用iText5库来读取已有的PDF模板&#xff0c;并动态地填充表单数据&#xff0c;生成最终的表单文件。通…

2.苍穹外卖-day02

苍穹外卖-day02 课程内容 新增员工 员工分页查询 启用禁用员工账号 编辑员工 导入分类模块功能代码 功能实现&#xff1a;员工管理、菜品分类管理。 员工管理效果&#xff1a; 菜品分类管理效果&#xff1a; 1. 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需求分…

基础js逆向练习-登录密码破解(js逆向)

练习平台&#xff1a;逆向账号密码 https://login1.scrape.center/ 直接打开平台&#xff0c;输入密码账号&#xff0c;抓包找到加密的参数携带的位置&#xff0c;这边我们找到的是一个叫token的加密参数&#xff0c;这个参数的携带是一个密文 我们首先考虑一下搜索这个加密的…

正餐---二叉树的OJ题

目录​​​​​​​ 前言&#x1f36f; 1. 检查两颗树是否相同&#x1f947; 1.1 思路分析&#x1fa99; 1.2 代码实现&#x1f9f0; 2. 单值二叉树&#x1f332; 2.1 思路分析&#x1f52e; 2.2 代码实现&#x1f488; 3. 二叉树的前序遍历&#x1f39f;️ 3.1 思路分…

【SpringBoot】之Security进阶使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringBoot开发之Security系列》。&#x1f3af…

WORDPRESS付费会员插件Paid Memberships Pro v2.12.5 – Plugin + All Addons

WORDPRESS付费会员插件Paid Memberships Pro v2.12.5 – Plugin All Addons 简介&#xff1a; Paid Memberships Pro是一款功能强大的会员订阅和内容限制管理插件&#xff0c;适用于WordPress网站。它提供了丰富的特性和工具&#xff0c;帮助网站所有者轻松地创建和管理付费…

基于XML配置方式SSM框架西蒙购物网

文章目录 一、网站功能需求二、网站设计思路1、设计模式2、网站前台3、网站后台4、购物流程图 三、网站运行效果四、网站实现步骤&#xff08;一&#xff09;创建数据库与表1、创建数据库 - simonshop2、创建用户表 - t_user3、创建商品类别表 - t_category4、创建商品表 - t_p…