关于MDK调试stm32f072vbt6(HAL库)内部flash在擦除仿真时,卡死在擦除函数,同时弹出“Cannot access target.shutting down debug sessi

     笔者在给客户调试代码时,发现比较奇怪的问题,特此记录下来。
        客户问题:
stm32f072vbt6内部flash在擦除仿真时,卡死在擦除函数,同时弹出“Cannot access target.shutting down debug session”,同时退出仿真。
                                       
         问题解决:
                1、通过去现场,客户使用的是Keil5 + HAL库开发环境,查看代码,发现客户在if语句后多添加分号,导致程序直接进入死循环
            2、去掉分号,发现编译器在仿真的时候,弹出 “Cannot access target.shutting down debug session”,同时退出仿真。
                3、跟进代码,发现在进入 HAL_FLASHEx_Erase(&EraseInitStruct, &PageError)函数里面,出现异常,反复调试客户代码,均未有代码错误
           4、在客户产品上,烧录官方例程,发现同样出现该问题。
            5、查看客户硬件问题,未发现PA14引脚是否被占用,使用IAR烧录官方代码,能成功调试。
         6、经过反复试验,发现 这问题跟 Keil编译器 有关,在 HAL_FLASHEx_Erase(&EraseInitStruct, &PageError)函数里面,增加1ms延时,能解决此问题。
关于MDK调试stm32f072vbt6(HAL库)内部flash在擦除仿真时,卡死在擦除函数,同时弹出“Cannot access target.shutting down debug sessi_第1张图片
至于为什么,笔者就不太清楚,但是这样确实解决了问题,望了解此问题大神,留下宝贵的解决,与大家共勉!

你可能感兴趣的:(STM32)