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.

[参考译文] TMS320F28P559SJ-Q1:使用 API Fapi_issueProgrammingCommand () 每次仅对 64 位进行编程

Guru**** 2419530 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1542658/tms320f28p559sj-q1-using-api-fapi_issueprogrammingcommand-only-program-64-bits-each-time

器件型号:TMS320F28P559SJ-Q1


工具/软件:

您好专家

我在闪存 API 文档中看到、 无论客户需要将多少字节编程到闪存中、Fapi_issueProgrammingCommand () 函数的数据缓冲区都必须为 128 位对齐。

现在存在一个相关问题:客户在 Fapi_issueProgrammingCommand ()  API 中使用 64 位缓冲区、Fapi_doVerify () 将在调用  Fapi_issueProgrammingCommand () 两次后报告“fapi_error_fail"问题“问题。 有两个问题:

当数据缓冲区为 64 位对齐时、为什么会报告此问题?

是否有任何权变措施来支持客户保留 64 位对齐数据缓冲区但解决问题?

谢谢

Joe

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

    您好 Joe、

    1.您是否尝试编程和验证 8 个 16 位字或 4 个 16 位错误?

    2.您还可以提供 poFlashStatusWord 的内容吗?

    请注意、在 Fapi_doVerify () 函数 u32Length [in]中 、是要验证的区域长度(以 32 位字为单位)。

    此致、

    Rajeshwary

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

    嗨、 Rajeshwary

    请注意、在 Fapi_doVerify () 函数 u32Length [in]中 、要验证的区域长度(以 32 位字为单位)。

    是的、请参阅客户反馈、u32Length 为 2

    谢谢

    Joe

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

    嗨、 Rajeshwary

    您可以跟随此主题吗?客户将数据缓冲区更改为 8 16 位、问题仍然存在。

    谢谢

    Joe

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

    您好 Joe、

    您能否要求客户 在故障情况下分享 poFlashStatusWord 的内容?

    他们是否也看到在闪存中编程了正确的数据?

    此致、

    Rajeshwary

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

    嗨、 Rajeshwary

    有关客户反馈、请参阅附件:

    poFlashStatusWord 处于失败状态?

    似乎错误显示为 au32StatusWord[1]= 0x0000 0001、但 au32StatusWord[2]= 0x0001 0027。

    另外、他们是否看到在闪存存储器中编程了正确的数据?

    数据缓冲区位于 0x535、目标闪存地址为 0x101400  

    谢谢

    Joe

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

    您好 Joe、

    您是否可以要求客户在 128 位或 64 位地址边界对齐数据缓冲区? 下面是我们在示例代码中定义的 databuffer 的快照。

    此更改将解决该问题。

    此致、

    Rajeshwary

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

    嗨、 Rajeshwary

    根本原因是数据缓冲区的偏移是由于客户的操作错误而错误的。

    谢谢

    Joe