在本主题中、我将介绍 起始地址与可在闪存 API 编程中编程的字节数之间的关系。
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.
大家好!
如果我们 参考 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。