原创 RISC-V MCU开发 (七):代码调试

2021-10-9 16:54 1440 12 3 分类: MCU/ 嵌入式 文集: RISC-V MCU开发
    MounRiver® Studio(MRS)配合GD-LinkWCH-LinkJLink等在线调试下载器,可支持GDVFx系列、CH56xCH57xCH58xCH32FxCH32VxRISC-V/ARM内核MCU工程的代码调试功能。本文主要介绍MRS针对RISC-V内核MCU的代码调试操作。

 

【启动调试】以CH32V103C8T6的芯片工程为例来说,首先保证工程可以编译通过,然后点击菜单栏 按钮,开始进入调试模式,正常进入调试模式会停在如图所示的位置,此位置有一个临时断点:

 

 

【更改默认断点位置】当然如果希望工程可以直接停在main函数起始地方,也可以去手动更改此断点的位置,点击调试图标旁的下拉按钮,选择”Debug Configurations”,在弹出的页面中选择Startup选项卡,将set breakpoint at   设置为 main即可。

 

配置完成后点击右下角 Debug,或者保存之后退出配置,点击菜单栏 ,进入调试模式后就会停在刚才设置的位置

 

 

【查看机器码】进入调试之后,可以看到左下角Disassembly窗口,此窗口可以显示PC附近代码的汇编以及地址,也可以在左侧空白处鼠标右键,选择show opcodes,来显示机器码。

 

 

【机器码断点与跳转】双击反汇编窗口左侧空白处也可以设置断点,红框位置处可以填写16进制的地址,用来跳转到想要查看位置的汇编代码。主窗口用来显示代码运行位置,可以在左侧窗体位置处双击来增加或取消断点。

 

 

【软件断点】因为采用的是软件断点,理论上不限制断点个数,但是过多的断点会引起程序仿真变慢。

 

 

【变量查看】右侧Variables窗口会显示当前函数中变量的值。也可以在此窗口修改你想要改变的变量的值,但注意只是修改到Ram,重新上电后该值恢复为实际大小。

 

 

【添加监测变量】Experssions可以自定义添加监测的变量,也同样可以修改,效果和Variables窗口中的一致。

 

【错误中断】下方Registers窗口显示的是RISCV内核的CSR+GPR寄存器,可以用来观测内核状态,有几个寄存器在出现HARDFAULT 错误时可以帮助定位问题,在进入硬件错误中断处理函数时,mepc显示的是出错时的地址,mcause 显示的是原因,mtval 显示的是出错时cpu取到的值,mcause值含义如下图。

 

 

 

【断点窗口】Breakpoints窗口可以显示所有设置的断点位置,可以在此处使能或者删除段断点。


【内存窗口】Memory窗口可以用来查询不同地址的值,例如我们查询0x2000000,点击该窗口下绿色加号 ,在弹出的窗口输入要查询的地址。此处也可更改不同地址内的数据,要注意的是根据芯片手册看此地址是否可以读写。

 

 

 

 

【外设寄存器窗口】Peripherals窗口可以选择要观察的外设寄存器,一同展示的内容除外设寄存器名称外,还有地址以及描述信息。

 

 

 

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

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

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

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

curton 2021-10-10 22:57

学习了
相关推荐阅读
EeterRV 2022-12-06 15:03
RISC-V IDE MRS使用笔记(六):新建文件时使用自定义文件头
MRS新建文件时,用户可以选择创建空白文件,也可以使用预置的自定义文件模板来新建对应格式的文件。同时,用户还可自由配置不同文件模板的详细内容,并支持导入、导出包含模板详细内容的配置文件。 【从模板新...
EeterRV 2022-10-19 10:47
RSIC-V IDE MRS使用笔记(五):调试前代码擦除问题
【代码页擦】在调试IAP+APP的程序时,一般IAP的程序固定后就不需要再去调试了,只需要关注APP程序本身就可以了,但是直接调试APP的时候会默认使用全擦指令,导致IAP程序被擦除。这个时候我们只需...
EeterRV 2022-10-18 10:19
RISC-V IDE MounRive Studio V182更新点速览(二):工作空间切换
MRS作为基于Eclipse平台开发的RISC-V MCU集成开发环境,在保留原有平台工作空间概念的同时,还针对广大非Eclipse用户的嵌入式开发者使用习惯,对其进行了一系列的“本土化”与“自动化改...
EeterRV 2022-10-17 16:50
RISC-V IDE MounRive Studio V182更新点速览(一):目标文件内存分析
近日,RISC-V IDE MRS发布了最新的 V182版本。本文让我们一起来关注MRS最新增加的目标输出文件内存分析功能! 首先是功能入口:主菜单Project->Analysis After Bu...
EeterRV 2021-12-16 15:18
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 解决编译后显示RAM占用率100%的问题
上一篇文章中,我们一同学习了“如何开启编程后打印FLASH以及RAM占用信息”的功能,但是在实际开发中,尽管我们的程序并未使用到全部的RAM空间,但仍存在IDE中该打印信息提示RAM占用达到100%的...
EeterRV 2021-12-15 16:07
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 编译后打印FLASH及RAM使用占比信息
在嵌入式开发中,我们有时需要在编译结束后查看目标芯片FLASH及RAM区使用占比情况,而大部分IDE是默认关闭该功能的,此时我们可以通过以下步骤来手动来开启:   以RISC-V MCU...
EE直播间
更多
我要评论
1
12
关闭 站长推荐上一条 /3 下一条