Цитата(d7d1cd @ Dec 31 2013, 19:32)

А что за расширение файла .inc?
Привычка с прошлых проектов на других МК (уже и не помню когда первый раз такое расширение применил и почему)
Цитата(d7d1cd @ Dec 31 2013, 19:32)

А числовые константы описывать как то так #b'01000000 это норма? Это первое.
Тут как бы согласен, сам я так никогда числа не писал, но в IAR -> Assembler User Guide указано следующее:
Цитата
The following types of number representation are supported:
Integer type Example
Binary 1010b, b'1010
Octal 1234q, q'1234
Decimal 1234, -1, d'1234
Hexadecimal 0FFFFh, 0xFFFF, h'FFFF
Если из этих вариантов исключить привычное 0xFFFF, то для унификации применяеть суффикс системы исчисления либо в начале "<suf>'" либо в конце "XXXX<suf>". Но, к примеру если шестнадцатиричное число равно FFFF, то его надо записывать либо h'FFFF, либо 0FFFFh. Короче из-за добавления нуля ("ассоциируется" с заимствованием дополнительного байта, которого нет) мои рельсы съехали в сторону суффикса с апострофом. Короче это личный бзик в мозгу.
Цитата( @ Dec 31 2013, 19:32)

Второе: вставлять директиву include посреди кода - это со стороны смотрится... а точнее не смотрится вообще никак.
Хм... ну не знаю что лучше - перегружать основной файл проекта всякими векторами и данными о версии ПО или аккуратно вставить эти процедуры и данные в то место памяти, где им самое место... Без обид, на вкус и цвет как говорится.
Цитата(d7d1cd @ Dec 31 2013, 19:32)

Ты уверен, что правильно указываешь вершину стека 0х23FE? У тебя адрес 0х23FE стеком занят не будет никогда.
Это я понял, что одно слово между стеком и остальной памятью будет пустовать, пусть пока так, главное на этапе экспериментов то, что "не заползает ни на кого". Марафет вплоть до байта - позже, когда уверенно буду "рулить" этим камнем.
Цитата(d7d1cd @ Dec 31 2013, 19:32)

Про таблицу векторов прерываний: зачем вставляешь команду NOP?
Тоже пока затрудняюсь объяснить

Цитата(d7d1cd @ Dec 31 2013, 19:32)

По поводу обработки немаскируемых прерываний: открываешь даташит на микроконтроллер и смотришь что может быть источником немаскируемого прерывания.
Ты прав конечно.
Цитата(d7d1cd @ Dec 31 2013, 19:32)

Так же тебе надо изучить сигналы POR и PUC микроконтроллера.
И с системой сброса и с системой организации питания - первым делом, как без этого.
Цитата(d7d1cd @ Dec 31 2013, 19:32)

Я думаю, что немаскируемое прерывание не может заканчиваться командой RETI. Ведь после этой команды процессор должен продолжить выполнение прерванного кода, но этот код (скорее всего) вызвал немаскируемое прерывание.
Тут не уверен я. Думается, в стек при немаскируемом прерывании записывается адрес возврата, поэтому без RETI не обойтись. Покопаю про это поподробнее.
Цитата(d7d1cd @ Dec 31 2013, 19:32)

В обработчике немаскируемого прерывания можно определить что вызвало его, в зависимости от этого (если надо) выполнить какой-то код (допустим сохранить данные в МС) и перезагрузить программу.
Эт да.. Самое приятное анализировать, когда азы уже прочно усвоены, а нубовские ошибки - редкое исключение. Скорее бы уже дойти до этого состояния)