Есть примеры использования SWI в LPC.
Это выглядит примерно следующим образом:
Объявление SWI обработчика
#pragma swi_number=0x10
__swi __arm u16 SWI_Func(int a)
{
return 0;
}
Вызов
SWI_Func(1);
Одним словом работаем как с обычной функцией, только её адрес находится в специальной таблице,
меняется режим работы на привилегированный, и запрещаются прерывания.
Но когда я вызываю SWI в ST911, - выполняется инструкция SWI 0x10, после чего меня выкидывает
в SWI_Handler(), файла 91x_it.c из stdlib. Вообщем вместо обработки конкретной функции, у меня
просто возникает SWI прерывание.
Что я делаю не так?