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

描述

本文来源电子发烧友社区,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2284688_1_1.html

按照
https://bbs.elecfans.com/jishu_2284686_1_1.html搭建好开发环境后,我们可以借助仿真器方便的跟踪程序的执行过程。
 
程序入口
 
从仿真配置可以看到在启动代码_start处会断点停住
开发板试用
 
开发板试用
 
 
 
点击Debug进入仿真环境
点击单步
开发板试用
 
 
可以看到停在了/CCM3310S-L_FW/src/base/core/riscv/boot.S
_start即程序的入口,可以看到该段代码是放在        .section .init,"ax",@progbits
.init段的
开发板试用
 
 
从链接脚本可以看到.init段是放在 ORIGIN = 0x20400000
开发板试用
 
 
从如下过程可以看到链接脚本的配置
开发板试用
 
开发板试用
 
 
 
栈设置
继续单步可以看到
开发板试用
 
即设置栈指针
从链接脚本可以看到对应
  .stack ORIGIN(ram) + LENGTH(ram) - __stack_size :
  {
    PROVIDE( _heap_end = . );
    . = __stack_size;
    PROVIDE( _sp = . );
  } >
 
DATA初始化
继续单步可以看到
开发板试用
 
和链接脚本对应
 
开发板试用
 
 
BSS初始化
开发板试用

 
和链接脚本对应
开发板试用
 
 
进入main
 
开发板试用
 
 
HAL初始化
进入时钟等相关初始化
 
开发板试用
 
开发板试用
 
 
APP
在如下位置双击打断点,F5全速运行,可以看到LED的亮灭
 
 
总结
借助仿真器可以方便的跟踪程序的执行过程与状态,是调试不可缺少的过程。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分