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.

[参考译文] TMS320F28379D:闪存 API Fapi_calculateEcc ()不工作

Guru**** 2536070 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1362321/tms320f28379d-flash-api-fapi_calculateecc-not-working

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

我正在尝试使用自检库测试闪存 ECC 逻辑。 我在 C2000Ware_1_00_01_00中按照诊断文件夹中的示例进行操作。 工程与示例工程的主要区别是我从闪存加载、并且我已将其转换为 EABI 格式。

我已经确保 在运行任何其他函数之前运行 Fapi_initializeAPI ()。

运行 Fapi_calculateEcc()时,返回的 ECC 值为0,测试失败。 如果我运行示例项目并使用完全相同的参数调用 Fapi_calculateEcc(),则返回的 ECC 值为160。 我可以在我的项目中硬编码160、测试将通过。

从闪存而不是 RAM 加载时,在调用 Fapi_calculateEcc ()之前,我是否需要执行任何其他步骤? 或者、当格式为 EABI 而不是 COFF 时?

谢谢!

布莱辛·西尔维斯特

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

    布吕辛

    当您说"我正在从闪存加载"时、您是说您是从闪存执行闪存 API 吗?   

     如果您说"如果我运行示例项目并使用完全相同的参数调用 Fapi_calculateEcc(),返回的 ECC 值为160": 我假设这个示例是 COFF 示例。  对吧?

    谢谢。此致、
    瓦姆西

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

    嘿、Vamsi、

    我的意思是、我的项目使用闪存链接器文件、而不是 RAM 链接器文件。
    是的、示例工程为 COFF。

    谢谢!

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

    您好、Brycin:

    在闪存链接器命令文件中、您需要确保闪存 API 库映射为从闪存加载、但映射为 RAM 以供执行。

    请检查。

    谢谢。此致、

    瓦姆西

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

    以下是我尝试过的、但不幸的是、它仍然不起作用:

    闪存 API:
    {
    ../F2837x_flash/libcart/bit/pbit.obj src (.text)
    ../F2837x_FLASH/SDA src drv/sta/sta_user.obj (.text)
    ../F2837x_FLASH/SDA src drv/sta/sta_tests.obj (.text)
    -l ../EABI/F021_API_F2837xD_FPU32_EABI.lib src (.text)
    }LOAD = FLASHH、
    运行= RAMGS11_12、
    Load_Start (FapifuncsLoadStart)
    Load_Size (FapifuncsLoadSize)、
    Load_End (FapifuncsLoadEnd)、
    RUN_START (FapifuncsRunStart)、
    RUN_SIZE (FapifuncsRunSize)、
    RUN_END (FapifuncsRunEnd)、
    对齐(8)

    我已经 通过 在调用函数前将返回状态初始化到 Fapi_Status_Fsm 45y 来确认 Fapi_initializeAPI()工作正常,并验证 函数返回后返回状态是否被更新为 Fapi_Status_Success。  Fapi_calculateEcc ()似乎在我正在使用的库中不起作用:F021_API_F2837xD_FPU32_EABI.lib  在 COFF 库 F021_API_F2837xD_FPU3.lib 中运行正常 。  

    Fapi_initializeAPI()和 Fapi_calculateEcc()是我当前尝试从该库使用的唯一两个函数。

    您还能想到我可以尝试的其他东西吗?

    谢谢!

    布吕辛

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

    您好、Brycin:

    目前、您可以使用 闪存 API 指南附录 E 中提到的 ECC 计算算法: http://www.ti.com/lit/pdf/spnu629 

    我们将能够在6月检查 Fapi_Calculate E.cc()。

    谢谢。此致、

    瓦姆西

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

    附录 E 中的 CalcEcc()函数解决了我的问题。 谢谢!