阅读:3899回复:9
如何知道程序所需的空间大小啊?
用的是CY68013,说有8K的空间,keilG给出的结果如下
Program Size: data=56.5 xdata=4601 code=4045 code的意思应该是程序的大小,谁来给解释一下data和xdata各是什么意思?总的空间大小应该如何计算? 谢谢! |
|
沙发#
发布于:2004-11-16 17:11
data:内部ram空间
xdata:外部ram空间 code:程序代码占用空间 |
|
板凳#
发布于:2004-11-17 09:25
可是CY68013没有外部存储器,这个xdata怎么解释?
而且目前这个编译结果运行的也挺好的,xdata在什么地方? |
|
地板#
发布于:2004-11-17 12:13
外部ram仅仅根据51单片机核心定义,一般定义256字节为片内ram,超过256的为片外ram,虽然你的单片机没有外扩ram,但是在内部扩充了ram.在编译时也作片外处理
|
|
地下室#
发布于:2004-11-17 15:02
这样啊?那岂不是说这样的结果已经存储器溢出了
data56.5 +xdata=4601 +code=4045=8702.5 但是程序似乎还在跑,而且也没发现什么故障! |
|
5楼#
发布于:2004-11-17 21:38
老兄!ram是内存,code是程序空间,两个怎么能相加呢?你计算你pc机的空间会把你的内存空间和硬盘空间相加吗?
|
|
6楼#
发布于:2004-11-18 09:37
不好意思,以前没弄过单片机,可能有些概念不是很清楚。不过无论是code还是ram都是放在单片机内部的存储空间不是吗?而手册里说The 56- and 100-pin FX2 chips have no facility for adding off-chip program or data memory. Therefore,
the Main RAM must serve as both program and data memory. 这句话的意思难道不是说code+data的和应该小于ram的大小么? |
|
7楼#
发布于:2004-11-18 09:43
动动手,就知道了,看那么多,没什么意思
|
|
|
8楼#
发布于:2004-11-18 11:00
你这句话的意思应该是你的芯片不支持片外程序空间和ram空间的扩展(可能是没有外扩总线),所以只有使用芯片的主ram来为程序和数据存储服务。
没有关系,谁都有开始不会的时候。我当初就因为搞不清什么是内存,什么是硬盘被导师大骂一顿! :D还是7楼的说得对,做硬件多动动手就好啦 |
|
9楼#
发布于:2004-11-18 16:28
其实你看看CY68013的芯片框架图就应该清楚了,芯片里除了核心外就只有一块8.5k的ram可以作存储数据用的,所以这块ram就只能给程序和数据共用,而一般的芯片程序存储区(code)和数据存储区(data或xdata)是分开的,各自有各自的存储空间!另外data不用计算在内,因为是核心里的256byte空间,与8.5k ram无关,对于CY68013,要看ram的使用量,把xdata和code加起来即可。 :D
|
|