请教版主:我想在X系列单片机中的EEPROM下定义几个常量,如果我象“定义1”那样定义,取eep1时是从unpaged EEPROM的开始$c00取的,但在s19文件中根本就没有写EEPROM的代码,烧写结果EEPROM是空的。 定义1: SEGMENTS EEPROM = READ_ONLY 0x0C00 TO 0x0FFB; END PLACE EEPCONST INTO EEPROM END #pragma CONST_SEG EEPCONST const volatile byte eep0 =0x00; const volatile byte eep1 =0x00; const volatile byte eep2 =0x37; a=eep1; //ldab #$c00 如果我象“定义2“那样定义,EEPROM编程没有问题,但取eep1时却按$800地址取的,请问我应该怎样定义? 定义2: SEGMENTS EEPROM_FF = READ_ONLY 0xFF0800 TO 0xFF0BFF; END PLACE EEPCONST INTO EEPROM_FF END #pragma CONST_SEG EEPCONST const volatile byte eep0 =0x00; const volatile byte eep1 =0x00; const volatile byte eep2 =0x37; a=eep1; //ldab #$800 还有一个问题,为什么即便是我使用了volatile,如果eep0我没有使用的话,它还是被优化掉了?肯请版主回答,谢谢! |