Перейти к содержанию
    

ARM с Linux на борту.

...

Вот про это не надо заливать... ;)

Ибо сколько я таких исходников повидал.... такое ощущение, что пишут их малограмотные люди (индусы? ;) , причём сразу выкладывают даже не удосужившись ни разу не проверить - настолько глупые ошибки встречаются....

Оффтоп:

Есть такой проект - ChromeOS. В основе лежит ядро linux.

Вон гугл платит 1 миллион долларов за взлом ChromeOS. Что же вы тут сидите с таким секретным знанием?

С линуксом хорошо, что если нравится - берёшь. Не нравится, пишешь сам или берёшь другое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот про это не надо заливать... ;)

Ибо сколько я таких исходников повидал.... такое ощущение, что пишут их малограмотные люди (индусы? ;) , причём сразу выкладывают даже не удосужившись ни разу не проверить - настолько глупые ошибки встречаются....

Вот тут Вы сейчас маленько перегнули... Я не знаю, кто пишет FreeRTOS, но над нашей родной scmRTOS работают уважаемые люди форума, на котором Вы сейчас находитесь... поливать огульно всех и вся - некрасиво...

 

Индусы уже давно пишут приличный код, вы их с китайцами видимо путаете, хотя и те подтягиваются. Сколько математиков у индусов я вообще молчу. Удивительное русское зазнайство. Ну да ладно. Можно пример "индусского" кода из ядра Линукс ? А то языком то бла-бла все горазды. Вашего "неиндусского" кода не прошу, ибо мне и так все ясно

Да и в Китае есть специалисты с большой буквы. Они везде есть.

 

____________________________

Блин, меня всегда удивляет, когда говорят о неком "индусском коде", "вьетнамском коде", "сингапурском код", как будто по качеству ширпотреба, ввозимого из тех стран, можно судить о специалистах. :bb-offtopic:

 

малограмотные люди (индусы? ;)

А вот это уже откровенное хамство в адрес людей, которые могут быть на этом форуме (зная русский язык)... Стыдно, товарищ!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

жители индии - индийцы.

индусы - это человек проповедующий индуизм.

индусом может быть русский, китаец, белорус.

 

индуский код - нарицательное название малокачественого кода пошло вроде бы со времен библиотек микрочипа.

 

Написать малокачественный код может кто угодно, обычно этим грешат студенты в курсовых, когда делают одноразовую вещь, а поскольку очень часто исходником всяких бесплатностей является развитая курсовая, то в эти исходники и прорываются куски такого кода.

 

Объем исходников больших библиотек велик, и весь его переписать лень, особенно бесплатно, вот и ползают там жуки оставленные студентами.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как ни парадоксально, но в коде написанном за деньги жуков зачастую больше. Хотя понимаю, тоже пишу хороший код только если интересно, от денег не зависит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... а поскольку очень часто исходником всяких бесплатностей является развитая курсовая, то в эти исходники и прорываются куски такого кода.

Объем исходников больших библиотек велик, и весь его переписать лень, особенно бесплатно, вот и ползают там жуки оставленные студентами.

Это какой-то вид фобии к opensource?

 

В контексте темы топика:

1) Студенту, не имеющему долговременных связей с мантайнерами ядра линукс в реальности нет никаких шансов внедрить свой патч к официальному ядру.

Это относится не только к студенту, но и к любому другому программисту.

2) Многие библиотеки пишутся разработчиками стандартов на форматы и протоколы. Например, libpng - это эталонная реализация для работы с растровой графикой в формате PNG.

3) В ОС, основанной на ядре линукс есть интересное свойство. Практически для всех подсистем есть несколько альтенатив (во многих случаях эти альтернативы можно, даже сочетать):

а) Набор UNIX-утилит командной строки: "легковесный busybox" или "полноразмерный, с расширенным функционалом набор утилит GNU"

B) Файловые системы: Журналируемые, нежурналируемые, с реализацией программного RAID, оптимизированные для NAND flash, сетевые, в оперативной памяти, с контролем метаданных, с контролем самих данных и т.д, и т.п.

(если выбрать правильную ФС, то прибор с линуксом можно смело выключать в любой момент времени).

с) Интерактивность системы: есть обычный линукс, и есть realtime линукс. Как пример: LinuxCNC - управление станками с ЧПУ (необходима быстрая реакция на концевики и прочее)

d) Драйвера: для одного устройсва, часто существуют несколько альтернативных драйверов. Выбирайте на свой вкус или можете написать свой.

e) и т.д.

 

Разумеется есть задачи, куда пихать линукс неразумно.

Аналогично, есть задачи, которые разумнее всего решать с использованием ОС линукс.

Многие критики считают, что линукс используют те, кто не умеет программировать "голое железо".

Однако как раз наоборот, те кто имеет большой опыт программирования "голого железа" как раз выбирают Линукс для решения подходящих к нему задач.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

индуский код - нарицательное название малокачественого кода пошло вроде бы со времен библиотек микрочипа.
Конечно же я имел в виду переносное значение. Но в библиотеках DSPLIB для 5000-го семейства TI написанных очень криво и неоптимально, находил именно индийские фамилии авторов. Может - просто совпадение? ;)

 

Вот тут Вы сейчас маленько перегнули... Я не знаю, кто пишет FreeRTOS, но над нашей родной scmRTOS работают уважаемые люди форума, на котором Вы сейчас находитесь... поливать огульно всех и вся - некрасиво...
Это Вы похоже перегнули. Где Вы видели что я говорил обо всех? Я писал только про основную массу тех, с которыми мне приходилось иметь дело.

С перечисленными вами не имел дела, но в портах uCOS находил очень глупые ошибки (в последних версиях кстати они их исправили, но долго тянулось).

 

Блин, меня всегда удивляет, когда говорят о неком "индусском коде", "вьетнамском коде", "сингапурском код", как будто по качеству ширпотреба, ввозимого из тех стран, можно судить о специалистах.
Вам знакомо понятие "нарицательное наименование"?

 

А вот это уже откровенное хамство в адрес людей, которые могут быть на этом форуме (зная русский язык)... Стыдно, товарищ!
Нисколько. Ибо говорил о том, что реально видел. И не надо передёргивать.

 

Разумеется есть задачи, куда пихать линукс неразумно.
Вот я писал как раз о том, что это относится к большинству задач, которые здесь на форуме обсуждаются.

 

Многие критики считают, что линукс используют те, кто не умеет программировать "голое железо".

Однако как раз наоборот, те кто имеет большой опыт программирования "голого железа" как раз выбирают Линукс для решения подходящих к нему задач.

Вот как раз я так и считаю. :laughing:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

Вот как раз я так и считаю. :laughing:

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

У меня только один вопрос: Какой опыт применения и программирования под линукс у Вас?

 

Откуда взялся миф, что новички используют линукс? Ардуино наверняка, но вот линукс...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня только один вопрос: Какой опыт применения и программирования под линукс у Вас?
Никакого. :rolleyes:

В своей практике не встречал ещё задачи, где он был бы необходим. И видел много чужих задач, где он избыточен, но его пихали.

Ну правда один раз хотел выдрать из него USB-стек, но потом понял что легче написать свой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а проще сразу вляпать линух и сразу начать кодить. Имхо - это и есть бОльшая часть случаев применения линукса.

А вы попробуйте. Вляпать и начать. Продолжаем молоть ерунду, как и ожидалось без знакомства с предметом.

У довольно простого SoC DM3730 TRM занимает около 4000 страниц и отнюдь не картинок. При том что за рамки его вынесен C64x+ DSP - на него отдельные TRM того же объема, отдельные TRM на кеши pipeline (а без этого написанный код рискует быть медленнне в разы) и полностью убрано OpenGL ускорителя (оно вообще NDA). Сколько времени доку только читать будем ? Сколько времени потратим чтобы хотя бы на консоль приветствие вывести ?Дальше больше - возьмем недорогой OMAP4460 . Мультипроцессорность у нас "неленивые" хорошо знают ? С нуля начнем ? На самом деле хороший инженер от плохо тем и отличается - хороший инженер - ленивый инженер, он будет искать пути решения проблемы кратчайшим путем. И не стоит говорить, что для слабеньких процев Линукс не нужен. Доля таких процев падает и будет падать дальше. Если на борту есть ethernet но нет ресурсов для минимального *nix - втопку этот процессор, он инжереного труда в партиях меньше сотен тысяч больше сожрет, а главное - продукт опоздает с выходом на рынок (читай пойдет в утиль сразу). Так что можете думать и говорить что угодно конечно, индусы будут только рады отсталости и ограниченному кругозору конкурентов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы попробуйте. Вляпать и начать.
В который уже раз - нафига???

 

Дальше больше - возьмем недорогой OMAP4460 . Мультипроцессорность у нас "неленивые" хорошо знают ? С нуля начнем ? На самом деле хороший инженер от плохо тем и отличается - хороший инженер - ленивый инженер, он будет искать пути решения проблемы кратчайшим путем.
Как вы всё гладко теоретизируете... :biggrin:

А я вообще-то писал и под OMAP без всяких *никсов. Хотя вас это так пугает. Читал доку и организовывал взаимодействие ядер, портировал uCOS на ARM9-ядро OMAP-а, писал USB-стек для него, писал дрова для прочей периферии. И что? Нет там ничего такого архисложного. Стартовал быстро. А с линуксом думаю - увяз бы надолго (как другие товарищи, пошедшие параллельным крусом на том же OMAP-е с линухом).

