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.

[参考译文] RM44L520:使用 FEE 模块的组7的一半以上

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1323883/rm44l520-using-more-than-half-of-bank-7-with-fee-module

器件型号:RM44L520
主题中讨论的其他器件:TMS570LC4357TMS570LS3137

您好!

从我对 FEE 模块如何工作的研究,我得出以下结论。 在使用 FEE 模块时、组7的最大可用存储容量略低于32KB (考虑到虚拟扇区和数据块标头)。 这可通过配置2个虚拟扇区、每个扇区映射到组7的8个物理扇区来实现、因此每个扇区的大小为32kB。

我的问题是、在使用 FEE 时是否能够使用多于这个32KB 的内存。 如果没有、是否有其他方法可以充分利用第7排存储器?

P.S.我做了一些测试配置不等的虚拟扇区(例如60KB 为1和4KB 为另一个),和预期它不能正常运行。 当经过容量的第一扇区和切换到第二一一切开始打破。 无法将数据从第一个扇区正确复制到第二个扇区、并且后续写入操作返回 E_NOT_OK 状态、因为不再接受作业。

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

    尊敬的 Alexandru:

    Unknown 说:
    我的问题是在使用费用时是否可以使用超过此32 KB 的内存。 如果不是、是否有其他选择来充分利用库7存储空间?

    是的、可行。 我的意思是、它取决于数据块的大小。

    至少需要支付两个虚拟扇区的费用。 并且只有闪存组7可配置为 FEE。

    例如、如果我们配置两个分别为32KB 的虚拟扇区、并假设 每个只有两个数据块为8个字节。 然后、一旦虚拟扇区1完全填满、如果我们尝试向虚拟扇区1写入任何其他数据、则新数据将仅写入虚拟扇区2、并且只有虚拟扇区1中的最后一个有效数据块将移动到虚拟扇区2。 在虚拟扇区1的有效数据块(旧数据)中、不会移动到虚拟扇区2中。

    另请参阅以下主题、以了解:

    (+) TMS570LS3137:在 FEE 模块内备份数据-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    (+) TMS570LS3137:关于 EEPROM 访问-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    --
    谢谢。此致、
    Jagadish。

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

    您好 Jagadish:

    感谢您的答复!

    我阅读了您链接的两个线程、以确保我不会错过任何要点。
    但是、我没有看到我的问题的答案、因此可能我没有充分说明我感兴趣的内容。

    从您在第一个链接线程中的响应来看、您在编写大数据块时给出的描述非常有用。 我通过阅读收费用户手册得出了类似的结论、但我不确定某些边缘案例。

    另外、从您在这里的回复中、您告诉我、我可以使用的数据块超过32kB、但其中只有两个8字节数据块。 这些块不断被重写、旧块将失效。 这会一直持续到虚拟扇区1被填满、然后在此时继续写入虚拟扇区2。 在这一点之后、来自第一个虚拟扇区的所有有效数据都会复制到第二个虚拟扇区。 第一个虚拟扇区被标记为擦除、第二个虚拟扇区成为有效扇区。 我理解了 FEE 用户手册中的这一点。 这意味着我们可以写入超过32kB 的数据、但大部分都是虚拟扇区中留下的过时数据、而不是实际可用的数据。

    我的问题是,如果可能有超过32 Kb 的实际数据在银行7以一种有用的方式,而不打破费用。 例如、如果可以拥有10个每个4000字节的数据块。 是否有可能在不中断其工作方式的情况下将其存储在费用中?

    从费用本身的方式,我想你需要两个相同大小的虚拟扇区,以避免可能的数据丢失和损坏。 基本上、在本例中、最大可用存储器将是库7容量的一半(32KB)、因为我们将其拆分为两个相等的虚拟扇区。 然而,我想知道是否有任何办法利用比这更多的空间。
    我还知道、虚拟扇区本身和每个数据块标头的标头会占用部分空间。

    例如、如果我们尝试进行以下配置:
    虚拟扇区1 - 56 KB
    虚拟扇区2 - 8 KB
    10个数据块-每个4000字节

    如果我们写入全部10个数据块、则将有~40KB 的数据写入 VS1 (虚拟扇区1)。 现在、如果我们重写一些数据块、假设其中的4个数据块。 假设我们将几乎填充 VS1、但不能完全填充(此时我们仍有一些空间)。 当我们尝试重写另一个数据块的时候、VS1中没有足够的空间、所以它会被写入虚拟扇区2 (VS2)。 在 VS1应该被复制到 VS2后、VS1应该被标记为擦除和擦除、并且 VS2应该成为激活的虚拟扇区。
    这种情况下的问题是 VS2可用的空间不足以容纳已写入 VS1的所有有效数据块。 对我来说、这可能会导致数据丢失、数据损坏等。
    因此、在我看来、这看起来不是我们可以实际存储和使用库7中40KB 数据的可用配置。

    我的问题如下。 有没有任何方法可以实际使用40KB 的 实际 组7内的数据? 如果可能,则通过费用,如果可能,则通过其他方式。

    关于

    亚历山德鲁·马泰

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

    尊敬的 Alexandru Matei:

    我的问题是,如果能够以一种有用的方式在银行7中有超过32 KB 的实际数据,而不会中断费用,我的问题是。 例如、如果可以拥有10个每个4000字节的数据块。 是否可以在不中断其工作方式的情况下将其存储在费用中?

    否、这在此器件中是不可能的。 此处可能的最大实际数据将仅小于32KB。

    我的问题如下。 有没有任何方法可以实际使用40KB 的 实际 组7内的数据? 通过费用(如果可能)或通过其他方式(如果不是)。

    如果您需要的数据大于32KB、我们可以执行两种操作:

    首先、我们应购买其他 Hercules 器件、如 TMS570LC4357

    您可以看到、该器件组7具有128Kb 内存。

    2.我们不应该使用 FEE 驱动程序,而只需要使用 FAPI 例程进行读写。 在这种情况下、我们没有虚拟扇区概念、在这里、我们可以手动利用存储体7的整个64KB。

    在这种情况下,问题是 VS2可用的空间不足以容纳已写入 VS1的所有有效数据块。 对我来说、这可能会导致数据丢失、数据损坏等。
    因此,在我看来,这看起来不像一个可用的配置,我们可以在库7中实际存储和使用40KB 的数据。

    您完全正确的这种行为,这种方法将产生数据丢失和损坏等。 甚至我们从未像这样进行过测试。

    --
    谢谢。此致、
    Jagadish。

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

    我了解。 感谢 Jagadish 的确认和澄清。

    我还有一个问题。 对于选项2、"除了只需要使用 FAPI 例程进行读取和写入"、将闪存组7严格用作 FAPI 例程的闪存是否有任何限制? 例如、我看到《RM44Lx 技术参考手册》SPNU608A 中的一些与 EEPROM 仿真相关的寄存器:

    是否需要进行任何配置才能将组7用作闪存? OR 就像将 FAPI 与组0一起使用一样简单(当然、使用不同的参数、例如组7、以及也使用 FAPI 初始化组7等)。

    关于

    亚历山德鲁·马泰

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

    P.S.我也得到了一个新的想法。 是否可以在混合模式下使用气缸组7?

    具体而言、使用2个物理扇区作为虚拟扇区、用于作为 EEPROM 的费用使用。
    其余14个物理扇区通过 FAPI 例程用作闪存。
    这是可行的吗?

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

    尊敬的 Alexandru Matei:

    是否需要进行任何配置才能将组7用作闪存? OR 就像将 FAPI 与组0一起使用一样简单(当然、使用不同的参数、例如组7、以及也使用 FAPI 初始化组7等)。

    无需任何额外配置即可将闪存组7用作闪存。 这种方法直接用作组0。

    我也在我的 TMS570LS3137、TMS570LC4357和 RM46电路板上进行了这些测试。 您可以在以下链接中找到这些示例代码。

    (+)[常见问题解答] TMS570LC4357:Hercules 的主要常见问题解答-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    (+)[常见问题解答] TMS570LC4357:适用于 Hercules 控制器的示例和演示(例如 TMS570x、RM57x 和 RM46x 等)-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    您可以下载并参考。

    具体来说,使用2个物理扇区作为虚拟扇区作为 EEPROM 的费用使用。
    其余14个物理扇区通过 FAPI 例程用作闪存。
    这是否可行?

    我从未测试过这个、但在测试过程中我看不到任何问题。 你可以这么做。

    --
    谢谢。此致、
    Jagadish。