打印

[问]unsigned char code...为什么要code?

[复制链接]
18748|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mfrc531|  楼主 | 2007-6-21 19:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

unsigned char code CUSTOM[]={ //自定义字符
0x15,0x0a,0x15,0x0a,0x15,0x0a,0x15,0x0a, //CG_RAM 点阵1
0x0a,0x15,0x0a,0x15,0x0a,0x15,0x0a,0x15, //CG_RAM 点阵2
0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02, //CG_RAM 年
0x0f,0x09,0x0f,0x09,0x0f,0x09,0x13,0x00, //CG_RAM 月
0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00, //CG_RAM 日
};
如上所示
个人知道51是哈佛结构的,分数据存储区和代码存储区,

问题是为什么要把上面这么多的数据放到code区?
有什么讲究或好处么?
为什么不放到data区呢,甚至xdata区呢?

相关帖子

沙发
wjy1107| | 2007-6-22 07:53 | 只看该作者

这么做是为了节约片上的RAM阿

一般低端的单片机,片上的data空间只有几十个字节哦。所以只能存在程序空间中咯~

使用特权

评论回复
板凳
wjy1107| | 2007-6-22 07:54 | 只看该作者

还有,谁告诉你51一定是哈佛结构的哦!

使用特权

评论回复
地板
mfrc531|  楼主 | 2007-6-22 08:29 | 只看该作者

书上说是哈佛结构的

难道51的构架还有几种吗

使用特权

评论回复
5
lixun00| | 2007-6-22 11:11 | 只看该作者

从指令分开上看是哈佛结构

使用特权

评论回复
6
HWM| | 2007-6-22 11:18 | 只看该作者

因为你定义的数据是常量,放在DATA或XDATA区中浪费了,

故被定位在CODE(就是程序存储器)区内。

使用特权

评论回复
7
csq463276932| | 2011-3-28 11:34 | 只看该作者
谢谢,学习。

使用特权

评论回复
8
SHUJIEWS| | 2011-3-28 12:11 | 只看该作者
你只要搞清楚ROM是做什么用的,RAM做什么用的你会有更多收获

使用特权

评论回复
9
huangqi412| | 2011-3-28 12:34 | 只看该作者
你放在RAM区,也需要在ROM里占用同样的大小,   不然,上电时候,你RAM里指定数据从何而来?
反之,放在ROM的数据,只占RAM容量。
如果不需要修改,当然放ROM了。

使用特权

评论回复
10
huangqi412| | 2011-3-28 12:35 | 只看该作者
反之,放在ROM的数据,只占ROM容量。

使用特权

评论回复
11
abin0415| | 2011-3-28 21:46 | 只看该作者
明白一点了、

使用特权

评论回复
12
奥卡姆剃刀| | 2016-3-3 11:32 | 只看该作者
顶一个

使用特权

评论回复
13
autopccopy| | 2016-3-3 12:23 | 只看该作者
点阵数据(常量)当然放ROM,只读嘛。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

128

帖子

1

粉丝