В ставлю свой пятак. 1. Програмные прерывания отличаются от IRQ/FIQ тем что после выхода из обработчика исаолняется следующая за SWI команда. В IRQ/FIQ та которая была прервана. 2. Вызов как уже сказали исполняется в превелегерованном режиме. 3. По сути это форма вызова функции операционой системы (если она есть).
Если интересует как это делается в GCC, то покажу пример.
|