И к тому же теперь - полностью прозрачно знаю где у меня и сколько и на какие нужды тратится ресурсов, могу переконфигурить так или иначе (в зависимости от новых задач которые придётся ещё добавлять в работающую систему).

Ну нет ничего сложного там! Всё есть в даташитах (если производитель нормальный). Всё можно сделать и за реальные сроки.

А не как - в одном знакомом проекте поставили linux на ARM9 ядро, так он не только там сожрал прилично ресурса быстродействия ядра, но ещё и начало периодически сбоить пинг-понг DMA (с потерями данных), так как где-то в недрах линукса какой-то кривой драйвер изредка почему-то запрещает прерывания на пару сотен мсек. И найти его они не смогли. Начали заплаты лепить ;)

 

И не стоит говорить, что для слабеньких процев Линукс не нужен. Доля таких процев падает и будет падать дальше. Если на борту есть ethernet но нет ресурсов для минимального *nix - втопку этот процессор, он инжереного труда в партиях меньше сотен тысяч больше сожрет, а главное - продукт опоздает с выходом на рынок (читай пойдет в утиль сразу).
Для вас наверное это действительно адский труд - разобраться в простом TCP/IP стеке. :biggrin:

Если Вы занимаетесь прогаммированием только для себя, то попробуйте представить что есть люди, которые пишут ПО для изделий, идущих потом в серийное производство и где каждый рубль себестоимости учитывается. А слабенькие процессоры (и дешёвые) - они всегда будут.

А если технология улучшается, то может лучше разместить на кристалле дополнительные модули (DSP-ядра, ПЛИС, RF-модули, ...) вместо тяжелого процессора, необходимого для линуха. Это позволит уменьшить кол-во корпусов в изделии и понизить его цену.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не о том мы тут беседуем, и на личности уже скатились....

 

 

Лично я против опенсорса, но не в плане что "никогда и ничего, и все сам напишу". Я против взять оттуда код, пихнуть его не глядя в проект, а потом заплатками баги затыкать.

 

Пример:

Плата с РС232 на выходе, схемотехническая ошибка забыли конденсаторы у преобразователя уровня заземлить, в процессоре взятый из примера код передачи данных по прерыванию. Результат - схема работает со сбоями и потерей данных

Решение проблем, программистом до меня: Уменьшить скорость, увеличить таймауты, уменьшить длину пакетов сообщений, ввести контрольную сумму.

 

Мое решение:

1. тесты уарта, тыканье осцилографом, нашел кондеры, восстановил связь до стабильной работы 115200.

2. редизайн протокола, ввод команд, ответов, кодов ошибок.

3. проверка кода отправки, некоторые отзывы в сторону колеги что взял чужой код не глядя, исправление детских ошибок,

 

Результат на фирме остался надежный модуль связи с вычищенным кодом, его можно использовать в следующих изделиях, его не надо больше писать заново и он не теряет 50% мощности на заплатках.

 

 

Для меня любой опен сорс должен быть проверен, оттестирован, и рабочий отлаженный и "безопасный" вариант должен быть сохранен для фирмы. Не надо делать все заново, но знать как оно работает программист обязан.

 

С юниксом у меня тот же подход, потому я очень с опаской смотрю на него. Наверное у каждого программиста есть своя ниша, и свой уровень устройств, на данный момент операционная система мне кое где бы пригодилась, но удобство от нее перекрываются сложностью ее внедрения.

 

Ошибки в моих приборах очень дороги, так что пока обхожусь без операционок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я вас наверное это действительно адский труд - разобраться в простом TCP/IP стеке. :biggrin:

Ещё раз - почему Вы судите по своему уровню о других? Я имею в виду то, что для Вас легко, не обязано быть лёгким для других. Извините, но смахивает на козыряение: я один такой крутой, а остальные... ленивые :cranky: После вашей фразы стоит смайлик, похоже, что Вы иронизируете. Тогда скажем по другому: пусть для меня легко разобраться с TCP/IP стеком (кстати я разбирался). Но начальник ставит задача запустить изделие в срок 1 месяц. И что? Мне с нуля разбираться в куче стеков?

 

Ошибки в моих приборах очень дороги, так что пока обхожусь без операционок.

А РТОСы применяете? Или самописные? А многозадачность (или всё суперлупов + прерывания)? А мьютексы, очереди, флаги событий?

 

Ошибки в моих приборах очень дороги, так что пока обхожусь без операционок.

Кстати, ошибки в авионике ооочеень дороги. Но там используют операционки. Не помню какие, но используют.

Ошибки в промавтоматизации тоже недёшево стоят. Но в сименсовских контроллерах стоит оська

