数据存储区和程序存储区

[复制链接]
 楼主| 46621295 发表于 2009-2-21 11:24 | 显示全部楼层 |阅读模式
程序中需要定义一个字库,下面代码我目前使用的方式,<br />#pragma&nbsp;romdata&nbsp;txtCode=0x1b000<br />rom&nbsp;unsigned&nbsp;char&nbsp;SnNumberCode[]={&quot;20081234&nbsp;&nbsp;&quot;};<br />//还有其他字符图画定义<br />#pragma&nbsp;romdata<br />把字库定义在了程序存储区。<br />我想问的是,这个是不是不能定义在数据存储区?如果定义在数据存储区是不是每次掉电时就丢失了?谢谢!
xieyuanbin 发表于 2009-2-21 14:00 | 显示全部楼层

你的理解不错

数据区大概有两个,一个是易失性存储器,即MCU的内存,掉电后数据消失。另一个是非易失性存储器,即MCU的EEPROM,掉电后不消失。但并不是每个MCU都有EEPROM。<br />一般的常量都放在程序区。
 楼主| 46621295 发表于 2009-2-21 18:31 | 显示全部楼层

我用的18F6720有EEPROM

我用MCU是有EEPROM的,同时我还扩展了外部数据存储芯片24LC515。当前程序里读取写入外部数据存储空间时用的I2C,过程很耗时。我想问如果我想把数据库定义在MCU的EEPROM,是不是直接将romdata改成udata就可以了?即,<br />#pragma&nbsp;idata&nbsp;txtCode=0x1b000<br />unsigned&nbsp;char&nbsp;SnNumberCode[]={&quot;20081234&nbsp;&nbsp;&quot;};<br />//还有其他字符图画定义<br />#pragma&nbsp;idata<br />
 楼主| 46621295 发表于 2009-2-21 18:54 | 显示全部楼层

我刚才试了一下

如果要定义在MCU自带的EEPROM内也是可以的,但字库不能大于一页的大小,对我的应用不满足要求。而直接定义在程序存储区好像就没有一页大小限制的问题。
xieyuanbin 发表于 2009-2-22 11:04 | 显示全部楼层

你看看数据手册

EEPROM一般是1K的容量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

100

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部