Раньше я думал...

Jul 08, 2013 16:10

Раньше я думал, что ПЛИС или STM32 - это сложно для новичка и т.п. Ерунда. Вот написание драйверов для Linux (при чём для отличной от х86 архитектуры) вот настоящий гемморой...

/me В трансе...

Лытыбр, Программирование, linux

Leave a comment

Comments 13

eddy_em July 8 2013, 14:06:14 UTC
Чего пишешь?

// а у меня уже взрывается мозг с этими ортогональными полиномами: ну ни в какую сходиться не хотят, собаки!

Reply

dlinyj July 9 2013, 06:29:08 UTC
Драйвер СОМ-портов. Пока не пишу, пока воюю.

Reply

eddy_em July 9 2013, 06:39:13 UTC
А что, готового разве нет?

Reply

dlinyj July 9 2013, 06:41:03 UTC
Есть готовый, но под другую микросхему, с одним СОМ-портом на кристалле, а у нас четыре.

Плюс, если помнишь SPI, там есть chip-select, который так же вешается на ноги GPIO

Reply


dron_gus July 8 2013, 17:18:28 UTC
Присоединяюсь к вопросу. Че пишешь то?

Познав этот геморой, ты поймешь, что это все фигня в сравнении с написанием драйвера под какой-нить полу-китайский сенсор, с пробрасыванием через HAL Android'а в юзерспейс. И шоб это работало с любыми приложениями.

Reply

dlinyj July 9 2013, 06:28:51 UTC
Драйвер СОМ-портов на SPI. Проблема в том, что я честно говоря, даже не знаю с какой стороны к ней подступиться. Даже пока хелло-ворд накалякать не могу :((((.

Reply

eddy_em July 9 2013, 06:41:19 UTC
Бери готовый модуль для наиболее близкой архитектуры (неужто у тебя не MIPS и не ARM?), рихтуй под спецификации своей железяки, компиль, устанавливай.

Правда, с модулями ведра надо быть предельно осторожным (у меня как-то из-за криво подправленного модуля компьютер "самопроизвольно" перезагружался; пока до меня дошла причина перезагрузок, прошло, наверное, с неделю!).

Reply

dron_gus July 9 2013, 07:53:35 UTC
Редки случаи, когда надо писать драйвер вот прям "с нуля".
Сюда смотрел http://lxr.linux.no/#linux+v3.10/drivers/tty/serial/mrst_max3110.c ?
По чип-селектам. Это задача драйвера SPI. Если у тебя две одинаковые микросхемы, то все еще проще.
Драйвер SPI есть? Если совсем нет, для начала можно и ножками сэмулировать http://lxr.linux.no/#linux+v3.10/arch/arm/mach-s3c64xx/mach-smartq.c#L208
Если есть, то просто описываешь, какой GPIO какому CS соответствует... примерно так http://lxr.linux.no/#linux+v3.10/arch/arm/mach-imx/mach-mx51_babbage.c#L339 с поправкой на свой spi-master.

Reply


Leave a comment

Up