Post:#185708 Date:15.06.2009 (09:07) ... Данная тема посвящена замечательной операционной системе Linux.
Сюда заходите, чтобы задавать вопросы и отвечать на заданные вопросы.
Успехов!
AlexSoroka Пост: 471447 От 29.May.2015 (02:02)
ты сам себе ответь: зачем тебе бронепоезд, если тебе с него всего-то твоя радиостанция нужна?
Отвечаю. Есть задачка померять несколько параметров с летающего устройства. Это не готовое устройство, которым будут пользоваться несколько лет. Один раз померять и все. Можно конечно сделать радиоканал на комп и на леталку, прошить контроллер на леталке,
протокол связи, проги управления , проги на компе и это лет на несколько работы. А можно взять готовые комплекты управления от коптеров примерно за штучку баксиков. Вот ты согласишься за пару измерений типа китайской авоськой ткнуть платить штуку баксов?
А можно взять с чердака старенький роутер с вайфаем и компом внутри забесплатно- и сделать то же самое.
Да, там радиостанция получается с бронепоездом впридачу. Но нахаляву и все уже спаяно.
Там всем радиостанциям радиостанция. Коптер до Луны улетит без потери дистанционного управления.
Можно долго рассказывать что-то вроде "да если..., да кабы...".
Во-первых, нужно будет САМОМУ компилировать операционную систему и устанавливать её.
Во-вторых, для этой операционной системы нужно будет написать программу, которая собирает данные с внешних устройств, обрабатывает их, а затем отправляет на передатчик. Потратите изрядное количество человеко-часов на её отладку.
В-третьих, производитель может не предоставить сведений о внешних устройствах, которые есть на плате маршрутизатора. То есть, не раскрыть все необходимые сведения.
И может получиться так, что "овчинка выделки не стОит".
я вообще противник любых операционок...
Так а куда ты денешься с бронепоезда? Нужен же интерфейс для общения. Изобретать велосипед каждый раз?
Уж кто кто, а ты прекрасно знаешь сколько это времени занимает. И делаешь ты все равно в итоге свою операционку.
Это не обязательно. Можно написать только одну программу, без задействования операционных систем. И записать её в флэш-память однокристальной микроЭВМ.
А если устройство делается на ПЛИС или на дискретной логике, тогда не надо писать даже программы. Ну разве что на Верилоге, если используются ПЛИС.
Кажись понятно, что нужно Деду - простая однозадачная среда, для универсальности позволяющая запускать задачи с какого нить накопителя-флеш.
Ну чо, Спектрум фореве! У Спектрума даже немного покруче будет - у него бейсик встроенный, который и "заменяет" операционку. Осталось перекинуть машкод с Z80 на ARM и дело в шляпе. Может это уже и сделано кем-то, народ копается потихоньку.
И это ни к винде, ни к линуксу не имеет никакого отношения. Единственно под линуксом есть компиляторы GCC под арм (и вроде под атмел, в CodeBlocks - IDE под все случаи жизни ), но они вроде бы портированы и под винду, так что пиши под чем хочешь.
Пс. А если всё же ставить чего нить многозадачное - тут линукс вне конкуренции - его можно так обкарнать... до изумления, было бы желание... самый маленький линуксовый дистр, который я ставил ради любопытства на виртуалку, весил мегов 15.
_________________ Человек отличается от обезьяны умением не замечать очевидных вещей.
sw1972 Пост: 471482 От 29.May.2015 (20:22)
Во-первых, нужно будет САМОМУ компилировать операционную систему и устанавливать её.
Если ты почитал статью про Running uCLinux on a ZyXEL router
если не читтал, то почитай-[ссылка]
В тех камнях встроен начальный загрузчик, типа как биос в писюке,
он работает через консоль сериального порта.
Это натуральная консоль- без экрана, без клавиатуры, но через нее
можно загрузить хоть операционку, хоть просто отдельную программу.
Кстати линух- это не операционка. Для примера такая фраза-
Ubuntu — это современная полнофункциональная операционная система, основанная на ядре Linux.
Убунта- это ось, а линух- это только ядро.
Но поскольку канал вафли уже встроен в роутер, и там есть его драйвер,
то хотелось бы его и задействовать. А его задействовать можно только
через ядро.
Отсюда первый вопрос- а может и не нужно ядро? Может как то и без него можно?
Как говорят, "большому кораблю - большое плавание".
Удачи!
sw1972 | Post: 471482
производитель может не предоставить сведений о внешних устройствах, которые есть на плате
Полностью поддерживаю. Пару раз жаба душила выкидывать какую-нить плату, ну типа "просто прошивку заменить на свою" и дать "вторую жизнь" ... перестал этой дурью маяться, на чего нить простое проще сляпать на дешёвом микроконтроллере, на сложное - ...а как драйвера писать без полного даташита?
Пс. Меня тут другое удивляет - на смартфоны можно поставить даже не урезанную Ubuntu (боковая панель с большими иконками спецом под пальцетык заделана), а ляпают до сих пор токо андроид... интересно, с чем связанно? Коммерция?
_________________ Человек отличается от обезьяны умением не замечать очевидных вещей.
Дед!
Насчёт структуры драйверов не смогу ответить, советую посмотреть исходные коды ядра, которые в виде архивного файла можно загрузить с сайта:[ссылка]
А также загляните на[ссылка] , там неплохая подборка различной документации на русском языке.
Greyver Пост: 471487 От 29.May.2015 (21:22)
Да, кстати, когда Ubuntu ставят на смартфон, меняют только ядро а драйвера не трогают.
Драйвера могут быть закрытые и привязанные к определённым версиям ядра. И они могут быть не в составе ядра, а собранными отдельно и поставляться в виде бинарников.
dedivan Пост: 471493 От 29.May.2015 (22:03)
Те кто в чужом коде ковырялся хоть раз - сходятся во мнении что проще самому сызнова написать. Поэтому вариант поковырять бинарники не воодушевляет.
Такова цена вопроса. К сожалению, не всё так просто, как хотелось бы.
dedivan Пост: 471489 От 29.May.2015 (21:42)
Отсюда сразу второй вопрос- драйвер вызывает модуль ядра каждый драйвер свой модуль
или есть общий модуль в ядре для связи с драйверами?
Таких тонкостей я не знаю (не читал так глубоко), но предположить могу:
"общий модуль в ядре для связи с драйверами" и существует, и нет - это кусок самого ядра, отвечающий за унификацию обращения к драйверам через общие системные вызовы (в лине вызовы типа ioctrl()... не уверен, пишу по памяти), как-то так.
Думаю, если известен способ загрузки модуля в память (в лине можно делать командой modprobe) и способ обращения модуль-ядро (описан в мануалах), то вполне можно попытаться сляпать программку, как бы эмулирующую как бы ядро, и работать с драйвером напрямую без ядра.
По сути драйвер - это просто программа с унифицированными функциями вызовов-обращений... короче, лично я бы начал с копания в исходниках modprobe и манах к ioctrl...
_________________ Человек отличается от обезьяны умением не замечать очевидных вещей.
sw1972 Пост: 471492 От 29.May.2015 (22:01)
Драйвера могут быть закрытые и привязанные к определённым версиям ядра. И они могут быть не в составе ядра, а собранными отдельно и поставляться в виде бинарников.
Естественно, драйвера могут быть только в виде бинарников (проприетарные), вот потому и не трогают. А насчёт совместимости... тут система plug-and-pray - "включил-и-молись"
Тут спасает то, что для андроида вряд ли стали писать своё ядро с нуля, а просто взяли готовое. Так что ядро думаю подобрать можно.
_________________ Человек отличается от обезьяны умением не замечать очевидных вещей.
dedivan Пост: 471499 От 29.May.2015 (22:25)
Я так понимаю в ядре линуха очень много всяких модулей- на все случаи жизни, и соответственно связей, поэтому он и тормозит.
Ну тогда токо экстрим, токо Gentoo - операционка, в которой компилируется из исходников всё и вся, включая ядро.
Зато на выходе - полностью оптимизированная операционка под конкретный проц и конкретное железо.
И адреса я так понимаю как то стандартизованы, что позволяет работать
одному и тому драйверу с разными ядрами.
Типа как в досе- все адреса прерываний и стандартных вызовов записываются при загрузке в первую страницу памяти и все программы и драйвера просто тыкаются туда.
Нет, не стандартизированны. Этим в лине занимается загрузчик - закидывает программу в память и потом "увязывает" адреса куда надо. Навроде
ld-linux.so загружает разделяемые библиотеки, требуемые программами, подготавливает к запуску и затем исполняет ее. [ссылка]
_________________ Человек отличается от обезьяны умением не замечать очевидных вещей.
airman Пост: 471451 От 29.May.2015 (06:55)
в регистрах - только информация конкретной задачи, ее никто не портит... Получается многозадачность без операционки!!!