Sagittarius (13.08.2007 17:19, просмотров: 1313)
А как компнды в ARM-mode выровнять на четные адреса? компилятор IAR 5.10. проц AT91SAM7SE512 Вот пробламка, в обработчике прерывания есть switch, по которому сгенерировано нечто в 1 байт:
DC8 0xA1
следующая компнда начинается уже по адресу 0x00000339, к моему удивлению работает (проц что, побайтно команды выбитать стал???) Но есть неприятность - не поставить брякпоинт, дебагер ругается на нечетный адрес, говорит "только на четное". Соответственно вопросы
1. Что это вообще такое? я считал что команды лежат по четным (Thumb) или кратным 4 (ARM) адресам?
2. можно ли выровнять код?
3. можно ли вызвать функцию thumb из обработчика прерывания и потом вернутся обратно? Пробовал вызвать - получается, но при возврате в обработчик на asm проц остается в thumb режиме и напарывается на ARM инструкции.
Спасибо.