我现在将我的引导应用程序分配给了 256K 扇区的 Block0。即 800000 - 83FFFF。
我的申请现在从 840000 开始。
我正在使用 S32DS 处理器专家和下面的代码擦除 15 个块,因为一个块是我执行的地方
解锁扇区 ->
ret = FLASH_DRV_SetLock(C55_BLOCK_256K_FIRST, 0x8000FFFFU);
/* 擦除块 */
blockSelect.lowBlockSelect = 0x0U;
blockSelect.midBlockSelect = 0x0U;
blockSelect.highBlockSelect = 0x0U;
blockSelect.first256KBlockSelect = 0xFFFF0000U;
blockSelect.second256KBlockSelect = 0x0U;
ret = FLASH_DRV_Erase(ERS_OPT_MAIN_SPACE, &blockSelect);
擦除看起来没问题,但是当我对闪存编程时出现异常 IVOR1
代码如下
ret = FLASH_DRV_Program(&pCtxData,0x00840000,size,from);
异常如下,在 MCSR 寄存器中设置了取指错误位。