各位大哥:小弟正在用Mega128,希望对其外部存储区进行扩展,由于128是64K的地址空间,并且0~0x10ff是内部资源占用,只能是用0x1100~0xffff,我在定义的时候,发现个问题: //declare memory mapped variables extern unsigned char ss[256];
//define mappings void mapping_init(void) { asm( ".area memory(abs)
" ".org 0xFFF0
" " _ss:: .blkb 256
" ".text
" ); } 我做如上定义:使用最后的16个地址,但是我定义的数组超过了16个,ICC 编译以后居然没有错误,不知道为什么? 那么,当出现超过16个字节的数据的时候,单片机的地址应该是怎样变化的?
谢谢 |