Как стать автором
Обновить

Комментарии 52

прошивку будем писать основательно:
Юнит тесты & непрерывная интеграция.

Если основательно, то где тогда слова про MISRA-C и MISRA-C++?
Вы знаете правильные слова, вот только какое моё отношение к автомобильной индустрии? Никакого.

Стандартизация нужна там, где она нужна — для сертификации и для взаимоотношений b2b. Если Вы думаете увидеть промышленное качество на общественных началах, то так не бывает.
MISRA-C с 2004 года именуется «Guidelines for the use of the C language in critical systems», да и первая версия (хотя и была разработана автомобильными компаниями) была стандартом программирования, а не конкретно автомобильной индустрии.

MISRA-C — это задокументированный здравый смысл разработчика встраиваемых систем. Согласитесь, что, например, требование не использовать рекурсию (привет stack overflow) для микроконтроллеров довольно разумно. Также разумно, например, требование использовать обозначения типов, которые однозначно определяют их разрядность signed/unsigned — для разработчиков под микроконтроллеры это естественное требование и ничего сверхъестественного в нём нет. Также кроме правил из MISRA-C стоит включить все-все-все варнинги и не отключать ни одного (кроме случаев когда это требуется и это не ошибка, а так надо).

Ещё очень хорошо о MISRA-C высказался Chris Hills.
Ой как хорошо, оказывается я как минимум до некоторых пунктов здравого смысла сам дошёл своим умом :)

Я подозреваю, что там наверное и валидаторы автоматические есть или настройки компилятора или компилятор особый? Если если возможность натравить что-то на svn.code.sf.net/p/rusefi/code/trunk/firmware/ — буду очень благодарен!
Есть как отдельно статические анализаторы с проверкой правил MISRA-C, так и компиляторы со встроенной проверкой.
На википедии приведены самые известные.
У меня сейчас нет времени просто, я лично эту задачу отложу — вот, могу тикет завести: sourceforge.net/p/rusefi/tickets/54/

Если есть возможность помочь — было бы супер :)
Кстати, есть ли свободные (или хотя бы бесплатные) статические анализаторы поддерживающие misra-c?

В том же сонаре (sonarqube) поддержка C/C++ стоит 7000 евро, что для энтузиаста дороговато.
Open-source или freeware, к сожалению, не видел.

В IAR Embedded Workbench, да и во многих из списка есть полнофункциональный триал.
В PC-Lint есть, он тоже платный, не сильно дорогой (по сравнению с 7к евро), про него даже есть статья на хабре.
Супер! IAR даёт какую-то надежду.
«Юнит тесты & непрерывная интеграция.» — и вы считаете это обоснованием основательности подхода к разработке? Может быть, в данном случае толку от этого мало… а просто используете то что уже знаете. Есть какие-то результаты по которым можно судить об эффективности подхода к разработке?
Уважаемый, вы выдёргиваете слова и мне кажется балансируете на грани перехода на личности?

Мой опыт использования этого подхода позитивен. Слава богу, что я никому не должен ничего доказывать :)
юнит-тесты и непрерывная интеграция — это как «мойте руки перед едой, регулярно принимайте душ» и прочие элементарные правила гигиены.

Есть много противников, и они даже как-то это всё обосновывают, но практика показывает, что такого рода вещи гораздо проще соблюдать, чем выяснять, насколько реальный эффект это дает, сколько будет экономии, если этого не делать.
Проект очень интеречен, особенно интересна цена. Сможете ли вы конкурировать с знаменитым MegaSquirt? Насколько сложно будет настроить его для конретно своей машины?
уточните в данном случае термин 'конкурировать' что значит?

