Технический форум по робототехнике.
Michael_K » 24 июл 2011, 10:48
Не нашел раздела про программирование. Пусть будет в "микроконтроллерах".
Итак, я знаю, что на форуме есть продвинутые "линуксоиды" и "эмбеддеры".
Возможно, кто-то знает такую операционочку.
Хочется от них получить ликбез по сборке/настройке/конфигу/запуску
uClinux на собственном железе (естественно нестандартном).
Хочется лично мне, но думаю, еще кому-то будет интересно.
Начать нужно с сааамых азов. А дальше как пойдет... может и до программирования приложений под нее дойдем.
Буду рад любой помощи.
Grem » 24 июл 2011, 11:17
В гугле забанили?
Когда-то пользовался
этим гайдом.
Michael_K » 24 июл 2011, 11:34
Таких "гайдов" как раз завались.
Там перечислены шаги, которые нужно сделать, но не написано зачем их делать, почему так, и какой в этом смысл.
Без этого невозможно понять, как изменится процедура, если у меня контроллер AVR32 или LPC24xx, "диск" представляет собой датафлэш на порту SPI4, причем выбор этой флэшки происходит ногой PB0.13, "консоли" нет вообще и т.д.
Это гиды "для эникейщиков" - все равно, что дать схему, но не объяснить, как она работает. Что будет, если у меня другое напряжение питания, как нужно изменить номиналы, если мне нужно заменить транзистор, что будет, если вместо одного килоома я поставлю полтора.
Соответственно, у эникейщика нет никаких шансов отладить/починить/запустить устройство или программу, если "что-то пойдет не так". А оно обязательно пойдет не так.
Strijar » 24 июл 2011, 23:20
Если вы не имели дела с Linux до этого - не стоит пытаться запускать его на своем железе. Освойте сначало что нибудь работающее - тогда сможете понять, что и зачем. А затем уже запускайте на своем.
Michael_K » 25 июл 2011, 00:06
Я имел дело со встроенным линукс. И даже приложения под него писал.
Только все дело именно ограничивалось "скачать-распаковать-загрузить-пойти в консоль". В случае "стандартного" железа, готового образа и билдрута заточенного под него, естественно, вопросов не возникает.
Всякие "кик-старты" и пошаговые инструкции типа "набери make /config make install и все заработает" меня в данном случае не интересуют.
Понимаете?
Добавлено спустя 2 минуты 31 секунду:Strijar писал(а):Освойте сначало что нибудь работающее.
Освоить - это очень широкое слово и уровни освоения очень разные.
У меня мозги так устроены, что я не могу
понимать что-то "сверху вниз". Мне нужно понимать с самого начала. С битиков, байтиков и ножек и двигаться к функциям, библиотекам, драйверам и операционкам. А не наоборот.
Strijar » 25 июл 2011, 08:18
Michael_K писал(а):У меня мозги так устроены, что я не могу понимать что-то "сверху вниз". Мне нужно понимать с самого начала. С битиков, байтиков и ножек и двигаться к функциям, библиотекам, драйверам и операционкам. А не наоборот.
А ну тогда вопрос теряет смысл! - "Что бы научиться бить человеку морду, надо бить человеку морду!" (с) ВДВ
А что бы понимать все с самого начала, нужно наверное взять ПЛИС и делать свою реализацию ARM
Вот это и будет с самого начала. Хотя...
Michael_K » 25 июл 2011, 08:31
Strijar, а почему, собственно, вы думаете, что я этот этап не прошел?
Strijar » 25 июл 2011, 10:24
Michael_K писал(а):Strijar, а почему, собственно, вы думаете, что я этот этап не прошел?
Без обид, из вопросов
Я вот наоборот иду сверху-вниз. Тогда есть возможность остановиться на каком угодно уровне. Я остановился на ПЛИС стартуя из ОС. А так с чего "стартовать" вверх - с 155ЛА3? А может с транзистора? А ведь он тоже сделан - из молекул
setar » 25 июл 2011, 11:40
я попробую помочь, только много времени у меня сейчас не будет, подскажу ответы на конкретные вопросы.
В общем случае нужно сначала добиться работающего полноценно ядра на вашу железку, потом за корень приниматься.
Тюнинг ядра скорее всего будет итеррационным и нужно его будет собирать кросс компилятором, так что начать нужно с подготовки окружения разработки.
Strijar » 25 июл 2011, 12:33
Кстати, возвращаясь в топпик - процессор то какой вообще? Или перефразируя известно - "Если не указан - значит ARM"
Я вот сейчас занимаюсь uClinux на SPARC V8 (под ПЛИС), потом на него же буду нормальный Linux ставить (хочу включаю MMU, хочу не включаю)
Michael_K » 25 июл 2011, 20:30
Strijar писал(а):А так с чего "стартовать" вверх - с 155ЛА3? А может с транзистора? А ведь он тоже сделан - из молекул
И что вас смущает?
Какой проц
Для начала АРМ7.
У меня вообще сейчас есть две задачи - одна на LPC2478, а другая на AVR32UC3.
Сами по себе задачи я, конечно, решу и безо всяких осей - это я как раз умею
Но с другой стороны, почему бы не продвинуть свой уровень?
Меня в оси привлекают следующие вещи:
- готовая (пусть и кривенькая) многозадачность,
- более-менее стандартный API
- библиотеки-драйвера (файловая система, коммуникации, графика)
Прошу заметить, что все остальное меня волнует гораздо
меньше (а некоторые фичи конкретно напрягают).
И я, честно говоря, не очень понимаю, как "отделить зерна от плевел".
По поводу "кросс-компиляторов", "окружения" и т.п.
Я повторюсь - написать программу по голому железу и зашить в проц я могу.
Тут проблем нет. GCC из-под винды.
Сергей » 25 июл 2011, 21:05
Для таких целей подойдет какая-нибудь RTOS в пару файлов кода. Стандартный API? графика и коммуникации? Не для таких систем. А то потом выйдет очередной Android с минимальными требованиями 600МГц. Жалко нет нормальной альтернативы линуксу для железа
Michael_K » 25 июл 2011, 21:36
Сергей писал(а):Для таких целей подойдет какая-нибудь RTOS в пару файлов кода.
Да, конечно, подойдет RTOS, подойдет вообще безосная самописка, подойдет уклинукс (я надеюсь).
Если вам что-то известно, почему бы он мог не подойти, то говорите.
Сергей писал(а):Стандартный API? графика и коммуникации? Не для таких систем.
Я не понял, что вы хотели сказать. Не для каких - "не для таких"?
Romikgy » 25 июл 2011, 22:46
четкая черта этого форума, это говорить много , но не о том что просят ((((
интересная тема, помогите решить\объеснить вопрос с uclinux, зачем решать за других , нужно им это или нет ?
Сергей » 25 июл 2011, 22:48
Я имел ввиду линукс плохо подходит для небольших встраиваемых решений, даже которые оперируют с файловыми системами и графикой. Но это говорю по собственному опыту. Когда-то баловался с ним на NGW100 devboard AVR32. Конечно здорово когда уже все готовое - консоль, драйвера и прочее. Но СТОЛЬКО лишний операций системных вызовов и прочего. Писал модули под ядро - это было не то, чтобы сложно, но тонны документаций на команды сборки, сумасшедший API с килотоннами структур просто вывели меня из себя.