STM32G030烧录后使用keil5进入dubug模式,不能跳转到main函数正常运行

news/2024/12/2 15:07:13/

关于标题提示问题,找了好久才找到问题在哪里,分享给大家,防止后来人花费大量时间查找这个问题

STM32G系列是ST公司这两年新推的芯片,相对于STM32F系列有了很多地方的更改。个人感觉这些更改有些地方比较好使,比如增加了DMAMUX外设,DMA通道不在和各个外设对应死,很方便分配通道和外设的对应关系;但是有些地方修改的就不怎么合理了,比如管脚数目较少的芯片,直接将boot的启动区域修改为了由内部的选项字节位来进行决定,而不再是由外部的boot0管脚电平状态决定,当然这个可以修改,但是凭空多了很多麻烦事。
在G系列的芯片上多了一个Empty Check位,用于检测芯片中是否有程序。当检测到程序中没有程序的时候,可以直接通过串口烧录程序,这样省去了拉高boot0引脚的操作,省去了生产时候的麻烦。但是在进行KEIL5调试的时候,坏就坏在了这里。直接进入debug,会被认为是在串口烧录模式中,所以始终是运行不到主程序中的。如图中所示:运行的地址为0x1FFF19A4,查询用户手册,该处地址对应的区域为system memory区域,说明程序是运行在官方固化的boot loader程序中。
KEIL5中调试地址显示
官方手册中对应地址区域

解决办法:重启上电就行了,这个问题只针对第一次烧录的新芯片,或者是进行过全擦的新品


http://www.ppmy.cn/news/307052.html

相关文章

STM32G473晶振不起震

最近遇到STM32G4晶振两端无波形,以为没启震,最终发现是示波器探头的问题,其探头实际电容为200pf,MCU晶振管脚驱不动。实际上有一个MCO功能,可以将晶振的波形通过此功能输出到一个管脚上查看。刚好顺带了解晶振电路的原…

STM32G0在使用BootLoader后应用程序不能正常跳转的解决办法

前提条件:app独自运行没有问题,初始化或者长时间运行都不会跑飞;但是加入bootloader后主程序出现异常。 程序框架: 0x08000000 ~ 0x08003000 :bootloader占用; 0x08003000 ~ 最大: app占用&…

STM32G431之点灯和按键配置

STM32G431之点灯和按键配置 1.硬件接口 STM32G431开发板有一个用户按钮和LED灯   根据原理图,LD2和PA5相连,想要点亮LED则PA5应该为高电平。   用户按键B1和PC13相连,按下为高电平; 2.软件设计 2.1 芯片型号选择 本示例所…

【初识NUCLEO-STM32G0B1RE】

初识NUCLEO-STM32G0B1RE 最近入手了一块NUCLE-G0B1RE ST的开发版,看了一下相关开发板资料网上好像也挺少的只有官网有比较完整的数据手册和原理图这些,值得开心的一点的STM32G0的使用和STM32F1相似,在进行编程时也有一种熟悉感。同样也会一步…

计算机能运行超过内存的程序么,如果电脑使用内存超过32G那是种怎样的体验?...

这里首先说明一点,电脑的内存主要是搭配CPU才能完成各类数据的运算,程序也都是通过CPU来分配和处理的,所有电脑的内存不是越大就越好。 CPU相当于计算机的“大脑”,而内存相当于大脑的“办公桌”。 CPU需要处理大量的计算数据。它…

【STM32G0-HAL库串口控制】

STM32G0-HAL库串口控制 今天分享的是基于HAL库进行串口的配置输出以及重定位实现,使用的开发板是STM32G0B1RE,和F1系列的芯片使用方法是一模一样的。 一、打开CubeMX进行工程配置 这里使用的是串口2 具体的操作步骤就不重复了,就介绍一些关键…

STM32G431——按键的三行代码(长按、短按、单击、双击)

按键的三行代码(长按、短按、单击、双击) 按键的三行代码按键的长按、短按按键的单击、双击 按键的三行代码 key_value KEY_Scan(); //读取按键的键值 key_up ~key_value & (key_old ^ key_value); //按键的上升沿检测 只在按键抬起的瞬间有效 其他时刻都为零…

分析STM32G0 SPI外设不能触发RXNE接收标志的原因

今天准备移植STM32F030R8T6的程序到STM32G030C8T6上,程序中用到了硬件SPI外设,因为STM32G0用的HALLL库而不是不是标准库,所以我用STM32Cube MX生成了SPI的LL库代码,但是使能SPI后发现硬件怎么都不能触发RXNE接收标志,生…