#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. большое спасибо, это действительно полезно