RISC-V技术论坛
直播中

jf_1137202360

8年用户 1371经验值
擅长:嵌入式技术
私信 关注
[经验]

【微五科技CF3310开发板试用体验】使用仿真器跟踪程序执行过程

按照https://bbs.elecfans.com/jishu_2284686_1_1.html搭建好开发环境后,我们可以借助仿真器方便的跟踪程序的执行过程。

程序入口
从仿真配置可以看到在启动代码_start处会断点停住
图片1.png
图片2.png
点击Debug进入仿真环境
点击单步
图片3.png
可以看到停在了/CCM3310S-L_FW/src/base/core/riscv/boot.S
_start即程序的入口,可以看到该段代码是放在        .section .init,"ax",@progbits
.init段的
图片4.png
从链接脚本可以看到.init段是放在 ORIGIN = 0x20400000
图片5.png
从如下过程可以看到链接脚本的配置
图片6.png
图片7.png
栈设置
继续单步可以看到
图片8.png
即设置栈指针
从链接脚本可以看到对应
  .stack ORIGIN(ram) + LENGTH(ram) - __stack_size :
  {
    PROVIDE( _heap_end = . );
    . = __stack_size;
    PROVIDE( _sp = . );
  } >
DATA初始化
继续单步可以看到
图片9.png
和链接脚本对应
图片10.png
BSS初始化
图片11.png
和链接脚本对应
图片12.png
进入main
图片13.png
HAL初始化
进入时钟等相关初始化
图片14.png
图片15.png
APP
在如下位置双击打断点,F5全速运行,可以看到LED的亮灭
总结
借助仿真器可以方便的跟踪程序的执行过程与状态,是调试不可缺少的过程。

  • 图片16.png

更多回帖

发帖
×
20
完善资料,
赚取积分