/******************************************************** * Function for Programming of section by simple longs * ********************************************************/ LWord FLASH_ProgramSectionByLongs(LWord destination, LWord* pSource, LWord size) { while(size--) { if(FLASH_ProgramLongWord(destination, *pSource++) != FLASH_OK) return FLASH_FAIL; destination += 4; } return FLASH_OK; }
/******************************************************** * Function for Programming of section by simple longs * ********************************************************/ LWord FLASH_ProgramSectionByLongs(LWord destination, LWord* pSource, LWord size) { LWord *pdata; pdata = pSource; while(size--) { /* if(destination == 0x500) { data = *(uint32_t *)0x1fffff00; //FLASH_EraseSector(0x5000); FLASH_ProgramLongWord(0x6008, data); FLASH_ProgramLongWord(0x600c, *pdata); FLASH_ProgramLongWord(0x6010, (LWord)pdata); } */ data = *pdata; if(FLASH_ProgramLongWord(destination, *pdata++) != FLASH_OK) { return FLASH_FAIL; } destination += 4; //don't program sec bit if(destination == 0x40C) { if(HWFSEC == LOCK_MCU) { *pdata = 0xFFFFFFFD; } else { *pdata = 0xFFFFFFFE; } } } return FLASH_OK; }