hkzxc1991 发表于 2026-1-20 15:14:15

stc32g12k128 eeprom咨询

如下图,当eeprom大小设置128k时,程序是从FE0000h开始的
如果我使用iap方式操作0x0000开始的数据,会不会把我程序给覆盖了?

DebugLab 发表于 2026-1-20 21:35:56

EEPROM从后向前分配,低地址为0

程序固定从FF0000H开始运行

FE0000H有LJMP,说明你的程序大于64K或手动指定了CODE地址
此时使用IAP方式擦写0x0000开始的数据,会覆盖程序

hkzxc1991 发表于 2026-1-21 08:49:00

DebugLab 发表于 2026-1-20 21:35
EEPROM从后向前分配,低地址为0

程序固定从FF0000H开始运行


这么理解您看对不对哈
对于下面这个小于64k的程序,程序是从0FF0000H开始的,下发程序时设置用户eeprom大小为64kb,程序代码中iap操作0x0000开始的区域实际是操作0FE0000H-0FEFFF0H区域,这样的话永远不会有擦除自己代码的风险了吧

DebugLab 发表于 2026-1-21 09:18:26

hkzxc1991 发表于 2026-1-21 08:49
这么理解您看对不对哈
对于下面这个小于64k的程序,程序是从0FF0000H开始的,下发程序时设置用户eeprom大 ...

是的,但0FE0000H-0FEFFF0H应该为0FE0000H-0FEFFFFH

hkzxc1991 发表于 2026-1-21 09:23:11

DebugLab 发表于 2026-1-21 09:18
是的,但0FE0000H-0FEFFF0H应该为0FE0000H-0FEFFFFH

了解了,感谢
页: [1]
查看完整版本: stc32g12k128 eeprom咨询