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:
没关系的。 后续遇到其他问题,再讨论。