标题: STC8G2K64S4单片机的IAP应用问题 [打印本页]

作者: 青桑叶    时间: 2021-3-26 16:09
标题: STC8G2K64S4单片机的IAP应用问题
STC8G2K64S4单片机 资料上介绍可以IAP.把FLASH 作为EEPROM使用,问题:如何定义写入和读取地址?具体说,如果编程器下载时候定义EEPROM空间为2K,此芯片的擦除地址如何定义。有的资料提到入口 DPTR.没看明白。其中有一行:256          IapErase(ulong 0xCfff); 这一行编译完后,总提示:myyao.c(256): error C141: syntax error near 'unsigned'     程序不完整,发上来添乱,就没发。请老师们解惑下。谢谢!!

作者: 人人学会单片机    时间: 2021-3-26 18:13
直接地址0x0000 就行了
作者: wulin    时间: 2021-3-26 20:56
STC单片机的EEPROM区有固定地址和非固定地址。上图中注明EEPROM大小的是有固定地址及范围的,注明IAP是非固定地址。IAP使用EEPROM时把地址选在用户程序占用FLASH的剩余扇区,其大小就是剩余扇区的大小。见下图中红框为用户程序占用的FLASH大小,从下一个扇区起都可作为EEPROM。地址搞错会把用户程序擦除导致出错。





作者: 青桑叶    时间: 2021-3-28 09:07
谢谢两位老师的解答。有老师们在,是留恋51论坛的最大原因!!我提的这个问题根本原因还是对硬件不熟悉。看了你们的解疑,我又围绕“从0x0000开始 "和固定地址和非固定地址 去看资料,原来是设置了eeprom后,就相当于自动划分出一个单独的空间。IAP操作时,地址是从0x0000开始。 是否这样?请老师们继续斧正!感谢!!!
作者: wulin    时间: 2021-3-28 17:18
青桑叶 发表于 2021-3-28 09:07
谢谢两位老师的解答。有老师们在,是留恋51论坛的最大原因!!我提的这个问题根本原因还是对硬件不熟悉。看 ...

STC系列EEPROM固定大小的芯片的首地址也不全是从0x0000开始,比如STC89C52RC是从0x2000开始。重要的是要查资料。楼主选的STC8G2K64S4这款是没有固定地址的,使用EEPROM时把地址选在用户程序占用FLASH的任意剩余扇区。
作者: wulin    时间: 2021-3-28 17:59
青桑叶 发表于 2021-3-28 09:07
谢谢两位老师的解答。有老师们在,是留恋51论坛的最大原因!!我提的这个问题根本原因还是对硬件不熟悉。看 ...

楼主理解的不准确。假设楼主选用的是STC8G2K60S4,其EEPROM固定4K,地址范围0x0000到0x1000。也就是8个扇区大小。实际楼主选的STC8G2K64S4这款EEPROM是没有固定地址的。假设楼主程序占用48K。占用FLASH地址从0x0000~0xC000,从下一个扇区0xC200~0xFFFF范围都可以自定义为EEPROM使用。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1