主题中讨论的其他器件:C2000WARE
您好!
我使用 F28388D 控制器、我面临一种奇怪的行为。
我正在运行 一个500微秒的单独调度程序,我能够将数据复制到闪存扇区7,8,9。 但是、当我尝试擦除 CPU1的扇区13时、不会发生这种情况、我在10ms 时刷新看门狗、但相同的功能在 CPU2中工作正常、我可以擦除扇区13。 不了解2个不同 CPU 的行为差异
擦除扇区所遵循的步骤:
Flash_claimPumpSemaphore(FLASH_CPU1_WRAPPER);
Fapi_initializeAPI(F021_CPU0_BASE_ADDRESS,CPU_FREQUENCY_MHZ);
Fapi_setActiveFlashBank(Fapi_FlashBank0);
Fapi_issueAsyncCommandWithAddress(Fapi_EraseSector,0xBE000);
while (FdFlashOperationStatus() != Fapi_Status_FsmReady){}
FdFlashEraseVerify(0xBE000);
gstrCpu1IpcRegs.PUMPREQUEST.all = FLASH_PUMP_KEY (0x5A5A0000UL)
使用的宏如下所示
typedef 枚举
{
FLASH_CPU1_W包装 程序= 0x2、//!< CPU1包装程序
FLASH_CPU2_WRAPPER = 0x1 //!< CPU2包装程序
} Flash_pumpOwnership;
//定义映射到 FMC 寄存器的直接访问
#define F021_CPU0_REGISTER_ADDRESS 0x0005F800
//定义映射到 FMC 寄存器的直接访问。
#define F021_CPU0_base_address (((Fapi_FmcRegisterType *) F021_CPU0_register_address)
#define CPU_FREQUENCY MHz 200
每次调用擦除时都遵循相同的操作。 对于任何要检查的指针、问题可能是什么
谢谢、
Nagesh

