问题成立,但抬杠的意义大过实际的意义。你一定要这样做当然可以,只要记得在PRM文件里保留绝对定位的地址空间。<br /><br />KEIL-C以51系列为平台(国内绝对如此),给绝对定位的变量地址自动保留空间或许有一定的道理。因为在传统的51上其周边功能模块少的可怜,往往要用很多辅助芯片实现特定的周边接口功能,例如:ADC或DAC,键盘显示接口,端口扩展等等。这些扩展的电路和51的接口都是以XDATA空间地址映射的方式实现,硬件固定了地址译码后软件就只能绝对定位了。想当年90年代初用PAL/GAL,绝大部分场合都是为了搞定这些地址译码。<br /><br />除了51,现在其它常用的单片机如MCHP, FSL或ATMEL,加上大量日系单片机,本身带有丰富的周边功能模块,是真正的<font color=#0000FF>单片</font>机。针对片内资源的寄存器地址已知且固定,配合的C语言编译系统缺省已经将他们保留,不包括在开放给用户的RAM区域内。用户自定义的变量<font color=#FF0000>实在没有任何必要进行绝对定位</font>。我很想听听谁能说出一个实际的理由来证明需要自己绝对定位变量,一起交流交流。
|