Вадим Дерябкин @Vadimatorikda
Инженер-программист
Information
- Rating
- Does not participate
- Location
- Красноярск, Красноярский край, Россия
- Date of birth
- Registered
- Activity
Specialization
Software Developer, Embedded Software Engineer
Lead
From 250,000 ₽
C++
STM32
Linux
Circuitry
Python
Assembler
Programming microcontrollers
Embedded system
Software development
Object-oriented design
Думаю, тут все на вкус… Keil, на сколько я помню (могу ошибаться) использует свои библиотеки и свой компилятор (который отличается значительно от gcc). Если не прав, то прошу поправить. Так что тут сложно сказать. Давно не работал с keil.
У меня не стояло задачи отправки строки в сеть. Возможность перепаковывать — просто дополнительный презент.
Согласен. Но уже стакнулся, что некоторые библиотеки (особенно бесит, когда данные производителем в бинарном виде), используют printf для логирования данных.
Не работал. Возьму на заметку. Попробую достать. А какой контроллер шили?
SDIO интерфейс использовали? Или по SPI? Я стараюсь первый использовать. 4 бита. В проекта что разбирал в статье — это избыточно. Но вот например когда идет запись видео, хотя бы 480p, то уже критично.
Спорный вопрос. Если вы храните пакет на git, то вам нет труда отследить соответствие.
Можно уточнить, какой? Конкретно stm32f405rgt6 с помощью официального st-link v2 на «4000» шьет порядка 10 секунд (на отладочной можно в режиме «9000» шить, но почему-то на моем конкретном чипе не прокатывает). J-link с AliExpres шьет примерно так же. Причем я сейчас говорю про скорость по JTAG порту, а не по SWD.
В принципе, согласен. Теперь уже. Когда сделал и понял, что больше проблем, чем плюсов.
Тут когда как. Порой хочется исправить, например, неверный переход по меню и сразу посмотреть, как оно работает. Но это уже отладка бизнес-логики. Ее лучше производить либо в проекте собранном под компьютер, либо через скриптовую машину, если таковая есть в проекте.
Предпочитаю, если есть возможность, ставить что-то типа micro-sd или, если недопустимо по требованиям вибрационной устойчивости или прочего, то на flash на плате накатывать fat и использовать файловую систему для всяких картинок и прочего. Это дает не сильные накладные расходы, зато удобно сопровождать.
Да понятное дело, что не норма. Однако распределение времени это уже дело не разработчиков, а начальства. Если скажут «за 2 часа» — будет за 2 часа. Скажут «тщательно продумать на будущее» — будет, условно, за 2 месяца.
Про «2 дня», конечно, утрирую (хотя опыт поднятия eth за 2 дня действительно был. Правда это на скорую руку было и действительно потом пришлось писать в течении двух недель нормально. Чтобы стыковалось со всем наработанным API). Просто обычно занимаешься несколькими проектами и нет особо времени капаться.
Само собой нужно понимать что происходит. Поскольку HAL не идеален и нужно быть готовым в случае чего поправить.
Да понятно, что есть наработки и как правило написание прошивок под МК скорее напоминает конструктор на основе когда-то правильно спланированной архитектуре.
От железа. В идеале, когда в проекте есть класс bsp (при условии, что пишете на С++), который предоставляет данные с датчиков и прочие сигналы из вне, а так же позволяет выводить сигналы во внешний мир (pwm, uart,,,) через приятные прослойки.
Да, согласен. В домашних проектах нормально. Можно. Но в продакшене, увы. Когда просят «эзернет за 2 дня», то уже нет времени вдумчиво сидеть и работать с регистрами, которых порой более 500 на модуль… Чего стоит настройка DMA2D+LTDC например. Другой вопрос, что один раз под себя написал и пользуешь. Но на это, опять же, нужно время.
Так же согласен. Но все же помогает как-то абстрагироваться.
Ну а теперь по делу: