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