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

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

По опыту чем быстрее отладка, тем быстрее разработка. Линуксы не рекомендуют отлаживать без Etherneta 100Base-T, а тут всего 20. :biggrin:

 

А требования по быстрому выведению на рынок они за пределами РФ наверное еще жестче.

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

Это так не работает.

На самом деле делают платформу, делают долго и меняют неохотно.

А быстро выводят только обертку покрашенную в разные цвета.

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


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

По опыту чем быстрее отладка, тем быстрее разработка. Линуксы не рекомендуют отлаживать без Etherneta 100Base-T, а тут всего 20. :biggrin:

 

 

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

Это так не работает.

На самом деле делают платформу, делают долго и меняют неохотно.

А быстро выводят только обертку покрашенную в разные цвета.

 

Ну USB или SD карта с FatFS вполне могут появиться в существующей железке, и это вполне может называться новой моделью. Времени на реализацию такого, никто много давать не будет. И задача может быть поставлена разработчику, который ни с тем, ни с другим, дела не имел ранее. Cube ему вполне поможет.

 

А так да, абсолютно новое никто не выводит. Только можно за платформу взять Cube + HAL, чтобы не писать долго "свое", и далее уже менять обертки поверх этой платформы, играясь с основным функционалом.

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


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

Что-то дискуссия пошла в другую сторону.

Попробую вернуть назад.

Есть 2 крупных вопроса:

1. Приложения жесткого реального времени - есть ли такие, в которых применение ОС РВ недопустимо (ввиду того, что она просто не будет успевать отрабатывать задачи)? А есть ли такие, в которых даже код, сгенерированный Кубом и им подобным будет не успевать отрабатывать? А есть ли такие, где и функции HAL/SPL ввиду своей громоздкости не потянут? Предлагаю обсудить это на примере ЭБУ современного инжекторного двигателя. Его задачи, в первом приближении - собирать информацию с кучи датчиков и давать команды на открытие/закрытие топливных форсунок. Насколько это задача жесткого реального времени? Насколько для её решения применимы ОС РВ, Куб, HAL, SPL и т.п.? Можно ли сделать ЭСУД на Линуксе или какой-нибудь ОС РВ? А сгенерировать код Кубом? Можно развить эту тему дальше и в качестве примеров взять электроусилитель рулевого управления или блок АБС.

 

2. Сертификация ПО для встроенных систем - требуется она или нет? Опять же, в качестве примера возьмём ЭБУ/ЭСУД. Её мозг - микроконтроллер, в котором зашита программа. Требуется ли её сертификация? Не ЭСУД вцелом, а ПО для неё? Предлагаю ограничиться правовым полем РФ. В этом случае, все дороги ведут к техническому регламенту Таможенного союза «О безопасности колесных транспортных средств», вступившему в силу с 1 января 2015 года. Он определяет требования к автомобилям и их отдельным системам. Скачать можно здесь.

Что он говорит о двигателе и ЭСУД? Вот что я там нашел

 

ПРИЛОЖЕНИЕ № 8

Требования к транспортным средствам, находящимся в эксплуатации

9. Требования к двигателю и его системам – читаем, к каким параметрам двигателя какие требования предъявляются. Не густо. Требования весьма общие - выбросы, дымность, шумность и т.п.

 

Приложение 10

Перечень требований к типам компонентов транспортных средств

Читаем п. 92:

Компоненты транспортного средства: изделия системы зажигания для двигателей с принудительным зажиганием (распределители, датчики - распределители, катушки зажигания, модули зажигания, электронные коммутаторы, контроллеры, датчики, прерыватели)

Форма и схема подтверждения соответствия: 2с, 3с (что это значит - см. далее)

Требования или наименование документа, содержащего требования: Должны обеспечиваться: бесперебойное искрообразование; электромагнитная совместимость; работоспособность в условиях окружающей среды; вибро- и ударопрочность; работоспособность при изменении напряжения электрическая прочность изоляции.

 

Это уже подходит под ЭСУД. Т.е. это требования к ней. И где же там требования к ПО контроллера? А их нет.

 

Что за магические числа 2с и 3с - смотрим Приложение 19 - Формы и схемы подтверждения соответствия компонентов транспортных средств требованиям технического регламента о безопасности колесных транспортных средств и рекомендации по их выбору

Схемы обязательной сертификации

Аккредитованная испытательная лаборатория (центр): Проводит испытания типового образца продукции. Аккредитованный орган по сертификации продукции: Проводит анализ состояния производства Выдает заявителю сертификат соответствия

Аккредитованная испытательная лаборатория (центр): Проводит испытания типового образца продукции. Аккредитованный орган по сертификации продукции: Выдает заявителю сертификат соответствия. Осуществляет контроль за сертифицированной продукцией.

 

Вобщем, вывод простой: требований по сертификации ПО на ЭБУ автомобильного двигателя нет. Более того, во всём этом регламенте вообще нет никаких упоминаний о необходимости сертификации или проверки ПО ни на один блок автомобиля. Ни на блок АБС, ни на усилитель рулевого управления. Все требования предъявляются к блокам и системам, а не к их ПО. Система должна вести себя так-то и так-то в таких-то условиях. А уж каким образом производитель этого добивается никого не волнует. Может механически. Может аналоговой схемой. Может цифровой на жесткой логике. Может на микроконтроллере. Может на ПЛИС. Может на нейронной сети. Может квантовым компьютером. К тому, как это реализовано внутри требований нет. Все требования - только к наружному поведению системы/блока в определённых условиях.

Если кто-то может добавить что-то по существу вопроса - прошу высказываться.

 

 

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


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

А так да, абсолютно новое никто не выводит. Только можно за платформу взять Cube + HAL, чтобы не писать долго "свое", и далее уже менять обертки поверх них.

Нет, HAL никак не может быть основой платформы.

Платформа это нечто гораздо большее.

 

Во смотрим образчик использования HAL - https://github.com/vedderb/bldc/blob/master/mcpwm_foc.c с 239 строки.

А вот мой аналогичный код инициализации таймеров для управления двигателем - https://github.com/Indemsys/Universal3PHalf.../K66BLEZ1_FTM.c (ну тут немного кодировка подвела, но не суть) со строки 426

У меня упомянуты и прокоментированы все регистры, даже если их можно было и не трогать. Это для того чтобы вообще не смотреть в мануал.

 

А с HAL вы ничего не понимая идете хэлп по HAL-у, но там увидите просто продоксигененые шапки из сорсов все тех же функций.

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

Итого непроизводительные потери времени.

 

Почему же некторые не видят этой потери времени.

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

Если задача декодировать всего один поток 4-FSK и приладить FatFS, то действительно экзэмплов вполне хватает. Я ж не спорю.

Я с порю только с тем, что это годится для развития. Для развития это тормоз.

Рано или поздно захочется поменять семейство микроконтроллеров, например на i.MX RT.

А на вас висит HAL и никаких навыков по написанию своего нижнего слоя. Вы просто теряет в своей стоимости и становитесь странноватым упертым сторонником серии STM32. :laughing:

 

 

Вобщем, вывод простой: требований по сертификации ПО на ЭБУ автомобильного двигателя нет.

Не там копаете и не те требования смотрите.

Когда дойдет дело до эксплуатации придет такой человечек из службы технического надзора и зарубит всю вашу машину со всеми блоками вместе взятыми покуда вы ему не дадите заключение о безопасности ПО.

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

У нас в России были случаи. Типа ввозите, никаких проблем, у вас отличные сертификаты, а вот эксплуатировать не дадим.

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


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

Вы просто теряет в своей стоимости и становитесь странноватым упертым сторонником серии STM32. :laughing:

 

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

 

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

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


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

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

 

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

 

Именно на это я и намекаю (и уже не первый раз тут).

У реального разработчика часто масса других задач акромя шлифовки собственных драйверов и библиотек.

У меня вот в последний год кровь попила и емкостная клавиатура (работа через стекло 6мм), и силовая часть с МОСФЕТАМИ, и работа с GSM-модемом.

И вот на фоне этого я еще должен оптимизировать код в STM32.

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

Но как-то уровень доходов от продаж не позволяет нанять такого человека. :-)

Ну а сертификация ПО - дело конечно серьезное.

И вероятно где-то кому-то нужное.

Но я в нашем сегменте никогда про него не слышал.

 

 

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


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

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

 

Надеюсь, это не из той же серии, когда производитель, погрязнув в непонимании работы собственного-же глючащего поделия, просит покупать новое - "the latest and greatest".

 

 

 

У реального разработчика часто масса других задач акромя шлифовки собственных драйверов и библиотек.

 

