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 Fapi 闪存擦除错误

Guru**** 2468610 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1030315/about-tms570lc4357-fapi-flash-erase-error

主题中讨论的其他器件:TMS570LC4357

我对   引导加载程序使用 TMS570LC4357和 Fapi 库测试。

我对在 Fapi 库中使用 Fapi_BlockErase 有疑问。

测试顺序 如下、

1、先擦除:oReturnCheck = Fapi_BlockErase (0、APP_VERSIONUP_START_ADDR、maximum_firmware_size);

 2.写入以下内容: oReturnCheck = Fapi_BlockProgram (0、app_VERSIONUP_ADDRESS + SIZE、(无符号长整型)&data[0]、length);

3.擦除测试:oReturnCheck = Fapi_BlockErase (0、APP_VERSIONUP_START_ADDR、maximum_firmware_size);  

在第3号中  ,固件在 Fapi_BlockErase 函数中的"while (fapi_check_FSM_ready_busy=fapi_Status_FsmBusy);"中停止。

我的问题是、

1. 为什么 Fapi_BlockErase 函数中停止 fimrware?

2.如何在 写入闪存后重新擦除闪存存储器?  

此致、

米尼宇

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

    大家好、Minwoo、

    第1步是否正确擦除闪存?  APP_VERSIONUP_START_ADDR 和 maximum_firmware_size 的值是什么?

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

    您好、QJ Wang、

    第1步是否正确擦除闪存? ->是的、步骤1擦除操作良好。 步骤2写入操作良好。

     APP_VERSIONUP_START_ADDR 和 maximum_firmware_size 的值是多少->

    代码作用于0x00200100 ~ 0x00300000、APP_VERSIONUP_START_ADDR:0x00100000、maximum_firmware_size :0x00080000

     

    此致、

    米尼宇

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

    谢谢

    您擦除闪存组1的扇区0~7、并将数据写入组0的扇区12和扇区13。 在将数据写入这两个扇区之前、扇区12和扇区13是否被擦除? 否则、可能无法正确写入数据。  

    在#2之后、fmstat 中是否设置了任何错误标志?

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

    感谢您的回答、

    代码 集、

     

    1. 0x00000000 ~ 0x000FFFFF (组0) :引导加载程序

    2. 0x00100000 ~ 0x001FFFFF (组0): 版本代码

    3. 0x00200000 ~ 0x002FFFFF (组1):活动代码(正常操作)

    闪存组1的扇区0~7 是0x00200000 ~ 0x00300000?

    但是、在本节中、 实际代码在此地址中运行。 因此、无法擦除此段。

    在 闪存组 0 (0x00000000 ~ 0x000FFFFF)的扇区0~7中 、写入引导加载程序代码。

    我想知道系统启动后(开机/关机)。 我只能在组0的扇区12和扇区13中擦除/写入。

    那么、 是否无法重新擦除闪存存储器?

    此致、

    米尼宇

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

    大家好、Minwoo、

    您能否与我共享 flash.c? 我想检查是否启用了组1。

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

    您好、QJ Wang、


     我附加了这些文件、这些 代码基于 引导加载 程序示例代码。

    e2e.ti.com/.../bl_5F00_flash.h

     e2e.ti.com/.../5710.bl_5F00_flash.c

    e2e.ti.com/.../Fapi_5F00_UserDefinedFunctions.c

    此致、

    米尼宇

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

    我只在 LC4357 Launchpad 上运行测试、几次擦除闪存没有问题。 这是我的测试用例。  

    e2e.ti.com/.../TMS570LC43x_5F00_FlashAPI_5F00_Test.zip

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

    我再次检查。 然后我发现重复擦除。 然后擦除块在忙状态中停止。

    我还检查了闪存编程后闪存擦除没有错误。

    感谢 您的导游。

    此致、

    米尼宇