自制了一个调试器,该如何确定这个调试器是否正常工作呢?官方给了一个调试工程,专门用于测试调试器是否正常(所有 mdk 支持的调试器都可以使用该工程测试)。
为了测试 103 的芯片,我们需要稍微修改一下工程(原来的工程不适合)。
工程路径如下(这里的 5.5.1 根据实际安装版本找):
c:keil_v5armpackarmcmsis5.5.1cmsisdapfirmwarevalidationmdk5
首先,我们先复制两个工程文件出来,因为默认情况下为只读,所以需要设置为可读写:
我们设置 validasion 两个文件为可读写。
打开工程,出现错误,直接取消即可:
因为是测试 cmsis-dap 调试器(其它调试器类似),所以需要设置一些调试配置。
1、首先修改地址为 0x08000000,因为我们的目标板是 103 的。
2、选择调试器,swj 勾选上,连接被调试板子,此时应该能看到右边的 id。
如果没有连接目标板子,就会出现错误,但是调试器是可以正常识别的:
3、下载配置:
完成之后,我们就可以关闭工程了。
现在我们有两种方式进行测试:
手动法:
重新打开工程,编译、下载、调试三部曲之后,在调试界面下会自动完成测试工作,测试完成后会自动退出调试模式,测试结果存放在工程目录下 test_results :
通过这种方式,鱼鹰得到结果都是正常的:
自动法:
这种方法使用脚本自动完成测试功能(不需要打开工程)。里面有一个脚本 test.bat。正常情况下,直接在命令行下执行就可得到结果,但可能安装路径不对时,会出现如下错误:
此时可以在执行脚本时手动指定路径,或者修改脚本中的路径:
test.bat c:keil_v5uv4uv4.exe
然后可以得到下面的执行结果。
可以看出,这种执行的结果最后一项是有问题的,目前暂不清楚为啥两者结果不一致。
以上就是鱼鹰想为大家分享的内容,帮助大家测试一个制作好的调试器。
那么原理是什么呢?
其实就是利用了 mdk 调试器中的 test.ini 文件进行调试命令交互,如设置断点、读写内存等操作,并对结果进行验证,通过学习它,能更深刻的理解调试过程,建议大家学习。
最后分享一些相关的链接供大家学习:
驱动安装
https://www.armbbs.cn/forum.php?mod=viewthread&tid=101747&extra=page%3d2%26filter%3dtypeid%26typeid%3d312
https://www.armbbs.cn/forum.php?mod=viewthread&tid=101748&extra=page%3d1%26filter%3dtypeid%26typeid%3d312
源码 pack(5.8.0 ,其它版本亦可)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=107629&extra=page%3d1%26filter%3dtypeid%26typeid%3d312
测试:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=99606&extra=page%3d2%26filter%3dtypeid%26typeid%3d312
三星Galaxy Buds Pro正式上架京东开售
电源定序的重要性及产品性能分析
够了!挪威也考虑将华为排除其5G网络建设之外
猝发式红外近距离测试系统发射部分电路设计
Fnatic联手Sansar推出社交VR平台,让粉丝们可以在VR平台上观看比赛直播
如何确定这个调试器是否正常工作呢?
从IC设计到芯片封测 紫光为何买个不停
RISCV操作常见问题之update1解析
芯片解密不成功的主要原因
华为Nova 4配置曝光 依旧搭载麒麟970处理器
芯闻3分钟:探秘临港特斯拉:500亿“速成”式超级工厂
介绍一款无刷直流电机专用SoC Flash MCU BD66FM8345B
【汽车大PK】天籁/雅阁/凯美瑞
有方科技携手行业伙伴共同致力于打造现代数字城市新生态
AWorks开发者越来越多,却只有极少数了解其精髓
如何建立一个强大的数据科学团队?
小米澎湃S2曝光:工艺大跃进
自动驾驶的一二三四五六
电动机反接制动控制线路的原理图
交换机和路由器的区别在哪里