找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机IAP记忆读写怎么知道从哪个地址开始写入

[复制链接]
跳转到指定楼层
楼主
ID:1041297 发表于 2023-3-15 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机IAP记忆读写怎么知道从哪个地址开始写入,请大家给我讲讲,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2023-3-15 12:15 | 只看该作者
其实不难,看芯片手册
回复

使用道具 举报

板凳
ID:1041297 发表于 2023-3-15 15:52 | 只看该作者
芯片手册里的IAP没看懂,所有跑来问
回复

使用道具 举报

地板
ID:155507 发表于 2023-3-15 16:07 | 只看该作者
以51单片机为例:其存储器分为三块。
1、程序存储器:可寻址空间64K,用于存放用户的程序,CPU取指令只能在此空间。
2、外部分扩展存储器:可寻址空间64K,用于存放数据,CPU无法在此空间取指令。
3、内部分RAM:256字节。这里略去功能介绍。

问题来了:如果用户弄了2K的EEPROM,如何让它能被CPU寻址(访问)到呢?
有两种方案:
1、程序一般用不了64K的全部空间,于是在【程序存储器】中挖出2K的空间,将它做成EEPROM。这是STC一种做法。例如:IAP15Fxxxx型号芯片。
由于程序存储器通常只能在烧录时写入,而EEPROM却需要在程序运行中,由程序读、写或擦除,为此STC又特意开发了一套写、擦它的方式。但读取仍可以用通用的指令进行,如:MOVC A, @A+DPTR。
这种方案好处是:无需单独再做EEPROM,直接利用【程序存储器】的FLASH空间当作EEPROM用,且大小空间比较自由灵活,用不完的FALSH空间可以随便用。
这里有一个风险:比如:0000-11FFH放的是程序,如果你把此区域当作是EEPROM,对它进行写、擦操作,则程序就被破坏掉了。所以这个方案需要你知道程度占多长?哪些区域是程序用不到的地方。
不过风险中,也有一个重要的好处:可以用程序,修改自己的程序!例如,程序在运行中就能进行自我升级:擦除原来的程序重新写入新的程序!这是高级用法,就不在此介绍了。

2、在【外部分扩展存储器】中挖出2K的空间,将它做成EEPROM,这是常用的方式,不多介绍了。
楼主用C语言写程序,两种方式无所谓好坏之分。但必须知道EEPROM的数据是在哪个区域,因为你在定义一个EEPROM中的数据变量时,需要用到。
如果不考虑在线或远程升级程序,建议用第2种方式的EEPROM芯片,需要考虑的问题少,不易出错。


回复

使用道具 举报

5#
ID:406082 发表于 2023-3-15 16:42 | 只看该作者
你用的是STC15系列还是其它系列,前几天我用了SYC15W204S,用IAP的时候EEPROM是从0000H开始的。
回复

使用道具 举报

6#
ID:1041297 发表于 2023-3-15 17:56 | 只看该作者
mos03 发表于 2023-3-15 16:42
你用的是STC15系列还是其它系列,前几天我用了SYC15W204S,用IAP的时候EEPROM是从0000H开始的。

HC89F0541
回复

使用道具 举报

7#
ID:1041297 发表于 2023-3-15 17:56 | 只看该作者
mos03 发表于 2023-3-15 16:42
你用的是STC15系列还是其它系列,前几天我用了SYC15W204S,用IAP的时候EEPROM是从0000H开始的。

请问你是怎么看它是从0000H开始的
回复

使用道具 举报

8#
ID:1034262 发表于 2023-3-16 10:05 | 只看该作者
看手册EEPROM那一章
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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