工具与软件:
您好!
我将使用 FAPI 命令擦除和写入闪存。 由于必须在重新写入之前擦除存储器、因此我首先发出擦除命令、然后使用Fapi_issueProgrammingCommand
进行写入。 擦除和写入过程首次成功执行。 但是、在第二次尝试时、当以单次运行的方式执行时、该过程会在擦除步骤期间卡住。 有趣的是、在逐步执行过程时、刷新正确发生。 您能帮忙解决这个问题吗?
谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好!
我将使用 FAPI 命令擦除和写入闪存。 由于必须在重新写入之前擦除存储器、因此我首先发出擦除命令、然后使用Fapi_issueProgrammingCommand
进行写入。 擦除和写入过程首次成功执行。 但是、在第二次尝试时、当以单次运行的方式执行时、该过程会在擦除步骤期间卡住。 有趣的是、在逐步执行过程时、刷新正确发生。 您能帮忙解决这个问题吗?
谢谢。
我正在写入组0。
这是用于擦除的代码。
uint8_t ErasenVerify (uint32_t MemAddr)
{
Fapi_Status 4.44返回检查= Fapi_Status_Success;
flashWREG->FRDCNTL = 0x0110U;/*RWAIT = 1、80MHz 系统时钟*/
FAPI_WRITE_EWAIT (5U);/* EWAIT = 3*/
Fapi_issueAsyncCommand (Fapi_Clear);
oReturnCheck = Fapi_initializeFlashBanks (SYS_CLK_FREQ);
if (oReturnCheck == Fapi_Status_Success);
{
oReturnCheck = Fapi_setActiveFlashBank (Fapi_Flash 0);
if (oReturnCheck == Fapi_Status_Success)
{
oReturnCheck = Fapi_enableMainBankSectors (0xFFFF);
if (oReturnCheck == Fapi_Status_Success)
{
while ( fapi_check_fsm_ready_busy !=4074 Fapi_Status_Fsm );
if (fapi_check_fsm_ready_busy == Fapi_Status_Fsm)
{
oReturnCheck = Fapi_issueAsyncCommandWithAddress (Fapi_Erase 3572tor、MemAddr);
while ( fapi_check_fsm_ready_busy !=4074 Fapi_Status_Fsm );
if ( fapi_check_fsm_ready_busy == Fapi_Status_Fsm )
{
if (FAPI_GET_FSM_STATUS == 0)
返回1;
设计
返回0;
}
//验证已擦除的状态
//Fapi_doBlankCheck (0x00024000、0x0011BFFF、poFlashStatusWord);
}
}
}
}
}
尊敬的 Vidya:
您能否在以下主题中尝试 QJ 给出的权变措施一次:
(+) TMS570LS1224:F021闪存 API 在擦除或重新编程闪存扇区时导致进入预取条目。 -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
——
谢谢、此致、
Jagadish。
尊敬的 Vidya:
我没有 LS1224板、因此我在 RM46上创建了一个示例并进行了测试。 工作正常、您可以一次参考以下示例吗:
e2e.ti.com/.../6303.FAPI_5F00_BANK0_5F00_TEST_5F00_RM46.zip
您可以看到、首先我正在擦除一个扇区、然后我正在写入该扇区、然后我再次成功地擦除该扇区并再次写入:
您可以创建一个类似工程、并且可以在您的最终使用 LS1224控制器进行测试。
——
谢谢、此致、
Jagadish。