Tramp 0 18 мая, 2005 Опубликовано 18 мая, 2005 · Жалоба Может, кто сталкивался... Прооблема такая: в разных файлах проекта я написал несколько обработчиков прерываний следующим образом: #pragma vector=17 __irq __arm void WizNet_IRQ(void) { ... } При компиляции один файл компилится нормально, на двух других компилятор выдает ошибку: Internal Error: [AsmLine - OgAsm]: Error[414]: Bad instruction alignment. ARM instructions must be 32-bit-aligned and Thumb instructions must be 16-bit-ali LDR PC,[PC,#24] Никто не подскажет, отчего это может происходить (пакет EWARM v4.20a)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 19 мая, 2005 Опубликовано 19 мая, 2005 · Жалоба Может, кто сталкивался... Прооблема такая: в разных файлах проекта я написал несколько обработчиков прерываний следующим образом: #pragma vector=17 <{POST_SNAPBACK}> vector - суть адрес, он не может быть не кратным 4. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
0men 2 19 мая, 2005 Опубликовано 19 мая, 2005 · Жалоба для LPC, к примеру, vector может быть: #define RESETV 0x00 /* Reset */ #define UNDEFV 0x04 /* Undefined instruction */ #define SWIV 0x08 /* Software interrupt */ #define PABORTV 0x0c /* Prefetch abort */ #define DABORTV 0x10 /* Data abort */ #define IRQV 0x18 /* Normal interrupt */ #define FIQV 0x1c /* Fast interrupt */ У вас, судя по __irq , должно быть так #pragma vector=IRQV __irq __arm void WizNet_IRQ(void) { ... } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tramp 0 30 мая, 2005 Опубликовано 30 мая, 2005 · Жалоба Спасибо, понял Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться