【发布时间】:2016-10-17 01:53:46
【问题描述】:
我在 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]
我不明白数据表如何计算有或没有幻象字节、三个或四个字节的指令?每页有多少个地址可用?
有人可以帮助我理解我的错误和/或获得一个好的观点吗?
【问题讨论】:
标签: memory flash-memory dspic