2015-10-01 8 views
0

Есть ли механизм для регистрации периферийных взаимодействий. E.x. Если есть приложение, работающее на ядре Linux, оно взаимодействует с физическим миром над UART, CAN или любым другим интерфейсом. В связи с этим есть некоторые команды или средства, которые могут войти эти взаимодействия (данные, передаваемые не требуется), чтобы она удобна, чтобы понять, к которой периферийное делает взаимодействует приложение ....Трассировка периферийных взаимодействий приложения, работающего на Linux os

Заранее спасибо

ответ

0

Предполагая программу пользователя (не в ядре), вы можете запустить ее через strace, которая будет отслеживать использование системных вызовов программой.

Для взаимодействия с периферийными устройствами программа должна взаимодействовать с ядром и драйверами устройств соответствующих периферийных устройств. Это общение часто происходит через файлы устройств (например, /dev/sda). Чтобы открыть эти «файлы», программа выдает системный вызов, который будет показан strace.

+0

Спасибо за ваш ответ .. Я уже пробовал использовать команду strace, и мне это не помогло ... Не было никаких системных вызовов между двумя точками моего интереса к коду, но мое приложение взаимодействует с FPGA-тканью на та же доска через автобус, и я пытаюсь понять, как это взаимодействие происходит. Я сомневаюсь, может ли strace отслеживать все системные вызовы или только основные подмножества ... –

+0

Hm, strace должен иметь возможность отслеживать все системные вызовы, хотя вам может потребоваться указать, чтобы следовать за «-f» детьми отслеживаемого процесса. Без дополнительной информации, это действительно трудно помочь дальше. –