找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4006|回复: 5
打印 上一主题 下一主题
收起左侧

STC8G2K64S4单片机的IAP应用问题

[复制链接]
跳转到指定楼层
楼主
STC8G2K64S4单片机 资料上介绍可以IAP.把FLASH 作为EEPROM使用,问题:如何定义写入和读取地址?具体说,如果编程器下载时候定义EEPROM空间为2K,此芯片的擦除地址如何定义。有的资料提到入口 DPTR.没看明白。其中有一行:256          IapErase(ulong 0xCfff); 这一行编译完后,总提示:myyao.c(256): error C141: syntax error near 'unsigned'     程序不完整,发上来添乱,就没发。请老师们解惑下。谢谢!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:390416 发表于 2021-3-26 18:13 | 只看该作者
直接地址0x0000 就行了
回复

使用道具 举报

板凳
ID:213173 发表于 2021-3-26 20:56 | 只看该作者
STC单片机的EEPROM区有固定地址和非固定地址。上图中注明EEPROM大小的是有固定地址及范围的,注明IAP是非固定地址。IAP使用EEPROM时把地址选在用户程序占用FLASH的剩余扇区,其大小就是剩余扇区的大小。见下图中红框为用户程序占用的FLASH大小,从下一个扇区起都可作为EEPROM。地址搞错会把用户程序擦除导致出错。




回复

使用道具 举报

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

使用道具 举报

5#
ID:213173 发表于 2021-3-28 17:18 | 只看该作者
青桑叶 发表于 2021-3-28 09:07
谢谢两位老师的解答。有老师们在,是留恋51论坛的最大原因!!我提的这个问题根本原因还是对硬件不熟悉。看 ...

STC系列EEPROM固定大小的芯片的首地址也不全是从0x0000开始,比如STC89C52RC是从0x2000开始。重要的是要查资料。楼主选的STC8G2K64S4这款是没有固定地址的,使用EEPROM时把地址选在用户程序占用FLASH的任意剩余扇区。
回复

使用道具 举报

6#
ID:213173 发表于 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使用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表