ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
312749 Топик полностью
Evgeny_CD, Архитектор (06.03.2012 14:50, просмотров: 126) ответил lentjaj2 на В Linux и так постарались многое стандартизировать, даже в физической памяти через файл можно обращаться /dev/mem. Вам видимо вот такая штука нужна
Разделяемая память - она между процессами делится. Мне надо между процессом и ядром, без дополнительной буферизации. По универсальности есть такая идея. Иерархия: * класс устройства * номер устройства * номер потока * тип сообщения (идентификатор типа) * номер сообщения в потоке Сообщение - это структура с полями. Если сообщение имеет како-то взаимодействие с другим сообщением (ответ на команду, например), то есть ссылка на это сообщение номер потока:номер сообщения. Чтобы можно было сделать неблокирующий обмен: * родил сообщение * кинул в драйвер * запомнил в локальном хранилище * что-то творишь * пришло сообщение - смотришь ссылку * при полном выполнении очистил хранилище и ответ Есть глобальный справочник (к коду отношения не имеет), где прописаны все типы сообщений и смысл их полей. Каждый тип сообщения обрабабытвается своей функцией. Ей просто передают указатель на структуру, она далее проверяет, ее ли это тип, и возится с полями структуры. Все сообщение, порождаемые железом, имеют метку времени - когда оно произошло. Это позволит детально восстановить работу железа в любом случае. Сообщения от приложения к драйверу могут иметь метку времени - когда это нужно выполнить.