Перенос драйверов Linux в RTOS

Все, вероятно, идут в другом направлении, переводя свои системы и т. д. на Linux. У меня следующая проблема. Мне нравится использовать набор микросхем WiFi вместе с его драйвером Linux в моей RTOS (FreeRtos). Если я сделаю это обычным способом, мне понадобится 3 месяца, чтобы портировать его. (Сейчас я работаю в небольшой компании, поэтому я не ожидаю какой-либо поддержки от поставщика чипсета с моими объемами. Однако у меня очень строгая цель по затратам, поэтому я не могу использовать эти действительно дорогие, но простые в использовании модули. 5$ wifi модуль здесь)

Есть ли простой способ, или мне действительно нужно глубоко понять драйвер и медленно портировать его. Я не знаю Linux, но я относительно хорошо знаком с концепциями RTOS. Я ищу какую-нибудь оболочку, которая переводит системные вызовы Linux в более традиционные вещи RTO.

Я знаю, что это долгий путь, но я должен был попытаться.

И не предлагайте uCLinux в качестве ОС, я уже шел по этому пути, это кажется лучшим способом, однако размер кода не позволяет работать с ресурсами моего процессора.

Дополнительный вопрос: есть ли эксперты по WiFi, которые могли бы порекомендовать набор микросхем ab/g с легкодоступными драйверами RTOS. Я посмотрел на CSR, Realtek и Nanoradio, все они предоставляют драйверы для Linux, но не поддерживают RTOS. Атерос даже не стал со мной разговаривать, наверное, влияние Qualcomm.

Я не юрист, но будьте осторожны при этом. Похоже, у двух проектов несовместимые лицензии. В этом случае вы не сможете распространять портированные драйверы.
@jeremy-kerr хорошее замечание .. Мне нужно подумать об этом, однако сейчас я больше ориентирован на техническую сторону дела ..

Ответы (1)

Портирование драйвера вручную — единственный способ сделать это, если вы не хотите писать драйвер с нуля. @jeremy-kerr прав, у вас есть проблемы с лицензией, с которыми нужно быть осторожным, но, по сути, это будет означать, что если драйвер является GPL, так это то, что ваш перенесенный драйвер также будет GPL. Вам не придется открывать весь исходный код RTOS.

Три месяца — это, вероятно, консервативная оценка усилий по портированию; если вы можете определить используемые API (сеть, прерывание, таймеры, ожидание/блокировка, ввод-вывод, обратный вызов, файловая операция и т. д.) и создать грубую карту между используемым API Linux и тем, что доступно на вашем компьютере. В RTOS процесс пойдет НАМНОГО быстрее, тем более, что вы можете затем начать заглушать используемый вызов Linux API и «переводить» его в API и структуры данных, используемые в вашей RTOS.

Это будет непростая задача, но, безусловно, выполнимая, и если драйвер Linux написан хорошо, вы будете иметь очень хорошее представление о том, что делает каждая часть и почему, что всегда облегчает перенос. Удачи!

Большое спасибо .. Отличный ответ .. Тем временем я занимаюсь кучей других вещей, отсюда и 3 месяца .. Кроме того, я еще ничего не знаю о Linux.