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:F021闪存 API 使用问题

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

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1300408/tms570lc4357-f021-flash-api-using-issue

器件型号:TMS570LC4357

您好、我在将 F021闪存 API 与 TMS570LC4357配合使用时遇到了问题。

我正在为 EEPROM 仿真闪存组7使用 tms570lc4357 MCU 和 F021闪存 API v02.01.01。 当我尝试每个周期写入4字节或8字节时、没有问题。 写入组7的值未更改。 但是、如果我尝试写入2个字节、写入银行7的维尔已发生变化。 我已经阅读了"F021闪存 API 参考指南"和"高级 F021闪存 API 擦除/编程使用"文档、但未看到有关此问题的任何内容。 以下是我的代码  

uint32_t for_counter_u32 = 0 ;
uint8_t temp_data_buf [8U] = {0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45};
uint8_t write_size = 4U ;

while(for_counter_u32 < 0x00020000)
{
    Fapi_issueProgrammingCommand( (uint32_t*)(0xF0200000U + for_counter_u32),
    temp_data_buf ,
    write_size ,
    NULL ,
    0U ,
    Fapi_DataOnly );

    for_counter_u32 += write_size;
}

WRITE_SIZE = 4U;

WRITE_SIZE = 2U;

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

    您好、Burak:

    我们现在已开始处理您的问题、并将尽快提供更新。

    --
    谢谢。此致、
    Jagadish。

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

    您好、Burak:

    很抱歉耽误你的时间。

    我刚刚进行了代码调试、可以看到您提到的行为。 给我更多的时间进行调试并向您提供更新。

    --
    谢谢。此致、
    Jagadish。

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

    感谢您的关注。 我还有一个关于这一问题的问题。 在这些图片中、我共享了用值0xFFFFFFFF 完全初始化的闪存组7区域。 在本例中、 Fapi_issueProgrammingCommand (...) Fapi_Data 模式下的功能工作正常。 当使用闪存组7时、我完全放弃了组7区域、但组7中的新值不是0xFFFFFFFF。 之后如果我使用  Fapi_issueProgrammingCommand (...)  在 Fapi_Data 模式中(写入大小的字节无关紧要、 8字节写入也不能正确工作)、Flash 组7中的值不正确。

    我认为 Fapi_issueProgrammingCommand (...)  函数在 Fapi_Data 模式中不起作用。 在我的应用程序中、我需要使用 Fapi_Data 模式、因为如果在自动生成 ECC 模式下使用写入、我不能使用同一闪存存储体地址两次写入操作(实际上该函数在 Fapi ok 时返回、但在写入操作后、目标地址不会改变)。 在我的算法中、有时我需要写入相同的闪存组地址。 此外、由于我有错误检测功能、因此我不需要使用 ECC。

    Fapi_Data mode 是什么? 在共享文档中、我无法清楚地了解仅数据与自动 ECC 生成之间的区别。 遗憾的是、没有关于 FSM 的文档。 因此 我必须使用 Fapi 函数。

    注:如果我要使用相同的闪存存储体地址、我必须清除闪存存储体7。 有时我不需要这么做、因为在闪存中使用了各种类型的门(1 -> 0: 写入操作;0 -> 1清除操作)。

    谢谢、此致。

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

    您好、Burak:

    这只是预期行为、由于 ECC 位校正、将会发生。 请参阅下面的主题以了解  

    (+) TMS570LC4357:基于 ECC 功能的 QS -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    --

    谢谢。此致、
    Jagadish。

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

    您好!

    根据我从您在此主题上共享的链接了解,即使我使用 Fapi_disableAutoEccCalculation (...) 停止。 当代码开始执行且我无法禁用闪存 ECC 时、闪存 ECC 会亮起。 这是真的吗?

    我使用链接器文件写入来写入0xFF 闪存组7、但我认为这不是正确的行为、除非我在程序运行期间能够再次执行此操作。

    在上面的代码示例中、即使内存完全是0xFFFFFFFF、我的问题也未解决。

    谢谢、此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据我从您分享的有关此主题的链接中了解,即使我使用 Fapi_disableAutoEccCalculation (...) 停止。 当代码开始执行且我无法禁用闪存 ECC 时、闪存 ECC 会亮起。 这是真的吗?

    是的、LC4357也是如此。

    我使用链接器文件写入来写入0xFF 闪存组7、但我认为这不是正确的行为、除非我在程序运行期间能够再次执行此操作。

    在上面的代码示例中、即使内存完全是0xFFFFFFFF、我的问题也未解决。

    [/报价]

    没错。