[经验分享] 【博流BL606P音视频开发板】CDK仿真体验

qinyunti   2022-12-23 14:25 楼主

前言

    仿真在嵌入式开发中非常重要,一款芯片和IDE的仿真能力及其使用友好性上非常重要。

很多问题必须要仿真才能高效解决。仿真的断点,变量查看,寄存器查看,栈回溯,条件断点,数据断点,存储查看等等都非常重要。

这一篇我们就体验下CDK的仿真环境。

 

过程

 

进入仿真环境

点击红色的d下载并进入仿真环境

image-20221223142428-1.png  

image-20221223142428-2.png  

 

如果代码没有修改可以直接点击蓝色d进入仿真环境

image-20221223142428-3.png  

 

调试窗口

菜单栏Debug->Debug Views可以显示各窗口

image-20221223142428-4.png  

代码断点

c代码断点

在代码前点击右键->Toggle Breakpoints,打代码断点,然后

点击运行即可运行到断点处

image-20221223142428-5.png  

 

汇编级断点

有时c代码断点并不精确,需要定位到具体那一条指令就打开汇编窗口在汇编代码前单击打断点

image-20221223142428-6.png  

 

单步运行

如下三个按钮分别是单步进入函数,单步不进入函数,跳出函数

image-20221223142428-7.png  

 

内核寄存器

内核寄存器在判断处理器运行状态异常原因时很重要

image-20221223142428-8.png  

 

 

C和汇编对照

C有时并不能看到具体的行为,只有和汇编对照才知道到底执行的是什么指令,在分析编译器优化到这问题时就需要一条条看汇编代码

image-20221223142428-9.png  

 

函数内局部变量

自动显示函数内局部变量还是比较方便的

image-20221223142428-10.png  

 

函数调用栈

可以知道函数的调用路径,分析在什么执行路径下出现问题

image-20221223142428-11.png  

 

内存查看

在协议分析,数据处理等时往往需要查看缓冲区的内容导致是什么,或者查看寄存器的只

image-20221223142428-12.png  

 

Watch全局变量

选中全局变量右键点击 add watch ‘xxx’

就可以实时查看变量的值

image-20221223142428-13.png  

 

总结

总的来说基本的仿真功能都有,但是没有外设寄存器查看,内核外设查看等。

仿真操作也不是很顺畅经常卡死,用户体验有待增强。

image-20221223142428-14.png  

回复评论 (4)

没有外设寄存器查看,内核外设查看调试起来这确实不方便

点赞  2022-12-23 14:46

您好,您这边提到的外设寄存器查看功能是有的;至于您说的内核外设查看,请问表达的是CPU紧耦合模块的外设查看吗?

点赞  2023-3-24 16:44
引用: 平头哥小助手 发表于 2023-3-24 16:44 您好,您这边提到的外设寄存器查看功能是有的;至于您说的内核外设查看,请问表达的是CPU紧耦合模块的外设 ...

是的,比如中断控制器,MT等这些。

点赞  2023-3-24 21:49
引用: qinyunti 发表于 2023-3-24 21:49 是的,比如中断控制器,MT等这些。

您这边提到的这些也是可以配置的,目前只有紧耦合模块的配置暂时还没有,您这边反馈的我们也记录了,感谢~

点赞  2023-3-31 11:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复