TI中文支持网
TI专业的中文技术问题搜集分享网站

STM32G0B1VC: IAP时flash擦除函数进不去

Other Parts Discussed in Thread:ADS1246

您好,我在使用STM32G0B1VC做IAP功能时遇到一个很奇怪的现象,我为Bootloader分配了0x08000000~0x0800FFFF共64KB的大小,为出厂程序分配了0x08010000~0x0801FFFF共64KB的大小,为之后的程序更新分配了0x08020000~0x0803FFFF共128KB的大小,在更新0x08020000~0x0803FFFF区域前,我需要先对这部分区域进行擦除,但总是擦除函数打断点却进不去,查阅网上资料也没头绪,请问可能是什么原因?是需要解除写保护?但是当该区域全部为FF的状态下又能写成功,求请教。

HAL_StatusTypeDef FLASH_If_Erase(uint32_t start)
{
uint32_t NbrOfPages = 0;
uint32_t PageError = 0;
FLASH_EraseInitTypeDef pEraseInit;
HAL_StatusTypeDef status = HAL_OK;

HAL_FLASH_Unlock();

NbrOfPages = (FLASH_START_ADRESS + FLASH_SIZE);
NbrOfPages = (NbrOfPages – start) / FLASH_PAGE_SIZE;

pEraseInit.Banks = FLASH_BANK_1;
pEraseInit.NbPages = NbrOfPages; //64
pEraseInit.Page = LASH_PAGE_NBPERBANK – pEraseInit.NbPages;//128-64=64
pEraseInit.TypeErase = FLASH_TYPEERASE_PAGES;
status = HAL_FLASHEx_Erase(&pEraseInit, &PageError);

HAL_FLASH_Lock();

return status;
}

Xiangju Xu:

FLASH_START_ADRESS = 0x08020000,这个函数在执行后会返回HAL_OK的,但是我用工具读flash发现0x08020000~0x0803FFFF区域并没有被清空

,

Kailyn Chen:

您好,STM32G0B1VC是ST的MCU哈,建议您直接联系ST的技术支持。

如果是我们的MCU芯片,我们会有专门的MCU工程师帮您回答。

给您带来不便非常抱歉。

,

Xiangju Xu:

抱歉,之前一直查ADS1246,记岔了==

,

Kailyn Chen:

没关系的。  后续遇到其他问题,再讨论。

赞(0)
未经允许不得转载:TI中文支持网 » STM32G0B1VC: IAP时flash擦除函数进不去
分享到: 更多 (0)