Конечно же надежда сделать лучше, потенциал есть сделать лучше — на нашей стороне новое поколение процессора. А на их стороне — 10 лет :)
А вот как получится — покажет время. Или взлетит, или я брошу через год.
К сожалению свистелки и перделки начались раньше, чем появилось нормальное управление двигателем :(
Рома, к сожалению ты от нас ушёл — так что я боюсь твои комментарии не совсем объективны.

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

Серьезные проблемы с планированием так и остаются. Постоянно не хватает времени и время это экономится, к сожалению, как раз на планировании и архитектуре. Есть время пилить gps или экранчики и даже на переход на С++, нет времени подумать что же таки важно и нужно делать. Сколько двигателей завелось на этой системе сейчас?
Если проводить аналогии с домом, то у этого дома у же есть замечательные колонны и прекрасный балкон, но нет фундамента и части стен.

Это не спор.
Прости меня — я мало успеваю. Я программирую сейчас почти один, пока я программирую почти один — я могу только то, что я могу. На С++ мне пришлось фрилансера нанимать — потому что на этот переход у меня времени не было.

Ты не прав, С++ — это фундамент, это не балкон. ООП нужен в том числе и для того, чтоб улучшить дизайн.
Ты не прав, экранчик нужен для отображения критической ошибки. По USB критическую ошибку не передать — usb многопоточный драйнер, он из halt не работает. UART тоже не совсем вариант для передачи критической ошибки в момент смерти, так что получается — экранчик. Экранчик это еще и удобство внедрения.

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

Ты прав, CAN баловство. Хотя нет, ты не прав — CAN это PR, чтоб привлекать людей, потому что один я много не напишу, см. пункт первый.
Сколько моторов работает на этой системе сейчас? Сколько машин на этой системе используются энтузиастами повседневно, чтобы оперативно отлавливать проблемы и фиксить их?

— С++ крайне спорный момент. Нужен он или нет очень даже открытый вопрос.
— Экранчик не нужен. Когда совсем все плохо есть uart (он есть) и есть светодиоды.
— GPS не нужен никому кроме тебя лично.
— CAN не нужен даже в роли пиара. Нахера нужен CAN, если на этой системе нельзя даже мотор завести без ковыряния в коде по локти?

Ты наверное забыл, что главное в системе управления двигателем — это сделать так, чтобы работал двигатель. GPS и CAN с экранчиком очень слабо помогают двигателю работать. Чтобы двигатель работал, работал надежно и адекватно во всех режимах нужны совсем другие вещи. Они есть? Они есть хотя-бы в планах?
rusefi.com/wiki/index.php?title=Manual:Current_Status/ru
Всего двигателей заведено: 1

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

Ты вообще заголовок поста читал? Говорю же — я был занят железом. А вот сейчас я буду писать код, может быть кто-то мне захочет помочь из заинтересованных автомобильной тематикой.

Ты меня не слышишь — ты почему-то считаешь что я обязан быть максимально эффективным, именно в твоём видении эффективности? Так я напоминаю — никто никому к сожалению ничего не должен, я имею право немного развеяться и поиграться с CAN, если мне это интересно.
Всего двигателей заведено: 1

Это отличный результат, конечно. Наверное это и есть твое видение эффективности?

я имею право немного развеяться и поиграться с CAN, если мне это интересно.

Отличный пиар. Двигателей заведено один, ты играешься с CAN вместо того, чтобы заниматься тем, что имеет отношение к работе двигателей и потом приглашаешь кого-то присоединиться?
Это очень сомнительная трата собственного времени. Я сейчас про мое время. Была команда, которая разрабатывала железо, ты их (нас) игнорил и вот не прошло и пол года, как допилил свой франкенштейн. Вместо работы над кодом, который отвечает за работу двигателя приоритеты ушли в сторону свистелок и перделок.

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

Если 31ого декабря 2014 года будет заведено меньше четырёх двигателей — пост о закрытие проекта я посвящу тоже тебе.

С позиции критикана ты в любом раскладе в выигрыше :)
Мда. Я тебе о реальных проблемах говорю, ты меня критиканом называешь.
Очень может быть, что мы друг друга не слышим, потому что буковками переговариваемся. Я тоже человек, мне тоже обидно за некоторые вещи.

Ты во многом прав, ответ только один — надо работать, работать и работать — и станет лучше. Я знаю, что могу — делаю.
ответ только один — надо работать, работать и работать — и станет лучше.

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

Если у тебя есть какие-то конкретные идеи — я буду очень им рад на rusefi.com/forum/
Где репозиторий ты знаешь. Мой скайп ты знаешь. Я думаю здесь достаточно бельё полоскать.
По-моему, он как раз пилу и затачивает. Добавление базовых функций для отладки хотя бы. Так что фундаментальный функционал реально нужен. Я вот, к примеру, рад тому, что это направление развивается — опен-сорс приходит в наши жизни ещё лучше.
Инструментов для отладки более чем достаточно. Даже больше скажу — уже сегодня на этой системе (и на нормальном железе) могло работать от трех до пяти моторов минимум. Там начата база, и очередным этапом была выбрана разработка части отвечающей за speed density. Это то, без чего остальным участникам проекта никак не завести свои моторы, maf не интересен никому. Вот конкретная задача в которую упирается даже теоретическая возможность запустить еще моторы. Для решения этой задачи не нужно было новое железо или человеко-год времени. Работы там меньше, чем нужно на can или gps. Но были выбраны can и gps, которые к фундаментальному функционалу не имеют вообще никакого отношения.
Я правильно понимаю, что Вы отвечали за железо, а andrey239 — за софт? И что он отказался от разработки соответствующей софтовой части, предпочитая описанное в статье?
Нет, я не отвечал за железо, да и немного моего кода в rusefi есть. Пытался организовать группу понимающих в железе людей для разработки платы под этот конкретный проект. Андрей сказал, мол, делайте что хотите, я буду привлекать народ для разработки таких вот франкенштейнов, а вы делайте что хотите, полноценная плата без дискавери (на которой гироскоп и микрофон) сейчас не приоритетна. Каждый сам по себе.
Вроде как и не плохо, но работая совместно можно было достичь больших результатов и достичь их быстрее. При нормальном подходе та версия железа была бы уже готова. Разработка той версии железа над которой работали мы заглохла, так как я бросил постоянно тыкать палочкой народ. Есть схемы, но нужно организовывать людей для дальнейшей работы, а на это ведь тоже нет времени :).
Можно было закончить работу над той версией железа, которая не подразумевала в своем составе отладочной платы, но часть обстоятельств от проекта меня оттолкнули.
И не в последнюю очередь неприятная ситуация, когда Андрей мог привлечь к проекту разработчика имеющего опыт в разработке железа автомобильных мозгов, но не сделал этого.
Абалдеть. Пять мотогов могло быть? Но коварный Костя сделал GPS, и всё пошло крахом…

