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.
工具/软件:Code Composer Studio
您好!
我尝试使用 F021 API 擦除闪存(TMS570LS3137)的数据并对其进行编程、
但是这两种操作都不成功。
我想擦除数据并将其编程到"FlashBank1 Sector0"。
我的代码如下所示。
我的代码有什么问题?
//擦除阶段
Fapi_initializeFlashBanks (50);
Fapi_setActiveFlashBank (Fapi_FlashBank1);
Fapi_enableMainBankSectors (Fapi_FlashSector0);
Fapi_issueAppe19OPandCommandWithAddress (Fapi_EraseSector、(uint32_t *) 0x00180000U);
while (fapi_Status_FsmBusy =fapi_checkFsmForReady());
//程序阶段
Fapi_initializeFlashBanks (50);
Fapi_setActiveFlashBank (Fapi_FlashBank1);
Fapi_enableMainBankSectors (Fapi_FlashSector0);
Fapi_issueProgrammingCommand ((uint32_t *) 0x00180000U、
pu8DataBuffer、
u8DataBufferSizeInBytes、
0、
0、
Fapi_AutoEccGeneration);
while (fapi_Status_FsmBusy =fapi_checkFsmForReady());
您好!
感谢您的回复。
我检查了 F021闪存 API 函数的返回值。
所有返回值均为零(Fapi_Status_Success)。
我看到 并尝试了 e2e.ti.com/.../1859354、但我不能成功。
调试启动时、我将擦除选项设置为所有组和扇区。
但是 、在 main 函数之前、我通过内存浏览器看到0x00180000U、
值是"???????? "。
为什么不使用0xFFFF?
我对 EEPROM (Bnak7)尝试了相同的操作、成功。
当我使用 F021 API 函数将数据编程到 EEPROM 时、我的主要函数如下所示。
/* EEPROM 的程序代码*/ int main (void) { /*用户代码开始(3)*/ uint8_t u8Buf[8]={0x01、0x02、0x03、0x04、0x05、 0x06、0x07、0x08}; Fapi_StatusType oReturnCheck = Fapi_Status_Success; /*初始化 FlashBats */ oReturnCheck = Fapi_initializeFlashBanks (60); if ((Fapi_Status_Success =oReturnCheck)&& (fapi_Status_FsmBusy!= flash_control_register->fmstat.fmstat_bits.Busy) { /*启用 Bnak7 */ oReturnCheck = Fapi_setActiveFlashBank (Fapi_FlashBank7); /*在 Bnak7中启用 Sector0 */ oReturnCheck = Fapi_enableEpromBankSecors (0x01U、0x00U); /*程序数据*/ oReturnCheck = fapi_issueprogramming Command (((uint32_t *) 0xF0200000U、 u8buf、 sizeof (u8buf)、 0、 0、 Fapi_AutoEccGeneration); /*等待完成*/ while (fapi_Status_FsmBusy =fapi_checkFsmForReady()); } /*用户代码结束*/ 返回0; }
当我使用 F021 API 函数将数据编程到 FlashRom 时、我的主要函数如下所示。
/* FlashRom 的程序代码*/ int main (void) { /*用户代码开始(3)*/ uint8_t u8Buf[8]={0x01、0x02、0x03、0x04、0x05、 0x06、0x07、0x08}; Fapi_StatusType oReturnCheck = Fapi_Status_Success; /*初始化 FlashBats */ oReturnCheck = Fapi_initializeFlashBanks (60); if ((Fapi_Status_Success =oReturnCheck)&& (fapi_Status_FsmBusy!= flash_control_register->fmstat.fmstat_bits.Busy) { /*启用 Bnak1 */ oReturnCheck = Fapi_setActiveFlashBank (Fapi_FlashBank1); /*启用安全0*/ oReturnCheck = Fapi_enableMainBankSectors (Fapi_FlashSector0); /*程序数据*/ oReturnCheck = fapi_issueprogramming Command (((uint32_t *) 0x00180000U、 u8buf、 sizeof (u8buf)、 0、 0、 Fapi_AutoEccGeneration); /*等待完成*/ while (fapi_Status_FsmBusy =fapi_checkFsmForReady()); } /*用户代码结束*/ 返回0; }
为什么我无法将数据编程到 FlashRom?