工具/软件:


你好专家,我有几个问题要问你.?
1.我可以问为什么我一直没有通过验证?
2Fapi_issueProgrammingCommand----- 如果写入的数据为0xFF、此函数是否允许任何次数的写入?还是每次只能编程8个单元?如果我要写入一个地址、该怎么做?
代码如下
缓冲器[0]= 0x1122;
缓冲器[1]= 0x3344;
缓冲器[2]= 0x5566;
缓冲器[3]= 0x7788;
缓冲器[4]= 0x99AA;
Buffer[5]= 0xAABB;
缓冲器[6]= 0xBBCC;
缓冲器[7]= 0xDDEE;
EALLOW;
oReturnCheck = Fapi_initializeAPI (FlashTech_CPU0_BASE_ADDRESS、
DEVICE_SYSCLK_FREQ/1000000U);Flash初始化 μ s
if (oReturnCheck!= Fapi_Status_Success)
{
//
//检查闪存 API 文档是否存在可能的错误
//
Example_Error (oReturnCheck);
}
oReturnCheck = Fapi_setActiveFlashBank (Fapi_Flash 组0);//检测flash的扇区是否为初始化状态
if (oReturnCheck!= Fapi_Status_Success)
{
//
//检查闪存 API 文档是否存在可能的错误
//
Example_Error (oReturnCheck);
}
EDIS;
EALLOW;
ClearFsmStatus();
Fapi_setupBankSectorEnable (FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTA、0xFFFFFF00);
Fapi_setupBankSectorEnable (FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTB、0x00000003);
oReturnCheck = Fapi_issueAsyncCommandWithAddress (Fapi_Erase 扇区、(uint32_t *) Bzero_Sector 1_START);
//等待 FSM 完成擦除扇区操作
while (Fapi_checkFsmForReady ()!= Fapi_Status_Fsm){}
if (oReturnCheck!= Fapi_Status_Success)
{
//检查闪存 API 文档是否存在可能的错误
Example_Error (oReturnCheck);
}
//读取 FMSTAT 寄存器内容以了解之后 FSM 的状态
// ERASE 命令查看是否存在任何与擦除操作相关的错误
oFlashStatus = Fapi_getFsmStatus();
IF(oFlashStatus !=3)
{
//检查闪存 API 文档以获取 FMSTAT 并相应地进行调试
// Fapi_getFsmStatus ()函数给出 FMSTAT 寄存器的内容。
//检查是否有任何 EV 位、ESUSP 位、CSTAT 位或
//设置 VOLTSTAT 位(更多详细信息、请参阅 API 文档)。
}
//验证扇区0是否已擦除
//
oReturnCheck = Fapi_doBlankCheck ((Bzero_Sector *) uint32_t 1_start、
扇区2kb_u32length、
&oFlashStatusWord);
if (oReturnCheck!= Fapi_Status_Success)
{
//
//检查闪存 API 文档以获取错误信息
//
Example_Error (oReturnCheck);//FlashAPI. Example_Call
}
EDIS;
EALLOW;
ClearFsmStatus();
Fapi_setupBankSectorEnable (FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTA、0xFFFFFF00);
Fapi_setupBankSectorEnable (FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTB、0x00000003);
oReturnCheck = Fapi_issueProgrammingCommand ((uint32_t *) Bzero_Sector 1_start、缓冲器、8、0、0、Fapi_Auto EccGeneration);// flash烧写(在给定的地址烧写内同)μ s
while (Fapi_checkFsmForReady ()!= Fapi_Status_Fsm);
{}
if (oReturnCheck!= Fapi_Status_Success)
{
Example_Error (oReturnCheck);
}
oFlashStatus = Fapi_getFsmStatus();
oReturnCheck = Fapi_doVerify (((uint32_t *) Flash1_start)、8、(uint32_t *)缓冲器 Bzero_Sector);
if (oReturnCheck!= Fapi_Status_Success)
{
Example_Error (oReturnCheck);
}
}
EDIS;