механизм ловушки системных вызовов vxworks

#c #operating-system #low-level #vxworks

Вопрос:

Я новичок в VxWorks и работаю с двоичным файлом ELF для VxWorks. Системные вызовы, по-видимому, попадают в ядро, вызывая адрес _func_syscallTrapHandle , который является 0x1234 . Поскольку программа должна перейти в ядро, правильно ли я предполагаю, что цель этого состоит в том, чтобы выполнить сегментацию по умолчанию, используя низкую память для входа в ядро? Если это так, проверяет ли segfault ISR содержимое rax и, когда он 0x1234 выполняет логику вызова системы? Почему вместо этого не syscall используется инструкция?

Ответ №1:

Вы описываете механизм ловушки системных вызовов в vxsim; поскольку VxWorks в данном случае выполняется как обычный процесс в Linux или Windows, он не может использовать инструкцию syscall. Двоичный файл elf для реального оборудования ведет себя по-другому.

Комментарии:

1. большое спасибо, это действительно полезно