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.

[参考译文] CCS/TMS570LC4357:Fapi_issueProgrammingCommand ()可以#39;t 使用"Fapi_DataOnly";模式

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/897916/ccs-tms570lc4357-fapi_issueprogrammingcommand-can-t-use-the-fapi_dataonly-mode

器件型号:TMS570LC4357

工具/软件:Code Composer Studio

你好  

我使用 F021来实现闪存驱动程序。

它需要调用 Fapi_issueProgrammingCommand ()函数。

如果我使用 Fapi_AutoEccGeneration 模式、它可以每次将数据写入闪存8个字节。 如果我的数据小于8、它还会将8个字节写入闪存。

如果我将数据0x11223344写入闪存地址0x003e0000、它可以成功写入。 然后继续将数据0x55667788写入 0x003e0004、将无法写入。

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

    您好!

    如果使用了 Fapi_AutoGeneration 选项、该函数将对闪存中提供的数据部分以及自动 生成的 ECC 进行编程。 ECC 是在64位对齐地址上计算的、最高可达组的数据宽度。 未 提供的数据被视为0xFF。 这意味着已对0x00340004进行编程。  

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

    你好  

    我明白了。

    如果您有一种实现以下功能的好方法:

    例如:

    我需要首先将44字节的数据写入闪存、实际上、它写入44字节的正确数据和4字节的0xff;(闪存地址0x003E0000~0x003E002C 是正确的数据、0x003e002D~0x003e0030是0xff)

    2.那么我需要将4个字节写入闪存(地址是:0x003e002D~0x003e0030)

    您是否有方法实施它?

    我尝试从闪存中读取44字节数据并将其保存到缓冲区中、将4字节数据写入缓冲区、并将48字节数据写入闪存。

    但我认为它太慢了。

    如果您有更好的方法吗?

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

    您好!

    您能否在第一次写入时将44字节和4字节合并?  

    您可以尝试以下方法:

    使用 Fapi_DataOnly 对44字节数据进行编程  

    2. 使用 Fapi_DataOnly 对4字节数据进行编程  

    3. 使用 Fapi_EccOnly 对48字节数据的 ECC 进行编程