Да, ты раскрыл тайну — на самом деле я хочу проекту только плохого, я просто коварно сабатирую :)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Насколько я понял общаясь с Андреем по поводу лицензии, единственное почему он не взял популярную широко применяемую лицензию — он хочет оставить за собой право потом взять все эти наработки и использовать в своем закрытом (и наверное же платном) проекте. Так как решение на этот счет принимает он единолично возможен такой сценарий, например. Андрей делает форк, объявляет его закрытым (железо/софт), при этом свободно из открытой части проекта может использовать наработки в своем закрытом форке. Из закрытой в открытую часть, естественно, можно ничего не пускать, иначе кто будет покупать закрытое, если можно взять открытое бесплатно? Сообщество разрабатывает открытый проект, все наработки перетекают в закрытый + собственные наработки в закрытом. Удобно.

Да, он вложил много усилий в этот проект, но сценарий от этого не становится невозможным. Вот по этому я и сказал, что эта лицензия мне не нравится.
А нет ли некоторого противоречия между двумя тезисами:

Первый тезис — «Андрей был обязан сделать фичу MAP, но не сделал её в приемлимые сроки»
и
Второй тезис — «Сообщество разрабатывает открытый проект, как Андрей смеет не отказываться полностью от своих авторских прав»
?
НЛО прилетело и опубликовало эту надпись здесь
спокойно, выдыхаем. Лицензия мутная — нужно будет прояснять, я завёл тикет sourceforge.net/p/rusefi/tickets/57/

Про охинею и медведя не понял.

Давайте на личности не будет так банально переходить и тему школы закроем здесь, заранее спасибо :)
НЛО прилетело и опубликовало эту надпись здесь
Уже 'Андрейка'?

Ну это же просто тупо так себя вести :(
Похоже проблематика достаточно типичная и решается она двойной лицензией —
producingoss.com/en/dual-licensing.html

С судом мы немного забегаем вперёд, а вот пожертвования кода придётся действительно начать подкреплять подписью. См. rusefi.com/forum/viewtopic.php?t=325

Лицензия на прошивку стала GPL 3.0

Но про Андрейку всё равно оскорбительно и тупо.
Нужно понимать, что даже с GPL 3.0 за мной ровно это же право и остаётся — не очень многое с переходом на GPL 3.0 меняется. Но с GPL 3.0 конечно же всё намного чище и понятнее.
Кстати да, понятие «open source» в лицензии использовать нельзя, это мутный термин. Значит лицензию нужно уточнять — sourceforge.net/p/rusefi/tickets/57/
Спасибо за мудрое замечание!
Лицензия на прошивку стала GPL 3.0 — спасибо, что допинал меня хоть так разобратсья в вопросе :)
PS: а еще лучше — вернись к нам! У нас платка есть, её можно юзать. Из 10 штук в РФ должно скоро появится.
Я как ярый пользователь T5Suite на Саабах и Megasquirt на хондах всегда заинтересован в подобных начинаниях. Я постарался поискать на сайте, но не нашел ответа: Вы как будете реализовывать knock detection? Будет датчик типа микрофона или что-то вроде ionic sensing как на Саабах? Зажигание будет реализованно индивидуально или wasted spark? В принципе, готов как минимум поконсультировать по некоторым отдельным аспектам.
Будем рады на rusefi.com/forum/ — основная тусовка там

Детонация: у меня уже два месяца в столе лежит плата rusefi.com/forum/viewtopic.php?f=4&t=400 — для HIP9011 (это чип для работы с пьезо датчиком) но времени спаять её и тем более запрограммировать пока нет. Это типичный пример того, что сейчас нам нужны руки, у которых бы было время :)

До ионик ionic sensing нам примерно как до звезды сейчас, у нас один двигатель заведён. Зажигание — да абсолютно как угодно, это очень мелкая деталь имплантации, софту абсолютно всё равно — этот вопрос железом диктуется.
Закончится 8-е марта — зарегистрируюсь. Интересно. Жаль что сейчас мне не на чем даже думать об опробовать — дизель однопроводный у меня сейчас, да и тот провод аж открывает топливный клапан. Так-что я разве-что в роли консультанта.
8-е закончилось :)
Вот только сегодня и закончилось. Ох-уж этот понедельник после 8-го марта… Иду региться как из гаража вернусь.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории