Board logo

标题: [求助]XD256默认的地址分配是怎样的? [打印本页]

作者: wangnan    时间: 2008-5-20 15:59     标题: [求助]XD256默认的地址分配是怎样的?

新手,刚开始接触Freescale单片机,目前在用XD256。看论坛中有的帖子,提到RAM的第0页的概念,但是在pdf文档中无法找到。

1。是否定义位操作变量最好都是放到第0页?

2。 如何定义第0页的数据段??在prm文件中定义是吗?怎么定义呢?


作者: strongchen    时间: 2008-5-21 11:51

请参考这个帖子:

http://bbs.eccn.com/ecbbs/dispbbs.asp?boardID=3&ID=83424&page=1


作者: wangnan    时间: 2008-5-21 23:15

看过版主给的链接了,还有些地方不太懂!用向导生成的project,prm文件开头如下:

SEGMENTS /* here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. All addresses are 'logical' */
/* Register space */
/* IO_SEG = PAGED 0x0000 TO 0x07FF; intentionally not defined */

/* non-paged EEPROM */
EEPROM = READ_ONLY 0x0C00 TO 0x0FFB;

/* non-paged RAM */
RAM = READ_WRITE 0x2000 TO 0x3FFF;
------------------------------------------------------------------------------------------------------------------------------------------------------------

是不是上面的定义意味着我的前面的2K地址默认被片上外设寄存器占用,然后EEPROM占据1K空间,用户RAM从0x2000开始占据8k空间。

那么,所谓的第零页指的是哪段空间呢?默认的PRM里面好像没有定义所谓的MY_ZEROPAGE啊?

其次,我自己定义了几个联合体,使用对位操作时看反汇编代码就是BSET,BRCLR,BCLR等等,这应该就是汇编的位操作指令啊。那是不是说我定义的变量就没问题呢?我看了下变量地址好像从0x2100开始的,前面的空间被堆栈占了。是不是说我定义的变量就没在第零页呢?


作者: 康桥人    时间: 2008-5-22 08:41

"0x0C00 "地址就含有分页的信息,所谓分页,也是有地址的,地址的长度不同.对于非分页存储元而言,只用16位地址线就可以访问了,然而对于分页的地址,就得用24位地址线去访问他.

我感觉对于初学单片机者,最先没有太多的必须去关注其存储单元以及内存结构与分布,有很多东西,具有连带的效应,当你知道其中的一些后,另一些也自然的也明白了.

其实我弄单片机,弄了很长的时间,没有怎么关注其内存的结果,他对于一个新手确实不好理解.当你学会用他了,其他的也就自然明白了.还有PE,PE固然好,省了不事情,但是如果自己写程序,特别是一个些外设的初使化问题,你就会对其结构有一个较深刻的认识,也就自然的明白了。这也我一直自己写代码的原因。

[em58][em58]




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0