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