Цитата(igorsk @ Apr 24 2010, 04:15)

Placing ARM function qualifiers__irqНасколько я в курсе, порядок вызова FIQ ничем не отличается от IRQ, так что можно использовать тот же самый атрибут __irq.
Про __task нашел
старую доку:
Честно говоря слабо представляю, зачем такое может понадобиться, но думаю, что отсутствие этого атрибута вряд ли что-то сломает.
Так то оно так. Только в случае __irq компилятор вставляет сохранение контекста в стеке, а быстрое прерывание имеет свои плюсы - R8-R12 заменяются аппаратно и их вполне может хватить для обработки прерывание. Т.е. операции сохранения и восстановления контекста компилятор может и не воткнуть как в первом случае. Я думаю разница только в этом.
По поводу __task:
К сожалению я строю свою ОС. И в процессе этого строительства изучаю АРМ. Я много уже выслушал на свой счет, но МНЕ ТАК УДОБНО.
Когда я дошел до того момента, когда мои функции становятся потоками - я нуждаюсь в таком атрибуте как __task.
На данный момент я использую такой метод:
pTmpContext->RegistrLR = ((unsigned int) Routine) + 4;
И этими четырьмя байтами обхожу ту самую преамбулу. Но я не могу гарантировать, что эта преамбула будет состоять всегда только из одной команды.
Поэтому __task - было бы не плохо иметь в арсенале.