首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]XD256默认的地址分配是怎样的?

[求助]XD256默认的地址分配是怎样的?

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

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

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

请参考这个帖子:

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

海纳百川  有容乃大

看过版主给的链接了,还有些地方不太懂!用向导生成的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开始的,前面的空间被堆栈占了。是不是说我定义的变量就没在第零页呢?

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

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

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

[em58][em58]
个人BLOG:http://blog.eccn.com/u/107300/index.htm
返回列表