离线
TA的每日心情 | 拍拍 2022-6-27 11:09 |
---|
签到天数: 25 天 [LV.4]
|
有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 sky 于 2021-5-8 16:34 编辑
最近发布的202102版本的Nuclei Studio IDE增加了QEMU仿真器,可支持RV-STAR开发板的仿真,本教程旨在介绍如何使用该仿真环境进行RISC-V嵌入式开发。
- 系统环境 Windows 10-64bit
- 软件平台 Nuclei Studio IDE 202102版
一、Nuclei Studio的下载和安装
在芯来科技官网文档与工具页面可以下载 Nuclei Studio IDE软件,其链接如下:
https://www.nucleisys.com/download.php
根据自己的操作系统下载对应的文件即可,IDE不需要安装,下载后直接解压缩即可使用;
二、启动Nuclei Studio
在 Nuclei Studio 解压缩的目录下双击 NucleiStudio.exe 即可启动 IDE;
第一次启动 Nuclei Studio 将会弹出对话框要求设置 Workspace 目录路径,该目录将用于存放后续创建的项目工程文件。设置好 Workspace 路径,再单击 “Launch” 启动 Nuclei Studio;
启动后页面如下图,推荐打开 Launch Bar 功能,方便快速编译和调试。打开菜单栏 “Window -> Preferences”,搜索 “bar”,勾选第一个选项 “Enable the Launch Bar”即可启用 Launch Bar 功能。
三、新建模板helloworld工程
在菜单栏中,选择 “File-> New -> C/C++ Project” 开始新建工程,在弹窗中双击选择 “C Managed Build” ;
新的页面中 “Project name” 填写 “helloworld” , “Project type” 选择 “Nuclei SDK Project For GD32VF103 SoC” 和 “RISC-V Cross GCC” ,如下图,点击 “Next” 。新的页面不用修改,直接点击 “Next” 即可;
我们在选择 Board 时,请记得一定要选 gd32vf103v_rvstar 这块板子噢!
在选择模板工程页面修改“Project Example”选项为“baremetal_helloworld”。
后续页面不需要修改,点击“Next”直到最后一页,点击“Finish”完成新建模板helloworld工程。
最终IDE界面显示如下:
四、调试helloworld
在Launch Bar可以看到有两个配置如下图
我们看一下QEMU的配置,这些已经配置好了,如果不太了解的同学,这里基本上可以不用进行任何设置。
然后选中 debug 模式并启动 debug
编译器对代码进行编译后,会跳出 Switch 框,选 Switch 后进入调试模式
调试模式的界面如下
IDE提供了丰富的调试工具,具体的就不一一介绍了,大家可以去尝试。
虽然是在QEMU仿真环境下,但应用的还是gdb调试工具,所以也是支持gdb命令行调试的,选中Debugger Console,就可以输入gdb命令了。
我们可以查看一下仿真环境下的寄存器。结果如下图,更多命令使用大家可以自行查阅gdb的使用手册。
当然,也可以在图形界面中查看寄存器。
在工具栏选 :
Window ->Show View ->Registers
在弹出的 Registers 框中,就可以非常方便的查看寄存器信息。我们可以在调试过程中查看相关信息的变化。
五、运行helloworld
在调试模式下代码无bug,我们可以直接运行代码查看运行结果,在run程序前,一定要将之前启动的QEMU结束掉,不管是openOCD还是QEMU的进程都是排它性,所以运行或者调试结束后,一定要记得点关闭按钮。不然后报错如下图:
结束QEMU依次点下面三个按钮,确保进程已结束。
结束调试后开始运行前,建议clean一下工程,在工程名上左键->clean Project,IDE就会帮您清除掉编译生成的编译文件。
直接点运行,就可以了看到IDE开始编译代码并运行,如果代码正确,就会输出代码的结果。
在没有连接板子的情况下,我们成功运行了helloworld程序。
至此,在Nuclei Studio中基于QEMU进行嵌入式代码开发和调试的介绍就结束了。
完
|
上一篇: 教你玩转[07]_RVSTAR—汇编程序篇下一篇: 教你玩转[08]_RVSTAR—内联汇编篇
|