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.

[参考译文] TMS570LC4357:擦除 Bank0中多个扇区时、Fapi_Block 函数偶尔会失败。

Guru**** 2455560 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1484064/tms570lc4357-fapi_blockerase-function-occasionally-fails-when-erasing-multiple-sectors-in-bank0

器件型号:TMS570LC4357

工具与软件:

尊敬的团队:

   

我使用的是 TMS570LC43XX 开发板。 在 TI 官网提供的 Hercules_Ethernet_Bootloader 项目中、我发现当系统 lwIPInit 先调用该函数后再调用该函数 Fapi_BlockErase 、系统就会 prefetchEntry 在编程后第一次启动时偶尔进入异常。

擦除和写入以下地址范围时没有问题:
ipAddr = lwIPInit(0, emacAddress, 0, 0, 0, IPADDR_USE_DHCP);
Fapi_BlockErase(0x40000, 0x20000);
Fapi_BlockErase(0x60000, 0x20000);
Fapi_BlockErase(0x80000, 0x40000);
但是、以下代码偶尔会导致异常:
ipAddr = lwIPInit(0, emacAddress, 0, 0, 0, IPADDR_USE_DHCP);
Fapi_BlockErase(0x40000, 0x200000 - 0x40000);

另外我发现如果在第一次启动时出现异常、在第二次启动时可能没有异常。 一旦启动无例外地发生、此后的多个连续启动中将不会有任何例外。

此外,我发现,如果我以前调用闪存擦除和写入操作将没有问题 lwIPInit,如下所示:

Fapi_BlockErase(0x40000, 0x200000 - 0x40000);
ipAddr = lwIPInit(0, emacAddress, 0, 0, 0, IPADDR_USE_DHCP);

此外、我们仅在擦除 Bank0时遇到问题、擦除 Bank1时未发现问题。

 谢谢你。  e2e.ti.com/.../Hercules_5F00_Ethernet_5F00_Bootloader_5F00_err.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Qing、

    我对延迟答复表示歉意。

    我在这段时间内受困于其他问题、  

    您是否仍然受困于此问题?

    ——
    谢谢、此致、
    Jagadish。