keil Debug 仿真调试,注意事项

环境:

  • win10 64
  • MDK514 & MDK527
  • Stlink+stm32f429IGT6

问题点:

有时debug仿真调试不能成功。感觉很奇怪,把遇到现象总结了一下。

总结:

  1. keil工程要经常clear和Rebuild

  2. keil工程的路径,不能太长,不能太深。路径的字符长度,能短就短。

  3. keil工程的路径不能有汉字,debug时会闪退。

  4. 如果debug不能成功,开发板重新上电,现象在一段汇编代码中跑来跑去,就是不进C语言的main函数。

  5. 如果debug不能成功,keil环境的PC电脑,进行重启。

  6. 听说STM32只能打不大于6个断点。第4的现象可能是断点太多的原因。所以重启stm32单片机,清一下断点。(猜测)可能是单片机中程序的断点不能与keil的断点同步。

  7. keil版本问题。有可能低版本的debug功能与stlink驱动不匹配。MDK5.14更新到MDK5.27感觉debug很顺畅。

  8. 描述一个现象:Debug仿真调试时,keil5.27不可更换工程,不可使用STM32CubeMX重新生成工程,否则出现debug不能进入Main函数现象,很奇怪,没有搞清楚这是为什么。更换工程后重启PC电脑,再次Debug时,在keil中可以重新进入Main函数。

  9. 参照:https://bbs.csdn.net/topics/392278889
    可以正常STOP,可以正常run, 但STOP无法在.C文件中定位
    可能flash中的代码和afx中的不一样, 有可能是加密导致的, 配置里勾掉加密,erase flash, 然后重新DEBUG

    参考论坛的内容,打开了 以下几项:
    进到设置窗口:options for Target"XXXX" -->Debug---->Use “stlink debugger” Settings ->
    第一项:"Contex-M Target Driver Setup"窗口->-debug—>Download options ---->两项都勾上。
    第二项:"Contex-M Target Driver Setup"窗口->Trace–> CoreClock要设对了,认为对应SysClk、Trace Enable使能上。
    第三项:"Contex-M Target Driver Setup"窗口->FlashDownload --> Download Function选择Erase Sectors, 复选Program、Verify、Reset and Run 全勾上。

  10. 最后结论:上边写的都是参考。最终定论开发板有问题,也不能太相信开发板,量了一下boot0脚上的电压,竟然有3V,不知道为什么受USB转232的干扰,插着USB数据线,开机BOOT0脚自带3V电。可恶的3V电。

补充问题1:

  1. ST-link Utility 出现 Can not connect to target 窗口,如果你开发的软件感觉没有问题、STLINK连线正常、 ST-link Utility工具软件一通设置无效、并且出现这个问题,让你很奇怪 。可以都考虑,换一个新的ST-LINK烧写器,试一下。
  2. 旧STLINK烧写器使用情况:BOOT0拉高,可以烧写。正常模式,不可以debug仿真,不可烧写。
  3. 新STLINK烧写器使用情况:正常模式下,可以烧写,可以debug仿真。

结束。

欢迎追加。

你可能感兴趣的:(开发环境,单片机,STM32,stm32)