2018-03-13keil调试代码时出现CONNOT ASSESS TARGET Shutingdown debug session

stm32F103c8调试时,调用flash擦写函数会导致不能调试,删去擦除函数可调试。
(下面这段是错的,解决办法在末尾,当然你也可以看看眼,bug见多了自然无bug)
暂时的解决办法参考:http://blog.csdn.net/huruyiye_123/article/details/78849288

环境:win10,keil(HAL库)

上面链接里的解决办法:
在HAL_FLASHEx_Erase(&EraseInitStruct, &PageError)函数里面,增加1ms延时,能解决此问题。


图片.png

分析可能的原因是:调试时使用的管脚与程序初始化时的管脚相冲突,所以在添加1ms延时后正常。
注意看下面一段操作:
(现在有1ms延时,能调试)

  1. 去掉擦写函数,延时没有实际效果,所有正常;
  2. 加上擦写函数,延时多少都不行,不能调试;

我可能出现了幻觉!!(╯°口°)╯(┴─┴)
当你走投无路时可以试试延时一下。反正我现在这个就是不能擦写flash( ´_ゝ`)

然后我在keil工程里找*.map文件,打开后找Memory Map of the image发现我的代码从0x08000000写到地址0x08007300而我擦写flash的地址是0x08007000所以这才是原因所在。擦写地址与代码地址重叠导致Can not asess target。

ps:这短短的几分钟大起大落和坐过山车一样,真是代码如戏。

你可能感兴趣的:(2018-03-13keil调试代码时出现CONNOT ASSESS TARGET Shutingdown debug session)