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.

[FAQ] [参考译文] [常见问题解答] RM46L852:在闪存 API 编程中可以编程的起始地址与字节数之间的关系

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1332944/faq-rm46l852-relation-between-start-address-and-number-of-bytes-that-can-be-programmed-in-flash-api-programming

器件型号:RM46L852

在本主题中、我将介绍 起始地址与可在闪存 API 编程中编程的字节数之间的关系。

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

    大家好!

    如果我们 参考 F021闪存 API 手册中突出显示的以下行:

    *F021闪存 API 参考指南(v2.01.00)(修订版 H)(TI.com)

    这意味着、 起始地址加上我们尝试写入的字节数不应超过存储体数据宽度。

    例如、考虑 RM46L852 器件、 它 具有16字节的组数据宽度:

    您可以看到、编程宽度为144位、其中128位为数据、16位为 ECC。 因此、存储体数据宽度将为16字节(128/8)。

    因此、这意味着可能的数据写入方式如下:

    示例:

    我正在尝试在不同的地址写入8个字节 、例如0xF0200000、 0xF0200014 、0xF0200028、 0xF020003C 和0xF0200040 。

    在 0xF0200000处写入的1、8字节:

    该地址可以写入16*N(16*0xF020000),因此根据前面在该地址给出的表,我们可以写入16个字节。 我们这里只写入8个字节、这样写入就不会有任何问题。

     在 0xF0200014处写入2. 8个字节

    该地址可以写入16*N+4 (16*0xF020001+4),因此根据该地址上的给定表,可以写入12个字节。 我们这里只写入8个字节、这样写入就不会有任何问题。

     在 0xF0200028处写入3. 8个字节

    该地址可以写为16*N+8(16*0xF020002+8),因此根据该地址上一个给定的表,我们可以写入 8个 字节。 我们这里只写入8个字节、这样写入就不会有任何问题。

     在 0xF020003C 处写入4. 8字节

    该地址可以写入16*N+C (16*0xF020003+0xC),因此根据前面在该地址提供的表,我们只能写入 4个字节。 在这里、我们将写入8个字节、但该写入是不可能的。 这意味着在这种情况下数据不会写入存储器。

    在 0xF0200040处写入的5、8个字节:

    该地址可以写入16*N(16*0xF020004 ),因此根据前面在该地址给出的表,我们可以写入16字节。 我们这里只写入8个字节、这样写入就不会有任何问题。

    以下是我针对上述情况的实际测试数据:

    我附上经测试的项目供参考:

    e2e.ti.com/.../8765.FAPI_5F00_TEST_5F00_RM46.zip

    --
    谢谢。此致、
    Jagadish。