Добрый день!
Среда разработки Keil 4.72, мк LPC2478.
typedef unsigned int * pInt32U;
#define Adr 0xE0084000
pInt32U a = (pInt32U)Adr ;
pInt32U b = (pInt32U)Adr +1;
pInt32U c = (pInt32U)Adr +2;
pInt32U d = (pInt32U)Adr +3;
В результате:
a = 0xE0084000,
b = 0xE0084004,
c = 0xE0084008,
d = ЛЕВЫЙ АДРЕС!!!!
Если отключить оптимизацию компилятора (Level 0 -O0), то результат становится ожидаемым:
a = 0xE0084000,
b = 0xE0084004,
c = 0xE0084008,
d = 0xE008400C
Указатели в модуле объявляются глобально.
В "чистом" проекте данный код работает нормально.
В чем может быть проблема?