У меня есть еще один вопрос по поводу встроенной инструкции по сборке, касающейся переключения контекста.Этот код может работать, но я не уверен на 100%, поэтому я отправляю этот код профессионалам stackoverflow; -)
Я компилирую, используя gcc (без оптимизации) для arm7TDMI.В какой-то момент код должен сделать переключение контекста.
/* Software Interrupt */
/* we must save lr in case it is called from SVC mode */
#define ngARMSwi(code) __asm__("SWI %0" : : "I"(code) : "lr")
// Note : code = 0x23
Когда я проверяю скомпилированный код, я получаю такой результат:
svc 0x00000023
Человек передо мной, который кодировал это, написал «мы должны сохранить lr», но в скомпилированном коде,Я не вижу никаких следов lr, которые будут сохранены.
Причина, по которой я думаю, что код может быть неправильным, заключается в том, что программа некоторое время запускается перед переходом в исключение сброса и одно из последних выполнений кодапереключение контекста ...