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.

[参考译文] TMS570LS0914:费用配置和使用

Guru**** 2430620 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1542827/tms570ls0914-fee-configuration-and-usage

器件型号:TMS570LS0914
主题中讨论的其他器件:HALCOGEN

工具/软件:

您好:

我已在 20 个街区内配置了费用。 其中 16 个块的大小为 64 字节、块 17 到块 19 的大小为 1024 字节、块 20 的大小为 256 字节。

此处随此查询附加了费用 HALcogen 配置映像。

问题:使用 Write_Sync () 写入时返回 OK、TI_JobResult() Fee_Get 函数也返回 IDLE、但 TI_JobResult() Fee_Get 函数返回 Job_pending 。  

因此、我无法编写下一个块。

这在任何块索引处都是随机发生的。

注:目前 16 个块中只有 2 个块使用、但 17-20 个块使用中。

请帮助我解决这个问题。

             

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

    您好 Prajacta、

    在发出任何读/写命令之前、您是否调用了 Fee_Init () 来初始化 EEPROM? HAL GUI 仅支持 16 个块、您需要在 ti_fe_cfg.c 中手动添加其他块 (17~20) 添加块后、必须将块数更新为 20(从 16)。

    配置 GUI 中有一个错误、配置中的最大虚拟扇区应为 4、而不是 16。

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

    您好 QJ Wang、

    感谢您的答复。

    在这里、我无法编辑最大虚拟扇区数。 但我定义的虚拟扇区数量 4.

    如您所述、是的、模块 17-20。我已手动添加 ti_fe_cfg.c、并需要进行必要的更改。

     在 定期调用 Write_Sync () 之前、也在 main 中调用 Fee_Init ()。  

    还有一件事、我把 Write_Sync  () 称为 周期为 1 秒 我可以进一步降低该值吗? 如果是、在哪个值?

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

    您好:

    在调查该问题时,我发现了另外一件事:由于 TI_.Variables[1].State=Busy_internal Fee_Global ,块索引没有移动到下一个 Fee_Module。 即使在空白块写入(块 16)时也会发生这种情况。

    请帮助。 情况紧急。

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

    尊敬的 Prajakta:

    我使用 TI_EEPS.Sync () 和 TI_EEPS.ASYNC Fee_Write () 将数据写入 2 个 Fee_Write、两者都运行良好。

    应更改两个参数 (ti_fe_cfg.h)

    #define TI_FIE_NUMBER_OF_BLOCKS                20u

    #define TI_FIE_TOTAL_BLOCK_DATAITES             20u

    附件为我的工作项目:

    1.2 个 EEPS、每个都有 2 个虚拟扇区

    2.使用异步方法将 11 个块编程到#1 EEPROM、将 9 个块编程到#2 EEPROM

    3、使用 SYNC 方法将 11 个块编程到#1 EEPROM、将 9 个块编程到#2 EEPROM

    我没有 LS0914 测试板、我的代码在 RM46Lx 板上进行了测试。 RM46Lx 使用与 LS0914 相同的收费 IP。 两个器件之间的主要区别在于字节序:LS0914 是大端字节序器件、RM46 是小端字节序器件。

    e2e.ti.com/.../RM46_5F00_2FEE_5F00_Test.hcge2e.ti.com/.../RM46_5F00_2FEE_5F00_Test.dil

    e2e.ti.com/.../6327.main.ce2e.ti.com/.../6327.ti_5F00_fee_5F00_cfg.ce2e.ti.com/.../6327.ti_5F00_fee_5F00_cfg.h

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

    尊敬的 QJ Wang:

    这个代码片段帮了我很多。 我的问题  TI_States[1].State=Busy_internal Fee_Global 、已解决 Fee_Module。 谢谢您的提问。

    还有一件事、我把 Write_Sync  () 称为 周期为 1 秒 我可以进一步降低该值吗? 如果是、在哪个值?

    我还附上了我的 wr 和 rd 函数与此。请通过它一次,并纠正我,如果我错了。

    随函附上 TI_fe_cfg.c 和 ti_fee_cfg.h 文件。

    e2e.ti.com/.../0458.ti_5F00_fee_5F00_cfg.h e2e.ti.com/.../FEE_5F00_Init_5F00_Rd_5F00_Wr.txte2e.ti.com/.../7801.ti_5F00_fee_5F00_cfg.c

    请仔细阅读。

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

    将 144 位 (16 字节数据+ 16 位 ECC) 编程到闪存将需要 300us(最大值)和 40us(典型值)、因此将数据块写入闪存不会需要太多时间。 当活动的虚拟扇区已满时、驱动程序将擦除另一个虚拟扇区、并将所有有效的块复制到此擦除的扇区。 擦除闪存扇区最多需要 4 秒(最大值)(典型值为 0.03)。  

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

    e2e.ti.com/.../fee.ce2e.ti.com/.../fee.he2e.ti.com/.../6735.main.c

    是否可以尝试使用 fee.c 中定义的函数将数据编程到 EEPS (EEPS>1)?

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

    1.你已经浏览过我的档案了。 是否有任何问题?

    2.您提供的 fee.c 和 main.c 的好处是什么?

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

    尊敬的 Prajakta:

    对于 EEPS.Status 和 FEE_JOB_RESULT、请使用 Fee_Get 编号作为函数参数:

    TI_UINT8EEPIndex (uint8 Fee_Get)

    TI_JobResult Fee_Get (uint8 u8EEPIndex)

    fee.c 中没有什么特别的在我的上一封邮件中、我在多年前使用此文件运行 EEPS=2 的测试。 HalCoGen 生成的驱动程序可支持 EEPS=1 和 EEPS=2。

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

    TI_NVMHAND_0U) 状态 (Fee_Get);

    TI_NVMHAND_0U Fee_Get) JobResult;

    在这两种情况 下、NVMHAND 0U 的值都为 0。 即 EEP0。

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

    我没有测试您的代码。 如果在 EEP1 中对数据块进行编程、则应在 TI_EEP1.  Status (...) 中使用 Fee_Get 和 TI_JobResult Fee_Get (...)。

    顺便说一句、您不必调用 TI_function() Fee_Main 函数来进行同步写入和同步读取。

    你有试过我的精髓吗?