gpt4 book ai didi

embedded - 以 block (1024 字节)删除闪存

转载 作者:行者123 更新时间:2023-12-02 08:01:04 26 4
gpt4 key购买 nike

我正在制作一个引导加载程序。在向该 block 中的寄存器写入任何内容之前,我必须删除 1024 字节的内存。即使我想写2个字节,我也被迫删除1024个字节。我的问题是我不知道每个 block 从哪里开始。例如,假设我想将以下字节写入该地址。

地址: 0x198F0

字节:C80E00010001616FDFECD6F08C8C92EC

当我尝试删除从地址 0x198F0 开始的 1024 个字节时,我注意到它是从 0x19800 开始删除的。

我如何知道每个 block 从哪里开始,以便我可以在软件中计算它?

我想知道这一点的原因是我可以在删除之前将整个 block 复制到内存中,然后修改它,然后将其写回到同一个 block 。我正在使用PIC18f87J11使用 MPLAB XC8 编译器。我希望它清楚我想要做什么,否则请在评论中告诉我。

谢谢!

最佳答案

PIC18f87J11 的闪存 block 是 1024 字节对齐的。要计算某个 block 的起始地址,请将地址的最后 10 位设置为 0,因此您可以使用:

StartAddress = AddressPtr and 0xFFFC00

就您而言:

0x198F0 and 0xFFFC00 = 0x19800 

关于embedded - 以 block (1024 字节)删除闪存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23917369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com