我在 dsPic33EP256MC502 应用程序上工作,我需要在闪存上写入以保存配置。除了擦除页面之外的所有工作,我擦除太多或太多。
数据表说页面擦除页面大小是“1024条指令”(3072字节)由于指令是24位+幻象字节,指令是32位对齐的我们需要两个地址单元来寻址一条指令
示例:
0x000000:[幻影][指令1][指令1][指令1]
0x000002:[幻影][指令2][指令2][指令2]
0x000004:[幻影][指令3][指令3][指令3]
0x000006:...
A/ 我天真地计算1024 条指令页面大小,例如:
- 4096 字节(包括虚字节)[1024 条指令 x 4 字节]
- 3072 个有用字节。[4096 字节 x 0.75]
- 所以我们需要2048个地址单元[4096 / 2]来寻址一个页面:每页0x800地址
B/我做了一个经验测试来验证,我发现每页有 0x600 地址,这意味着 1024 条指令是:
- 0x600 是 1536 地址
- 3072 字节(包括虚字节)[1536 x 2 字节]
- 2304 个有用字节[3072 字节 x 0.75]
- 我发现擦除页面是768 条指令 [3072 / 4]
我不明白数据表如何计算有或没有幻象字节、三个或四个字节的指令?每页有多少个地址可用?
有人可以帮助我理解我的错误和/或获得一个好的观点吗?