主题中讨论的其他器件:C2000WARE
H 正在尝试对闪存进行编程。 我的应用程序正在 Bank0上运行、我正在尝试对 Bank1进行编程。 没有成功。
我的测试代码:
volatile uint16_t data[100];
对于(i=0;i<100;i++)数据[i]=i;
Flash_CfgBank1 ();
FLASH_Programbank (bone_SectorAB_start、100、(uint16_t *) data);
Flash_DoneBank1 ();
uint16_t *数据传输=(uint16_t *) bon_SectorAB_start;
对于(i=0;i<100;i++) VT100_printf ("%u "、dataptr[i]);
输出为65536。 因此不进行编程。
文档中不清楚如何以及由谁(I 或 lib)配置闪存进行编程。
//函数
空 Flash_CfgBank1 (空)
{
易失性 Fapi_StatusType oReturnCheck;
EALLOW;
// Flash_setWaitstates (FLASH1CTRL_base、0x0F);
// Flash_disableCache (FLASH1CTRL_base);
// Flash_disableECC (FLASH1CTRL_base);
// Flash_laimPumpSemaphore (FLASH1CTRL_base、flash_Bank1_wrapper);//取消命令此命令时分配会崩溃
oReturnCheck = Fapi_initiatizeAPI ((((Fapi_FmcRegisterType *) F021_CPU0_W1_REGISTER_ADDRESS)、200);
oReturnCheck = Fapi_setActiveFlashBank (Fapi_FlashBank1);
}
o 呼叫时返回检查成功。
void Flash_Programbank (uint32_t 地址、uint16_t 长度、uint16_t *数据)
{
int i;
Fapi_StatusType oReturnCheck;
EALLOW;
for (i=0;<length;i+=8))
{
oReturnCheck = fapi_issueProgrammingCommand ((uint32_t *) address+I、&data[i]、
8、0、0、
Fapi_AutoEccGeneration);
while (fapi_checkFsmForReady ()=fapi_Status_FsmBusy);
if (oReturnCheck!= Fapi_Status_Success) Flash_Error (oReturnCheck);
}
}
o 器件编程时、ReturnCheck 成功。
空 Flash_DoneBank1 (空)
{
EALLOW;
FLASH1CTRL_BASE;
FLASH_enableCache (FLASH1CTRL_base);
FLASH_enableECC (FLASH1CTRL_base);
}
有人建议我做错了什么? 或者需要如何配置闪存以便我可以对其进行编程?
谢谢!