楼主

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
管理员RoboMaster赛务
2020-4-9 17:39:34 只看该作者

马上注册,玩转Robomaster!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
跳转到指定楼层
推荐

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
梯队队员Elecheart
2020-4-10 20:14:17 只看该作者
我们可以通过查看系统控制块SCB中相关错误寄存器来判断,在Keil的调试模式中打开View -> System Viewer -> Core Peripherals -> Fault Reports查看。比如对指向超出RAM区域的指针进行操作,发现进入HardFault_Handler,这时发现总线错误状态寄存器BRSR中的BFARVALID位被置位,表示访问了一个无效的总线地址。在CM4的SCB中还有像CFSR、HFSR、BFAR、MMFAR这样的错误寄存器。作为扩展,大家可以阅读内核用户手册《Cortex-M4 Devices Generic User Guide》或《Cortex-M3 Devices Generic User Guide》中4.3 System control block章节。
推荐

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
梯队队员Elecheart
2020-4-10 20:58:50 只看该作者
6.有没有什么办法可以通过直接改变仿真窗口watch里面的数值,然后就直接把程序里面的对应变量的数值也发生相应改变呢?我用的ST-link仿真的,每次发现系数不得,都得程重新退出仿真 然后下载程序 然后继续仿真 感觉这样很麻烦

答:程序是写在Flash里面的,虽然使用调试器通过memory窗口可以直接修改Flash中的指令,但是这样操作需要对汇编有很深的理解才行。建议你将系数定义在全局变量中,利用watch一次调好参,就不用反复下程序了。

或者你可以使用IAP或者E2PROM实现参数修改后断电保存。
推荐

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
梯队队员Elecheart
2020-4-10 20:22:13 只看该作者
除了Keil以外也可以使用其他调试工具,比如OpenOCD+GDB,但是这个配置比较复杂,对新手可能并不友好。我在这里给使用J-Link调试器的同学推荐一款调试软件Ozone,这款软件是J-Link出品公司的官方免费软件。可以调试gcc和armcc编译出来的固件。armcc和gcc分别编译出axf和elf文件,包含了调试信息。在Ozone中载入这些文件就可以进行源码级调试,而且功能不弱于Keil。其中图标数据的显示比J-Scope更易于操作和直观,更适合于调试和整定参数。
87#

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
英雄Lxctdjy
2020-4-23 22:05:13 只看该作者
受益匪浅
回复

使用道具 举报

86#

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
正式队员1240117300
2020-4-11 12:22:27 只看该作者
厉害厉害
回复

使用道具 举报

85#

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
梯队队员zbluojiangying
2020-4-10 22:28:47 只看该作者
Elecheart 发表于 2020-4-10 21:14
9.对于调参软件,像J-scope这种,有什么办法可以在软件界面直接调参吗?

J-Scope这个软件功能太少,建议 ...

好的,谢谢
84#

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
梯队队员Elecheart
2020-4-10 21:14:28 只看该作者
zbluojiangying 发表于 2020-4-10 21:09
对于调参软件,像J-scope这种,有什么办法可以在软件界面直接调参吗?

9.对于调参软件,像J-scope这种,有什么办法可以在软件界面直接调参吗?

J-Scope这个软件功能太少,建议使用Ozone,这两个都是Segger公司出品的免费软件。Ozone使用Timeline + DataSampling可以像J-Scope一样查看曲线。而且附带类似于Keil的全套调试功能,可以代码断点,变量Watch。
83#

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
管理员RoboMaster赛务
 楼主| 2020-4-10 21:11:54 只看该作者
那今天的圆桌就到这里结束啦~ 刚刚最后这位同学问的问题,我们稍后连回答一起整理在原帖中~
82#

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
梯队队员zbluojiangying
2020-4-10 21:09:21 只看该作者
对于调参软件,像J-scope这种,有什么办法可以在软件界面直接调参吗?
81#

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
梯队队员Elecheart
2020-4-10 21:09:12 只看该作者
8.小萌新能弱弱的问一下 帮助手册是在哪下载的吗?
答:如果你使用Keil且安装了对应芯片的DFP包,在Keil内直接可以找到手册,在软件界面上方选项栏中选择Help->Open Books Windows,打开的页面中包含Keil的使用手册,芯片数据手册和用户手册等等,非常详细。除此以外手册可以直接上对应公司的网站下载,比如STM32的手册可以在ST公司的官方网站上下载,关于CM内核的手册可以在ARM公司官方网站上下载。
80#

[官方动态] 【RM2020 圆桌】第七期 嵌入式调试技巧分享

[复制链接]
梯队队员Elecheart
2020-4-10 21:03:51 只看该作者
7.问一下cube和hal会不会存在问题 开始学时学的标准库?网上有人说cube生成的代码问题很多而且代码构架已经固定了 一直在用标准库。
答:我建议使用HAL或者LL库,ST公司已经对标准库停止维护了,新出的芯片也不再有标准库的支持。对比几年前,现在HAL和LL已经很完善了,而且HAL库这种硬件抽象层的思想是符合现在嵌入式设备的发展趋势的,使用HAL库+CubeMX比标准库开发更快更容易上手,追求性能可以使用LL库。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表