Embedded SW/Firmware Engineer
Information
- Rating
- 64-th
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity
Specialization
Embedded Software Engineer, DevOps
Senior
Git
Bash
CI/CD
C
Embedded system
Programming microcontrollers
Software development
Algorithms and data structures
System Programming
Development of drivers
Раньше приходилось работать с больным legacy кодом в IAR.
Новые же проекты я собираю из Make.
Это хорошее предложение.
Но тут такое дело. Компания купила за 40млн руб у OutSourcer(ов) код прошивки и те по глупости нафигачили всё в IAR. В OutSourcer работали ВУЗ(овцы) и они просто ничего не знали кроме IAR. Так как у них в универе была какая-то лаба в IAR.
Теперь от IAR так просто не избавится. Особенно сейчас в перид санкций это совсем не круто зависеть от ЕС. Плюс пришлось уже заплатить 10500 евро Шведам за 3 лицензии этой пресловутой IDE, чтобы хоть как-то работать с горе-Legacy от OutSourcer(ов) (нет модульных тестов, нет UART-CLI, спагетти-код).
Понадобится инфраструктурная неделя длительностью минимум 4 месяцев, чтобы перевести все 53 конфигурации IAR на сборки из Make. Но на эту уже нет ресурсов.
Да и руководство считает, что товар хороший, раз расходы такие большие.
IAR использует xml как исходник
Keil использует xml как исходник
CodeCopposerStudio использует xml как исходник
AtolicTrueStudio в режиме авто генерации make файлов использует xml как исходник
Лож! В IDE IAR это большая сложностью.
В MakeFile нет xml для каждого проекта. Как в IDE.
Это значит, что добавление и исключение сотен .с файлов для сотен сборок можно делать одной строчкой в make.
IAR
При сборке из Make можно одной строчкой включать/исключать из сотен сборок сотни файлов.
В случае с IDE пришлось бы неделю редактировать *.xml(ки) *.ewp, чтобы сделать что-то подобное. Причем если ошибешься с пробелом или запятой в этих IDE(шных) xml, то проект вообще покорраптится и даже не откроется.
IDE это для школоты и протопитирования, когда 1 конфигурация и 1 сборка.
Если вы собираете сорцы из Makefile, то вы можете инициировать сборки прямо из командной строки. А это значит, что процесс сборки можно автоматизировать. Прикреплять в Jenkins. А утром контролировать результаты сотен сборок, что отработали ночью. Производительность работы с Makefile выше.
В случае с IDE вам придется вручную водить мышку, чтобы стартонуть сборку.
Американский профессор Jacob Sorber, доказывает, что люди, которые привыкли программировать в IDE имеют тенденцию становиться очень слабыми программистами.
https://www.youtube.com/watch?v=Pqf6H1WSbeY
потому, что User(ы) IDE не понимают какой путь проходят исходники с момента написания до попадания в Flash. За них всё делает IDE.
deleted
Что сейчас пишут на Fortarn(е)?
Никакой это не специальный оператор.
После автоматического форматирования получится 2 оператора (--, пробел, >).
while (i-- > 0) { ... }
Лучше потому что функции помещаются на один экран.
А для поиска по коду можно обратиться к утилите grep.
Когда Switch разрастается больше 45 строк, то надо делать статические LookUpTable(лы) (LUTы). Элементом LUT(а) может являться указатель на функцию до 45 строк.
Согласен. С++ не подходит для программирования MК так как С++ запрещает стандартом брать адрес функции main. А это необходимо для run-time проверки, что первичный, вторичный загрузчики и многоядерные сборки Generic(ов) легли в нужные адреса NorFlash(а).
Есть такие понятия как верхняя и нижняя половины обработчика прерываний.
Верхняя половина работает в ISR ставит флаги
Нижняя половина работает в супер цикле и запускает долгие функции обработчики.
Маркировка часто не соответствует названию чипа.
Тот 54страничный перечеркнутый pdf это очередной flyer.
Попробуйте найти карту PMB регистров чипа PM6766. Например битовую детализацию регистра STATUS_BYTE.
При работе с полной схемотехникой в pdf даже на 11 листах поиск Ctrl+F подтормаживает. Поэтому надо делать блок схемы.
ARM банит пользователей из РФ