笔者在给客户调试代码时,发现比较奇怪的问题,特此记录下来。
客户问题:
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. HAL库内部flash及IAP(boot)升级

    1.内部flash的用法 1.闪存模块存储器组织(STM32F407) STM32的闪存模块由:主存储器.系统存储器.OPT区域和选项字节等4部分组成.如下图所示: 1.主储存器(flash):有11 ...

  2. STM32HAL库-内部Flash在指定页读写保护示例

    概述 本篇文章介绍如何使用STM32HAL库,内部Flash在特定页读写保护示例. 硬件:STM32F103CBU6最小系统板 软件:Keil 5.29  + STM32CubeMX5.6.1 一.使 ...

  3. stm32USMART调试组件——HAL库

    目录 USMART概述 USMART配置步骤 USMART函数介绍 USMART系统命令 USMART概述 USMRT是正点原子开发的一种类似linux的shell的调试工具,具体的过程是通过串口发送 ...

  4. 【HAL库】Proteus+VSPD实现仿真stm32虚拟串口

    Proteus+VSPD仿真stm32串口 工具软件准备 Proteus工程 CubeMX工程配置 串口收发程序 虚拟串口仿真 工具软件准备 stm32 CubeMX 用于创建stm32工程,如果不使 ...

  5. hal库开启中断关中断_STM32 HAL库学习系列第9篇---NVIC按键外部中断函数

    原文首发于同名微信公号「Allen5G」,欢迎大家搜索关注! **针对HAL库的中断操作,使用按键实例进行说下,以供参考---------------------------**void HAL_GP ...

  6. 基于HAL库的32工程代码区域意思,及常用函数示例

    1.工程代码区域意思 相信很多初学HAL库,用CubeMx生成的工程后,里面很多注释代码,不懂什么意思,不知道代码为什么就要写在那里.今天我们就来讲讲~ 2.下面是我们HAL库中常用的API(预先定义 ...

  7. STM32G0学习手册——使用SWD接口进行调试 (HAL库)

    STM32G0系列提供了SWD接口调试,所以先要熟悉如何调试,接下来才能把代码烧录到芯片里面去. 首先我们先新建工程,如果不是官方开发板就点"start My project from MC ...

  8. 基于STM32F407 HAL库的Flash编程操作

    flash的初始化,解锁flash和清除一些flash的异常状态标识 uint16_t MEM_If_Init_FS(void) {HAL_FLASH_Unlock(); __HAL_FLASH_CL ...

  9. STM32【H7】理论——综述、HAL库简述

    文章目录 1. STM32H7芯片简介 1.1 STM32H7与STM32F1.F4系列芯片的区别 1.2 硬件框图 1.3 STM32H7各型号对比 1.4 总线框图和时钟 1.5 AXI总线 1. ...

  10. 【嵌入式基础】用C语言编程、寄存器实现LED流水灯程序;stm32CubeMX+Keil使用HAL库点亮流水灯

    本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤.利用C语言编程和寄存器点亮流水灯以及stm32CubeMX+Keil使用HAL库点灯 目录 一.STM3 ...

最新文章

  1. wxpython 日志显示框_wxpython与logging模块结合显示实时日志
  2. dubbo控制中心部署,权重配置,以及管控台中各个配置的简单查看
  3. UIView动画效果
  4. 阿里云java mysql环境_阿里云搭建centos java mysql nginx环境
  5. 成为LINUX系统管理员几点规则
  6. python 函数 类 模块
  7. 硅谷Web 2.0时代即将结束? 实用型公司更受关注
  8. Android vlc 分析视频,VLC-Android 对视频流(RTSP)做翻转、旋转
  9. 对makefile中:单冒号普通规则和::双冒号规则的理解 -转
  10. 王道考研操作系统笔记(第二章)附:王道考研408所有PPT和思维导图
  11. Ubuntu修改hosts文件
  12. Ng Alain分页控件的使用
  13. SRAM and DRAM
  14. sublimit 编辑器扩展_字幕编辑器(Srt Sub Master)
  15. 怎么写一篇优质爆款小红书种草文案?美妆产品为例
  16. Vue强制刷新页面重新加载数据方法
  17. 使用c语言实现三子棋游戏
  18. 《周志明的软件架构课》学习笔记 Day1
  19. [UVM]uvm_mem_mam使用方法
  20. 【解决】控制台报错Uncaught TypeError: Object(...) is not a function at eval (vue-router.esm-bundler.js

热门文章

  1. 47-点分十进制表示法
  2. 【输入法】五笔学习系列教程
  3. Ubuntu安装SSTP
  4. Matlab基础教程—【10】Matlab符号运算
  5. 1024程序节|Android框架之一 BRVAH【BaseRecyclerViewAdapterHelper】使用demo
  6. 盘点电机重要应用的七大领域
  7. 【Maven】maven如何配置本地仓库?
  8. Linux 安装ifconfig命令
  9. Java基础语法总结
  10. java常用框架集合