原创 RISC-V MCU开发(十二):命令行操作

2021-10-19 10:11 383 2 2 分类: MCU/ 嵌入式 文集: RISC-V MCU开发
    虑到习惯命令行操作的用户群体,MounRiver® Studio(MRS)除了使用图形化UI进行用户交互外,也提供了脱离界面的命令行操作说明,用于对编译后的工程进行烧录和调试。如果是Linux平台用户,您也可以在MRS官网的下载页面下载工具链和OpenOCD压缩包,根据说明引导进行实践。本文以Windows平台软件环境MRS1.51进行介绍。

 

【命令行入口】MRS提供了已包含工具路径的命令行。点击工具栏图标 ,或者在Project Explorer右键弹出菜单中选择Open MRS Console,即可打开命令行,并自动指定将当前路径为对应的目录路径(如果选择的是文件,则当前路径为文件所在的目录)。若当前未选择资源,命令行的当前路径即为工作空间目录。

 

【编译】

由于脱离了界面的UI配置,对于未知的工程结构。用户需要:

1.       手动为每个源文件目录编写Makefile规则,指定源文件集合、依赖、汇编/编译工具exe、编译参数(例如编译头索引目录)。

2.       切换到一个新目录,作为输出目录,用户手动为编写Makefile规则,指定链接各个源的中间文件、链接工具exe、链接参数(例如ld文件)。以上步骤了解Makefile的语法。

3.       命令行路径切换到步骤2的输出目录下,执行make进行编译,如果编译工程成功将会最终输出elf文件。执行make clean可进行输出文件的清理。

【烧写,以wchrisc-v内核工程为例】

擦除 OPENOCD_PATH –f CFG_PATH –c init –c halt -c "flash erase_sector wch-riscv 0 last" –c exit

编程 OPENOCD_PATH –f CFG_PATH –c init –c halt -c "program TARGET_PATH ADDRESS" –c exit

校验 OPENOCD_PATH –f CFG_PATH –c init –c halt –c "verify_image TARGET_PATH " -c exit

复位 OPENOCD_PATH –f CFG_PATH –c init -c reset -c exit

 

【调试】

1.       创建openocd进程

格式:OPENOCD_PATH  -f  CFG_PATH

提倡使用拖拽的方式,提升效率,也可避免输入路径出错。

执行命令,openocd会获取开发板状态,并启动协议server端。随后openocd进程挂起,等待连接。命令行中显示等待连接的端口号,此处gdb通信的端口默认为3333

 

2.       开启第二个MRS Console,启动gdb client

格式:  GDB_PATH  [FILE_PATH]  [ARGS]

无参数形式riscv-none-embed-gdb为默认的gdb cli命令。

参数形式riscv-none-embed-gdb xxxx.elf -interpreter mi  在支持cli基础上,同时支持gdb mi命令。MRS调试打开gdb trace之后,Console输出的命令就是gdb mi命令。可以复制到此模式下逐个运行。

 

若指定了FILE_PATH,如命令riscv-none-embed-gdb xxxx.elf ,则后续不需要调用file命令指定调试文件;若未指定FILE_PATH,则后续需要file命令指定调试文件。

 

3.       gdb连接设置

设置连接配置:

set mem inaccessible-by-default off

set remotetimeout unlimited

rv内核) set architecture riscv:rv32

 

4.       连接server端口

target remote ip:port:连接端口

 

5.       调试的其他命令

load :烧写, 执行后将pc置为程序第一条指令处;

info register + 寄存器名: 查看寄存器;

info breakpoint:查看所有断点;

break +行号/方法名/符号名:设置断点

continue:继续跑到下一个断点,如果没有断点则一直运行;

next:调试执行下一步;

step:单步进入;

print:打印变量值;

list:(需要工程目录包含源码, 编译时调试等级-g以上)查看当前代码

 

暂停状态时,可执行查看寄存器、查看当前代码,查看反汇编等操作;

gdb模式下,可输入help all列出所有命令,如搜索、变量打印、查看堆栈等。

作者: EeterRV, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3974602.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
相关推荐阅读
EeterRV 2021-11-24 10:27
RISC-V MCU IDE MRS(MounRiver Studio)开发之:添加标准数学库引用
      在嵌入式开发中,我们经常需要调用一些数学函数,例如pow、acos、asin、sqrt等。这时候我们就需要添加对标准数学库的引用。 以RISC-V ID...
EeterRV 2021-11-23 10:43
RISC-V MCU IDE MRS(MounRiver Studio)开发之:设置工程编码字符集
      字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类繁多,每个字符集包括的字符个数不...
EeterRV 2021-11-22 10:58
RISC-V MCU IDE MRS(MounRiver Studio)开发之 设置调试前不自动编译
      在嵌入式开发过程中,我们有时会遇到这种情形:在一次调试前,我们已经编译过目标代码,此时,如果我们直接点击调试按钮,则IDE的调试器往往会默...
EeterRV 2021-11-18 10:24
RISC-V MCU IDE MRS(MounRiver Studio)开发之:设置Tab键以指定空格数缩进
     在嵌入式开发中,我们常常需要在其他工程师创建的工程上进行二次开发,而每个人IDE中设置的Tab键功能内容可能不同(按下后插入一个制表符或者以指定空格数...
EeterRV 2021-11-17 11:17
RISC-V MCU IDE MRS(MounRiver Studio)开发之:绑定各后缀名文件打开方式
    在嵌入式开发过程中,我们常常会遇到需要在IDE内编辑各种后缀名文件的情况,而可能部分后缀的文件并不是以我们想要的编辑器打开,所以需要我们手动去绑定默认打开方式。以...
EeterRV 2021-11-16 14:15
浅谈RISC-V GCC之:链接脚本学习笔记(二)
上一篇介绍了部分链接脚本知识,这次我们用MRS(MounRiver Studio)中内置的CH57x系列模板工程来具体实践一下: 1 入口     ...
广告
我要评论
0
2
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /3 下一条