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.

[参考译文] RM44L920:具有两个 EEPROM 的 FEE 驱动器配置

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1302223/rm44l920-fee-driver-configuration-with-two-eeps

器件型号:RM44L920

尊敬的社区:

我们在我们的 RM44L920项目中实施了 FEE 驱动程序1.19.4版(FEE 版本3.0.2)并按如下方式对其进行配置:

我们需要使用两个 EEPROM、对于每个 EEP、我们只有一个块(块大小97和128)。 第一个 EEP 应使用16个虚拟扇区中的14个。 第二个 EEP 只应使用最后2个虚拟扇区。 每个虚拟扇区都映射到一个闪存扇区。

问题1:为什么必须为虚拟扇区5选择闪存存储体1?

FEE 驱动器似乎不使用14个、而只是两个 EEPROM 使用2个虚拟扇区。 在调试时、我单步执行以下代码序列、这些代码序列有几个地方:

if(0U == u8EEPIndex)
{
    u16Index=0U;
    u16Index1= (uint16)(TI_FEE_NUMBER_OF_VIRTUAL_SECTORS - TI_FEE_NUMBER_OF_VIRTUAL_SECTORS_EEP1);  
}
else
{
    u16Index = TI_FEE_NUMBER_OF_VIRTUAL_SECTORS_EEP1;
    u16Index1 = TI_FEE_NUMBER_OF_VIRTUAL_SECTORS;
}

while(u16Index < u16Index1)
{ /* do stuff */ }

问题2:如何配置 FEE 驱动器以获得所需的行为?

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

    尊敬的 Samantha:

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

    --
    谢谢。此致、
    Jagadish。

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

    尊敬的 Samantha:

    我按您所说的方式进行了配置:

    我只能为"TI_FEE_NUMBER_OF_VALUTE_SECTIONS"和"TI_FEE_NUMBER_OF_VIROLE_SECTORE_EEP1"看到合适的值。

    我们最近对一个 EEP 使用4个虚拟扇区进行了测试。

    (+) TMS570LS1224:FEE 特定问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    我们注意到 FEE 驱动器中有一个错误是使用两个以上的虚拟扇区,即在第一次迭代时,它使用的是所有的虚拟扇区,但在第一次迭代后,它只使用前两个扇区。 所以、请考虑这个问题。

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    感谢您的快速响应!

    我还可以在 ti_fee_cfg.h 文件中看到适当的值、但如果我在调用 TI_EEP Fee_Init ()后检查变量 TI_EEP ()、我可以看到并非第一个 Global_Variables 的所有虚拟扇区都已分配(请参阅图片中的红色箭头):

    此外、我测试了该行为并编写了几个块以强制切换到下一个虚拟扇区。
    第一步、它从虚拟扇区0切换到虚拟扇区1。 完全写入虚拟扇区1后、它切换回虚拟扇区0 (请参阅图片、扇区0为活动扇区(0x04)、扇区1已准备好擦除(0x05))。

    您能否检查一下您身边的这种行为并回答我初始帖子中的问题1?

    提前感谢您的参与!

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

    尊敬的 Samantha:

    我没有这个板来测试它、但 我与我的同事讨论过、 他说 它将适用于4个虚拟部门。 但同时、它仅适用于第一个迭代、再说一次、它最后会出现我在下述线程中提到的问题:

    TMS570LS1224:FEE 特定问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    如果您想要我测试的4个虚拟扇区代码、则可以从下面进行验证:

    e2e.ti.com/.../FEE_5F00_TEST_5F00_WITH_5F00_FULL_5F00_LOAD_5F00_RM46.zip

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    非常感谢您的支持!

    不幸的是、我认为您提到的主题中的问题不是我要指出的问题。


    我用 TI_A5A5AU Fee_Format (0x5A5A5AU)擦除器件、并使用我初始 POST 中提到的配置来初始化驱动程序。 如果我对另一线程的理解正确、那么通过所有虚拟扇区进行的第一次迭代应该可以正常工作。 在我的配置中、对于第一个 EEP、驱动程序应该循环通过 VS1 -> VS2 -> VS3 -> VS4 ->...-> VS14。
    但是,我发现了以下行为与一个干净的设备: VS1 -> VS2 -> VS1 -> VS2 -> VS1 -> VS1 -> VS1。

    阅读驱动程序的代码后、我在初始帖子中找到了代码部分。 我认为驱动程序没有正确地使用参数 TI_FEE_NUMBER_OF_VILETE_SECTIONS 和 TI_FEE_NUMBER_OF_VITE_SECTORE_EEP1。 我的意图是将 EEPROM 分成两个 EEPROM、但比率不均。 第一个 EEP 应具有比第二个 EEP 更多的虚拟扇区(和物理闪存扇区)。 我们需要该比率、因为某些块的更新频率要高于其他块。

    但是、如果我设置 TI_FEE_NUMBER_OF_VITEL_SECTIONS = 16且 TI_FEE_NUMBER_OF_VITE_SECTORE_EEP1 = 14、如果我从初始 POST 正确地读取了循环、则第一个 EEP (u16Index = 0、u16Indexx1 = 2)和第二个 EEP (u16Index = 14、u16Index = 16)的 while 循环将恰好执行两次。 我错了吗?

    我在多个地方找到了此代码序列。 例如,在 TI_VS14()中,驱动程序不会在 Fee_Init 中搜索活动虚拟扇区,直到 VS14。

    您是否知道是否计划为其中的任何发现更新驱动程序?

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

    尊敬的 Samantha:

    首先,我们的回应延迟,这是因为我们在度假.

    在我的配置中,对于第一个 EEP,驱动程序应循环通过 VS1 -> VS2 -> VS3 -> VS4 ->...-> VS14。
    但我发现了以下行为与一个干净的设备:VS1 -> VS2 -> VS1 -> VS1 -> VS1 ->...

    实际上、在本主题中、我指出我们仅使用一个 EEP 而不使用两个 EEP 进行测试。 我没有这个板来测试它。 您能否仅使用一个 EEP 而不是两个进行测试、看看第一次迭代是否适用于单个 EEP。

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    再次感谢您的答复。 我自己在度假。

    我按照您的建议进行了测试。 为此、我更改了以下参数并创建了一个大块来快速填充虚拟扇区:

    #define TI_FEE_NUMBER_OF_EEPS                                1U     //在2U 之前

    #define TI_FEE_NUMBER_OF_VALUE_SECTOR_EEP1 0U                   //在14U 之前

    通过这种配置、我可以看到第一次运行时使用了所有虚拟扇区。 因此、第一次迭代是正常工作的。 之后、可以看到另一个线程中提到的行为。

    此致、

    萨曼莎·沙德温克尔

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

    您好、Samantha Schadwinkel

    这可能是由于多个 EEPS 所致。  

    我将注意此问题以供将来校正、您的应用是否可以将单个 EEP 与两个虚拟扇区结合使用、就像大多数客户用例一样。

    --
    谢谢。此致、
    Jagadish。