38#

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

[复制链接]
梯队队员Elecheart
2020-4-10 20:11:06 只看该作者
方法一:
打开 Call Stack Window,选中最顶上的异常处理函数,右键Show Caller Code跳转到异常发生时的代码处。有的时候这种方法可能无法使用,大家可以使用另外一个方法。
37#

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

[复制链接]
梯队队员Elecheart
2020-4-10 20:10:29 只看该作者
这个可以从定位问题发生的位置来入手,当异常发生时,MCU内核会将R0~R3、R12、LR、PC、XPRS寄存器按顺序压入栈,其中LR寄存器为异常发生时将要执行的下一条地址。在Keil的调试界面中,我们可以通过以下两个方法找到它。
36#

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

[复制链接]
管理员RoboMaster赛务
 楼主| 2020-4-10 20:09:46 只看该作者
@Elecheart 那遇到这些问题要怎么解决呢?可以跟大家说一说吗
35#

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

[复制链接]
正式队员黄瓜皇
2020-4-10 20:09:35 只看该作者
请问该怎么排查死机的具体问题呢?
34#

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

[复制链接]
正式队员W4LKURE
2020-4-10 20:09:19 只看该作者
前排吃瓜
回复

使用道具 举报

33#

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

[复制链接]
管理员RoboMaster赛务
 楼主| 2020-4-10 20:09:04 只看该作者
(大家注意嘉宾的ID是Elecheart哦~)
32#

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

[复制链接]
梯队队员Elecheart
2020-4-10 20:08:14 只看该作者
MCU死机基本上都是程序运行中触发了异常中断导致的,比如使用了空指针、野指针、访问越界之类的内存访问错误,或者是使用了未初始化的外设,再或者是非对齐访问等等。具体大家可以参阅《CM3与CM4权威指南》中的12.2 错误的原因 章节。
31#

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

[复制链接]
管理员RoboMaster赛务
 楼主| 2020-4-10 20:07:34 只看该作者
好的,那么第一个问题来了。@Elecheart 大家在调试MCU时一般是否会遇到各种各样的问题,比如单片机运行着死机了,一般是什么原因呢?
30#

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

[复制链接]
梯队队员SR_doee
2020-4-10 20:07:29 只看该作者
大家都用什么环境呢?
29#

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

[复制链接]
正式队员KaNde2019
2020-4-10 20:07:20 只看该作者
围观围观
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

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

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