lotus 发表于 2024-10-23 16:11:43

eeprom只能读,不能擦除和写

我有一个问题,我使用stc8g2k64s芯片的官方例程IAP操作eeprom,出现第一个扇区只能读,不能擦除和写,只要对第一个扇区做出写或者擦除的动作,整个系统就卡死了,操作后面的扇区又不会出现这种问题,有没有人和我遇到相同的问题啊

大锤子 发表于 2024-10-23 17:18:56

围观,我用试验箱测试掉电保护是没问题的。

DebugLab 发表于 2024-10-23 19:58:07


这里的设置是不是和程序中不同

lotus 发表于 2024-10-24 16:34:01

我修改了代码存储位置,用户eeprom设置为最大64k

Lkck8210 发表于 2024-10-24 16:57:31

IAP系列单片机的程序区和EEProm区是共享空间的
你把EEProm设为64k,代表程序区也包含在EEProm空间里了
你擦写EEProm就等于把程序擦写掉,当然会死机

lotus 发表于 2024-10-24 17:35:11

Lkck8210 发表于 2024-10-24 16:57
IAP系列单片机的程序区和EEProm区是共享空间的
你把EEProm设为64k,代表程序区也包含在EEProm空间里了
你擦 ...

可是我不是从0xD800地址开始存放程序的吗,擦写前面的怎么会冲突,还是说我的理解有问题

xxkj2010 发表于 2024-10-24 18:36:19

把EEProm设为64k,太大了

Lkck8210 发表于 2024-10-25 09:35:35

lotus 发表于 2024-10-24 17:35
可是我不是从0xD800地址开始存放程序的吗,擦写前面的怎么会冲突,还是说我的理解有问题 ...

那是外接程序存储器用的

2. Off-chip Code memory
表示你在片外接的Rom的开始地址和大小,如果你没有外接程序存储器,那么不要填任何数据.我们在这里假设使用一个片外的Rom,地址从0x8000开始(不要填成8000,如果是
8000,是10进制的数,一般填16进制的数),Size为外接Rom的大小.假设接了一块0x1000字节的rom.最多可以外接3块Rom,如果你还用了别的地址,那么就添上.

来源:Keil C51详细设置

乘风飞扬 发表于 2024-10-25 09:54:34

建议参考官方最新的IAP在线升级例子,例程包可在官网下载:
https://www.stcai.com/zxsj


STC8G2K64S4系列由于 xdata 只有2K,需要修改代码里面的 DfuFlag 变量地址在2K空间末尾:
DWORD xdata DfuFlag _at_ 0x07fc;
然后就可以按照例程里面的说明书接收,烧录例子到芯片里面进行验证,通过验证通过后再进行修改或者移植。
页: [1]
查看完整版本: eeprom只能读,不能擦除和写