| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> Renode:第一个RISC-V裸机demo -> 正文阅读 |
|
[嵌入式]Renode:第一个RISC-V裸机demo |
在Renode上跑通了一个裸机(baremetal)demo,记录一下过程,为后面的进一步开发做铺垫。 该Demo来自国外一个大神的代码仓库:https://github.com/y2kbugger/baremetal-riscv-renode 有兴趣的同学可以自行下载。 1. 准备工作1.1 Renode安装由于我们使用Renode作为仿真平台,因此首先需要完成Renode的安装。以上代码仓库中包含了所有的工程组件,包括Renode源码、RISC-V工具链源码,以及编译所需组件的Makefile,但是实际使用中,可能会出错,所以我选择逐项安装。 Renode的安装在之前的文章里面已经介绍过,在本Demo中可以直接使用,安装方法见之前的博客:初识Renode_牧羊女-CSDN博客 1.2 RISC-V toolchain安装要想在x86平台上编译RISC-V的binaries,首先需要安装交叉编译工具。针对该Demo的需要,我们只需要安装riscv32-unknown-elf-gcc套件即可,之前的文章我们也介绍了riscv32-unknown-elf-gcc的编译安装过程:编译riscv32-unknown-elf-gcc_牧羊女-CSDN博客 2. 硬件组成和软件代码该Demo非常简单,堪称嵌入式界的“Hello World”,功能是让一个虚拟LED闪烁。该Demo使用的硬件及软件代码见下面描述。 2.1?硬件组成Demo使用的硬件组成非常简单,包括一块很小的memory、一个RISC-V CPU、一个GPIO以及两个LED,如下面平台描述文件(vexriscv.repl)所示:
关于平台描述文件的介绍,见前面的文章:?Renode学习:平台描述文件REPL_牧羊女-CSDN博客 2.2?源代码该Demo的软件代码(baremetal.s)为汇编语言,但也很简单,按照我有限的理解加了一点注释,如下:
3. 编译、运行工程的运行需要三个步骤,分别是: (1) 从源码baremetal.s中编译出目标二进制文件; (2) 启动由以上REPL平台描述文件定义的硬件模拟环境; (3) 将步骤(1)中编译出的elf文件加载到平台模拟器的内存中。 3.1 编译目标文件目标文件的编译命令行如下:
其中,
执行完以上编译命令后,会生成目标ELF文件image: 3.2 仿真脚本Renode有一个非常方便的地方,就是可以通过一个RESC脚本将所有的步骤串联起来执行,而无需用户在命令行窗口中逐个输入命令,这就大大简化了我们的仿真操作步骤。 工程的仿真脚本(vexriscv.resc)如下:
关于脚本中命令的介绍,见之前的文章:Renode学习:Working with machines_牧羊女-CSDN博客? 3.3 运行代码仓库中已经将运行命令也集成到了Makefile文件中,所以我们只需要执行make launch即可使demo运行起来。 Makefile文件如下:
运行界面如下: |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:33:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |