keil MDK使用过程中遇到的问题及解决办法(更新)

keil MDK使用过程中遇到的问题及解决办法

1. 程序卡死在 BX R0(汇编卡死在 BEAB BKPT 0xAB)处

  • 原因:程序中可能使用了printf()函数而没有勾选使用微库(或未定义printf函数就直接使用了)
  • 解决方法:如果需要微库的方式实现的printf()函数,把微库勾选上
    若不需要printf()函数,将程序中的printf()函数清除。

2. 程序卡死在B.处

  • 原因:程序中有中断没有处理,或者在C/C++混合编程时,中断函数写在.cpp文件中了
  • 解决方法:查找是否有中断函数没有处理,将其中断服务函数加上
    若中断函数写在.cpp文件中,中断函数两端加extern“C”的声明,如下:
#ifdef __cplusplus
extern "C" {
#endif
/* 此处写中断服务函数*/
#ifdef __cplusplus
}
#endif

3.keil屏蔽某一特定的警告

  • 在工程选项中C/C++模块的 Misc Controls 中增加: --diag_suppress=num(num为警告部分#号后面的数字)

4.在调试过程中变量不时时更新

勾选上view菜单栏下的最后一项:periodic window update

发布了48 篇原创文章 · 获赞 78 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/xiaoyuanwuhui/article/details/89134467