注册 登录
查看: 1158|回复: 5

[山外调试工具] 【调试技巧】 程序卡死在默认中断(延时函数),怎么办?

[复制链接]
发表于 2019-5-27 12:59:18 | 显示全部楼层 |阅读模式
经常很多同学遇到程序卡死,就没办法。这部分知识,其实我们在K60视频的IAR使用技巧里,说到如何解决的。不过,我们发现很多同学不喜欢看资料,一来就拿师兄的可跑程序来修改,遇到卡死情况就束手无策。

首先,程序卡死,需要看调用栈。

IAR界面里,进入调试界面,view —— call stack


等程序卡死了,看调用栈的信息。这里是跑入默认中断:


双击 default_isr ,这个是默认中断函数,双击后,代码会切换到这函数:


大家可以看到,我们的默认中断函数,已经把调试信息,通过串口发送出去。
由于死循环里,有延时函数,换句话说,延时函数占用的时间比其他函数还要多很多,很多同学总是误以为卡死在延时函数,实际上就是进入默认中断,或者断言失败。

可以考虑接上串口,有报错误信息的。不会用串口的同学,看以下帖子:
  1. 山外K60 串口输出问题,printf输出问题 - 智能车资料区 - 山外论坛 http://vcan123.com/forum.php?mod=viewthread&tid=22&ctid=1

  2. 串口通信异常,一般这个帖子可以解决。

  3. 如果对串口接线不熟悉,可看这帖子:
  4. 【山外串口】串口TTL和RS232解析 - 智能车资料区 - 山外论坛 http://vcan123.com/forum.php?mod=viewthread&tid=6482&ctid=15




不过很多同学不会用串口,我这里在讲一下手动查找的方法:把 vtr 添加到 watch ,看看值是多少


此值为0x35,即对应的10进制数据为53

查找代码:Chip\inc\common.h 里面的 VECTORn_t 枚举  (不要把 IRQn_t 搞混, VECTORn 和 IRQn不一样的!!!看后缀)


上图,是UART3_RX_TX_VECTORn中断。

结论: UART3 的中断入口函数,并没配置好。(可能没配置,也可能触发中断前,还没执行配置函数,即函数顺序搞反了)

中断函数入口,需要调用set_vector_handler函数来配置,看下图是串口例程的模版:


如果你确认已经调用了这函数配置入口,但依旧出现这情况,那就需要考虑函数的执行顺序问题,把这部分配置,放在main函数的开头。



如上图,先执行set_vector_handler函数,这样就不会搞错了。




如果是 NMI中断,如何处理?
把PTA4,接髙电平,确保不会被拉低

如果是 Hard中断,如何处理?
看看进入中断前,执行的是哪个函数,哪个语句,导致的。
这个中断产生的原因非常多。例如:
  1. 除法运算,被除数为0;
  2. 指针指向不可读写的区域;
  3. 调用没初始化的模块;
  4. 数组越界,堆栈被破坏;
  5. 。。。


根据最后执行的语句,判断问题。



断言失败,也是会进入断言失败的死循环。方法和上述的也是类似,只需要找到失败的地方,看参数,就可以判断问题。


例如gpio,配置为输出,但调用输入函数,那就会断言失败。

例如FTM,占空比超过100%

这些需要自行根据自己最后执行的语句,去思考,判断问题。







本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2019-5-27 20:33:18 | 显示全部楼层
谢谢 山外哥 是我资料没看太仔细
回复 支持 反对

使用道具 举报

发表于 2019-5-28 14:21:56 | 显示全部楼层
谢谢分享,有用
回复 支持 反对

使用道具 举报

发表于 2019-6-28 23:18:29 | 显示全部楼层
答到病根上了
回复 支持 反对

使用道具 举报

发表于 2019-6-30 01:22:02 | 显示全部楼层
本帖最后由 杀杀杀是 于 2019-6-30 01:31 编辑

山外哥,这个问题我们最近老是遇到,有时候出现在烧程序的时候,程序烧不进去,卡死在systick延时函数里面,但有时候就是程序一开始没事,走着走着就会卡死 求助,困扰时间很久了,tou

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2019-6-30 16:39:15 | 显示全部楼层

山外哥,这个问题我们最近老是遇到,有时候出现在烧程序的时候,程序烧不进去,卡死在systick延时函数里面,但有时候就是程序一开始没事,走着走着就会卡死 求助,困扰时间很久了,tou

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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