|
发表于 2007-12-11 22:54:43
|
显示全部楼层
需要注意的时,外部扩展的RAM地址必须紧跟在内部RAM后面,中间不能出现"空地址".
这句怎么理解?
另外,我在看m162的DS时,看到:
因为外部存储器在那个图中的内部存储器之后才被映射,所以呢,在外部存储器的头1280字节的空间是不可以寻址的,这就表现为不能存取外部存储器的0X0000-0X04FF。当然有个特殊的情况,当使用的外部存储器小于64K(典型值32K)时,外部存储器的0X0000-0X04FF范围可以通过访问0x8000 to 0x84FF进行存取(想一想为什么?)。因为高位地址线A15没有接入,外部寻址范围只有0X0000-0X7FFF,当访问0x8000 to 0x84FF时,低14位地址线定位在外部0X0000-0X04FF处(或许大家会疑惑,怎么不是访问的内部0X0000-0X04FF?请注意了,我们现在访问的是外部存储器,因为地址范围为0x8000 to 0x84FF,不是内部存储器,所以自然不是定位在内部0X0000-0X04FF范围)。不推荐大家对0x84FF以外的范围进行访问,因为这将改变 0X04FF-0X7FFF的数据,因为低14位地址是重复的。在应用中,地址在0x0500 to 0x84FF范围的存取是连续的线性的,只有0X0000-0X04FF有写特;
上面的这些与你所说的"空地址"有什么联系?
byte a[20480] @0x0500;
我这样的定义可以否,
另外附上一此在CAVR上的截图,请马老师看一下如何设置?
![](http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_187705.jpg)
![](http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_187706.jpg)
我现在是用M162配32K,一般A15接62256的CS脚,在程序中要对A15脚进行编程吗?
谢谢~! |
|