![shequ.stmicroelectronics.cn](./template/st_v1/static/img/logo2.png)
STM32 g0系列双BANK芯片,程序运行在BANK1时,想要擦写BANK2,会发生Error或者HardFault。 是否不支持这样的操作? |
TouchGFX GUI开发实践里面的代码工程从哪里下载
stm3g030 spi 通讯以及如何管脚的定义,怎么知道是A口,还是B口,还是C口呢
STM32G030内置温度传感器的校准值TS_CAL2的地址是多少?
STM32G031 SMBUS从机模式的tLOW:SEXT超时无效
STM32是小端模式,但为什么Keil中memory窗口和反汇编窗口的32位指令不一致?
fatfs挂载
FATFS版本问题。
STM32g0x1 FDCAN外设寄存器描述文档是哪一份?RM0444里貌似没有FDCAN外设描述
STM32G0 FLASH快速写入发生HardFault
st25dv04k通信
的相关定义给定BANK进行擦除时,假设程序运行在BANK1,即0x8000000开始的空间。
若要擦除BANK2,给的宏参数是FLASH_BANK_1才行。
我刚开始给的是FLASH_BANK_2,结果发现每次0x8000000开始的空间都被擦除了。这点要注意下。
我使用ARM MDK IDE测试的,当我按键多次后就对BANK2进行全擦除,是可以实现对BANK2的擦除的。
不过就是那个参数给的是FLASH_BANK_1,这点跟手册描述似乎是相反的,我会继续跟踪确认这点。
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
if (Cnt_KeyIN>3)
{
Cnt_KeyIN = 0;
HAL_FLASH_Unlock();
FLASH->CR |= FLASH_BANK_1;//!!!!
FLASH->CR |= (FLASH_CR_STRT );
}
}
STM32 一直都支持 flash 擦写。
不过双bank 模式首先检查一下是否使能了双bank,否则写错地址就容易发生错误。
对于双BANK芯片,其典型应用就是对BANK 1进行Flash编程或擦除时,另一个BANK 2里的程序可以正常运行,
不过,不支持同时对该bank 2的flash编程操作。
注意页地址给正确。擦除时芯片供电稳定。
我使用的是STM32 G0B1RCT6,已经使能了双BANK,生成的HAL中已经定义了“FLASH_DBANK_SUPPORT”
现在程序运行在BANK1(默认),想要尝试擦写BANK2,调用擦写函数也能返回HAL-OK,但是在IAR中View Memory,擦写成功的BANK2的那一页,没有变成0xFF。接着再写入,就发生hardfault了。
是否还有什限制或者还需要提前做什么设定吗?求指导!