А вообще Ваше утверждение бьёт по именитым фирмам, которые делают QNX, ThreadX, WxVorks... Смотрите, они обидятся :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все время забываю, что форум не только взрослеет, но и обновляется - приходит молодежь, через 10 лет иначе запоют, но и новые придут. Так что все своим чередом идет. :)

В который уже раз - нафига???

Ну нет ничего сложного там!

Ой спасибо, а я то так боялся, куда мне, IQ маленький.

Для вас наверное это действительно адский труд - разобраться в простом TCP/IP стеке. :biggrin:

Конечно, просто неподъемный.

Если Вы занимаетесь прогаммированием только для себя - конечно, а вообще я дворник.

то попробуйте представить что есть люди, которые пишут ПО для изделий, идущих потом в серийное производство - неужели ? :biggrin:

А если технология улучшается, то может лучше разместить на кристалле дополнительные модули (DSP-ядра, ПЛИС, RF-модули, ...) вместо тяжелого процессора, необходимого для линуха. Это позволит уменьшить кол-во корпусов в изделии и понизить его цену. - Вас еще Texas Instrument с руками не оторвал ? Такие гениальные идеи, как обидно, что они никому еще в голову не приходили

А пока что у в моем телевизоре - Линукс, в моих телефонах - Линукс, в роутерах и модеме, в камерах наблюдения во дворе, на десктопе, на планшете, в медиплеере, в осциллографе, - Линукс. Все это делали такие же идиоты как и я , с низким IQ и без возможности, как следствие, разобраться в стеке TCP-IP. Такая уж у нас, идиотов, участь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если начальник мне ставит сроки за месяц поднять такого рода систему, я ему говорю что это будет макет по которому сможем только оценить возможность создания прибора. И пока что меня понимали, начальнику хочется чтобы платы в серии запускались сами, а не каждая с толкоча программиста. Дорого если каждое изделие запускается программистами, лучше наладчиками, а лучше само.

 

Есть уже свои наработки, это не полноценные операционки, а самописные конечные автоматы которые в целом как операционка разделяет ресурсы. Я не могу вызвать функцию на 15 тактов, а потом другую. Но вся программа разбита на функции которые работают ограниченное время, то есть если она не доделала работу она выходит с кодом что она еще работает, и общая супер петля которая по очереди вызывает функции и следит за тем какая что за кончила.

 

+ прерывания, тоже короткие.

 

Так что я всегда знаю в каком месте у меня программа, и что она делает. У меня нет зациклов и циклов ваил. Но и общая цель написание когда не зависимого от времени. Что-то не получается нормально описать как это:)... Общий смысл такой: есть программы с огромным количеством флагов, которые сохраняются восстанавливаются и так далее, то есть каждый раз запуск функции тащит за собой хвост от которого зависит ее результат. Стараюсь такого не допускать, то есть если есть настройки они проверяются перед запуском функции.

Вообщем это сложно описать, но позволяет детерминировать пути программы. То есть тыкнув в любую точку кода и начав двигаться дальше вы точно знаете куда вы попадете, не будет такого что вы не будете знать куда дальше идти потому что не известно состояние каких то дремучих флагов.

 

 

Я на контракте в 2 фирмах, с не очень большим штатом программистов. Так что трудно много ресурсов потратить на внедрение операционки. Но если как то сделаем, то все будет описано и дальше фирмы будут пользоваться ей. Я читал как писали программу управления для боинга. Так там каждый блок состоит из 3 компьютеров, 2 компьютера принимают решения, третий проверяет. Так вот для принимающих решения компьютеров, программы написаны разными фирмами, на разных языках. И все равно были аварии из-за ошибок.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё раз - почему Вы судите по своему уровню о других? Я имею в виду то, что для Вас легко, не обязано быть лёгким для других. Извините, но смахивает на козыряение: я один такой крутой, а остальные... ленивые :cranky: После вашей фразы стоит смайлик, похоже, что Вы иронизируете.
Не выдёргивайте из контекста. Это был ответ на конкретную фразу уважаемого DASM, где он пишет что невозможно прожить ethernet-у без великого и могучего *nixa. Ну просто никак нельзя! Несчастные производители Cortex-M чипов - они же не знают этого! :biggrin:

Вообще думаю надо издать закон - ставишь ethernet в процессор, будь добр - прошей ему в ROM линух. :biggrin:

 

Тогда скажем по другому: пусть для меня легко разобраться с TCP/IP стеком (кстати я разбирался). Но начальник ставит задача запустить изделие в срок 1 месяц. И что? Мне с нуля разбираться в куче стеков?
Думаю - Вы сами знаете ответ. Если есть наработки в этой области (к примеру: уже делалось устройство с этим стеком на данном проце) это реально.

Если нет - может поменять начальника? ;)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...