Ну, представьте себе привод, таскающий стол с чушкой на пару сотен кг. Как всегда, двигать нужно быстро, точно и безопасно. Поведение привода должно быть абсолютно детерминировано, поскольку даже незначительные дефекты перемещения приводят к повышенному износу механики, а иногда и к ее разрушению. В такой задаче HAL применить, конечно, можно, но придется проползти весь код, поправить обработчики ошибок, выкинуть лишние проверки и добавить отсутвующие. А потом повторить все еще раз, при выходе очередной версии HALa. Мы этот путь уже проходили, и пришли к выводу, что собственные библиотеки это меньшее из двух зол. При этом, ведь никто не заставляет писать все с нуля - если есть проблемы с пониманием документации (или она просто никудышная), то всегда можно базировать свой код на уже написанном.

 

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

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


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

А с HAL вы ничего не понимая идете хэлп по HAL-у, но там увидите просто продоксигененые шапки из сорсов все тех же функций.

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

Итого непроизводительные потери времени.

Извините, но не удержался..... Вот опять, Александр, вы прямо как бог, знаете кто и как работает и говорите за всех. Я вам предлагаю говорить за себя, остальные подчерпнут ваш опыт. Пишите....

А с HAL вы я ничего не понимая идете иду хэлп по HAL-у, но там увидите вижу просто продоксигененые шапки из сорсов все тех же функций.

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

Итого непроизводительные потери времени.

Я могу расказать за себя, за свой опыт.... и так, смотрим код с 239 строки, на примере короткого куска

 

// Time Base configuration
    TIM_TimeBaseStructure.TIM_Prescaler = 0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned1;
    TIM_TimeBaseStructure.TIM_Period = SYSTEM_CORE_CLOCK / (int)m_conf->foc_f_sw;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

Мне всё понятно. даже комментариев не надо. (кстати, в хорошем коде мало комментариев, имхо). Можно даже куб открыть и на функциональной схеме увидеть эти прескалеры и т.п.

Но я не знаю, все ли поля структуры TIM_TimeBaseStructure здесь проинициализированны? Может там есть ещё какие поля и в них мусор. У меня в качестве IDE - теплоламповый Eclipse. Удерживая Ctrl кликаю по TIM_TimeBaseStructure..... далее по типу структуры и попадаю в stm32l0xx_hal_tim.h на объявление структуры TIM_Base_InitTypeDef, буквально в пару кликов (РОВНО В ДВА КЛИКА), (под рукой открытый проект с хал стм32л0, далее на его примере).... и вижу объявление структуры TIM_Base_InitTypeDef

 

/** @defgroup TIM_Base_Configuration TIM base configuration structure
  * @{
  */
/** 
  * @brief  TIM Time base Configuration Structure definition  
  */
typedef struct
{
  uint32_t Prescaler;         /*!< Specifies the prescaler value used to divide the TIM clock.
                                   This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */

  uint32_t CounterMode;       /*!< Specifies the counter mode.
                                   This parameter can be a value of @ref TIM_Counter_Mode */

  uint32_t Period;            /*!< Specifies the period value to be loaded into the active
                                   Auto-Reload Register at the next update event.
                                   This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF.  */ 

  uint32_t ClockDivision;     /*!< Specifies the clock division.
                                   This parameter can be a value of @ref TIM_ClockDivision */
} TIM_Base_InitTypeDef;

но там увидите просто продоксигененые шапки из сорсов все тех же функций. вижу что в структуре 4 поля. По каждому полю справка. Например поле CounterMode в коде приинциализированно значением TIM_COUNTERMODE_CENTERALIGNED1, а мне надо вверх. Какие битики и в каком регистре ставить чтоб считало вверх? А какие бывают значения у CounterMode ? Вижу комент "This parameter can be a value of @ref TIM_Counter_Mode". Ctrl+F "TIM_Counter_Mode" и нахожу в этомже *.h

/** @defgroup TIM_Counter_Mode Counter mode

* @{

*/

#define TIM_COUNTERMODE_UP ((uint32_t)0x0000U)

#define TIM_COUNTERMODE_DOWN TIM_CR1_DIR

#define TIM_COUNTERMODE_CENTERALIGNED1 TIM_CR1_CMS_0

#define TIM_COUNTERMODE_CENTERALIGNED2 TIM_CR1_CMS_1

#define TIM_COUNTERMODE_CENTERALIGNED3 TIM_CR1_CMS

меняю у себя в коде TIM_COUNTERMODE_CENTERALIGNED1 на TIM_COUNTERMODE_UP.

 

