Цитата(Sergey_K @ Dec 10 2008, 13:38)

А для какой цели приоритет прерываний от системного таймера выставляется минимальным?
По-моему мнению, приоритет системного таймера должен быть самым низким, но выше чем у программнго прерывания. Это логично, но...
Ядро дает возможность назначать уровнеь приоритета прерываниям от 0 до 255 (т.е. используется 8 бит). При этом производитель конкретного кристалла может уменьшить количество бит приоритета, например, STM32 использует 4 бита. Фишка в том, что, цитирую:
Цитата
The priority registers are stored with the implemented values first. This means that if
there are four bits of priority, the priority value is stored in bits [7:4] of the byte.
However, if there are three bits of priority, the priority value is stored in bits [7:5] of the
byte.
Таким образом, чтобы назначить приоритет системному таймеру чуть выше чем у программного прерывания, необходимо привязаться к конкретному процу, а не к ядру, что, мне лично, очень не хочется (сейчас порт не привязан ни к какому конкретному процу, можно юзать его с любым).
Цитата(Ivan A-R @ Dec 10 2008, 14:21)

Ок. Значит есть смысл протянуть свои шаловливые ручёнки в этом направлении. %)
Думаю перейти на GCC будет достаточно легко. Порт содержит только один, специфический для компилятора момент - используется директива принудительного встраивания функции (_Pragma("inline=forced")). Думаю у GCC есть что-то подобное. Да в ассеблерном файле пара директив (выравнивание, да thumb режим). И все.