#linux-kernel
#linux-ядро
Вопрос:
Мне нужно проверить, как наш производственный модуль Linux обрабатывает ошибки HW. драйвер, который я тестирую, не должен быть изменен, за исключением, может быть, адреса HW, который драйвер использует для связи с HW.
Я хочу написать модуль ядра, который перехватывает чтение / запись в HW и при необходимости изменяет их, он также должен обрабатывать прерывание, но я знаю, как это сделать.
могу ли я смоделировать адрес HW для загрузки производственного драйвера, и чтение / запись будет перенаправляться на мой драйвер, и я перешлю его в HW, или для этого мне нужен конкретный HW?
редактировать: поскольку я могу переопределить mmap тестируемого драйвера, могу ли я создать виртуальный адрес в пространстве ядра, который перенаправляет чтение / запись в мой модуль?
Комментарии:
1. Посмотрите на
mmiotracer
функциональность (доступна только для x86).2. Спасибо, но я работаю над arm cortex-a
Ответ №1:
По-видимому, поскольку наш драйвер должен работать на другом оборудовании, у него есть «уровень аппаратной абстракции», который должен реализовать пользователь, и весь доступ к hw осуществляется через этот уровень. Я добавлю туда вставку ошибки. Если у кого-нибудь еще есть способ, пожалуйста, дайте мне знать, несмотря ни на что. Кстати, я работаю над процессорами arm.