И заметьте.... я ещё в хелп не залез, в котором Александр не видит ни чего кроме шапок. Если даже у меня нет примера кода инита таймера... заглядываю в хелп.... (и вот я только добрался до хелпа на хал....) я хочу выяснить в хелпе из чего состоит структура TIM_Base_InitTypeDef? Не буду копипастить, сделаю скрин хелпа сюда, дабы сохранить форматирование исходного документа (см аттач). По мойму всё понятно, всё отлично продокументированно. Конечно, чтобы знать как работает таймер, нужно смотреть даташит. Если знаете что у таймера 5 режимов счета, вам не нужно ползать по регистрам и битикам, а просто выбрать нужный из енума TIM_Counter_Mode. Итого непроизводительные потери времени экономиться время и производительность возрастает.

Вот как-то так я работаю с HAL/LL/SPL.

 

Что касается аналогичного кода от Александра - то по мне, так это адский код ("адский" не путать с "плохой"). По мне, так код на хале гораздо понятнее. но это моё субъективное мнение..... Это всё касательно темы ТС.

 

ps 2АлександрУ, вопрос риторический: Вы хоть раз в хелп по халу заглядывали, прежде чем писать, что в хелпе ни чего нет, кроме шапки из сорсов?

 

pps

Когда дойдет дело до эксплуатации придет такой человечек из службы технического надзора и зарубит всю вашу машину со всеми блоками вместе взятыми покуда вы ему не дадите заключение о безопасности ПО.
Ну как же человек хочет чтобы мир был таким, как в его фантазиях. Прямо удивительно, как продавливаются фантазии за реальность!!! Религия, причем агрессивно навязываемая!

post-49045-1519874436_thumb.png

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


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

Надеюсь, это не из той же серии, когда производитель, погрязнув в непонимании работы собственного-же глючащего поделия, просит покупать новое - "the latest and greatest".

 

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

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


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

[offtopic]

Вот именно поэтому не стоит писать комментарии на русском:

 

image.png

 

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


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

[offtopic]

Вот именно поэтому не стоит писать комментарии на русском:

:bb-offtopic: Тяжелое наследие виндовса - неумение включить UTF-8 в редакторе.

 

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


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

Ну вот к примеру одна из моих плат - https://geektimes.ru/post/260720/

Safety Critical цепь ней представлена одним расцепителем, который никак не управляется программой.

Его наличие и работоспособность была проверена при сертификации.

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

А иначе прогнали бы по всем кругам ада сертификации ПО.

Эксплуатируется кстати где-то на сотне объектов в России.

 

Качает телеметрию по Wi-Fi со скростью до 20 Мбит/сек.

Некий аналог HAL для Kinetis здесь пришлось выкинуть поскольку он совершенно не тянул такие скорости.

Здравствуйте все.

Бесплатное По на эти микроконтроллеры это очень хорошо. А где приобрести микроконтроллер MK60FN1M0VLQ12 ? как в вашем примере.

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


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

:bb-offtopic: Тяжелое наследие виндовса - неумение включить UTF-8 в редакторе.

Почему UTF-8, а не UTF-16 или UTF-32?

Нее.. ,там github сам накосячил.

 

А где приобрести микроконтроллер MK60FN1M0VLQ12 ? как в вашем примере.

Чесно не знаю, я даю схему и получаю у сборщика платы. Где он достает эти MK60 его проблема.

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


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

.........

Когда дойдет дело до эксплуатации придет такой человечек из службы технического надзора и зарубит всю вашу машину со всеми блоками вместе взятыми покуда вы ему не дадите заключение о безопасности ПО.

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

.........

А вот мне даже интересно. К примеру, есть код, сдали на "заключение о безопасности ПО", устройство работало-работало и глюкануло! И глюк именно программный, т.е. те, кто дали заключение - лажанули.

Можно ли будет на них повесить все убытки? Или они ни за что не в ответе? Тогда смысл их работы - выдать бумажку с печатью за килобаксы в рублях?:

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


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

А вот мне даже интересно. К примеру, есть код, сдали на "заключение о безопасности ПО", устройство работало-работало и глюкануло! И глюк именно программный, т.е. те, кто дали заключение - лажанули.

Можно ли будет на них повесить все убытки? Или они ни за что не в ответе? Тогда смысл их работы - выдать бумажку с печатью за килобаксы в рублях?:

Я думаю если производитель возьмет на себя ответственность и заявит что ошибка программная и ее пропустил орган сертификации то он поставит крест на дальнейшем сотрудничестве и больше никогда ничего не сертифицирует не только в этой, но и в другой лаборатории :-)

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...