一、前言 ①在ECU OTA 程序升级过程中,需要执行一段比较特殊的代码,这段代码实现对自身flash的擦除与写入,又称flash driver;②为了安全的考虑,会尽可能的避免在代码中固化有对flash空间进行擦除或写入的操作,主要为了避免在程序跑飞时误调用该部分代码,使软件代码部
导出flashdrv文件,范围选择对应的ram区域 到此,flashdriver就制作完成了。 FlashDriver的使用修改 初始化 实际函数中是在初始化的时候调用C40_Ip_StartSequenceInit获取了对应ram区域的地址函数 static boolean FLASH_HAL_Init(void) { uint32 FlashDriverAddrStart,FlashDriverEndAddr; FLASH_HAL_GetFlashDriverInfo(&...
{ FLASH_Status status = FLASH_COMPLETE; __IO uint32_t tmp = 0; FLASH_WaitForLastOperation(ProgramTimeout,&status); if(status == FLASH_COMPLETE) { /* if the previous operation is completed, proceed to program the new first half word */ FLASH->CR |= CR_PG_Set; *(__IO uint16_t*...
1. 获取EVAL_BDPS_DRIVER固件文件:首先,您需要获得有关EVAL_BDPS_DRIVER固件的相关文件。您可能需要...
*(.NVM_Driver_Section_offset) } RW_IROM_flashdrv 0x08020008 0x000007F8{; load address = execution address*(.NVM_Driver_Section) } } 此处设置了两个段,NVM_Driver_Section_offset用来设置函数偏移地址,NVM_Driver_Section用来设置函数地址 增加段的宏定义 ...