Как стать автором
Обновить
4
0
Максим @mctMaks

инженер-программист

Отправить сообщение

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

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

Можно буквально одной строчкой в скриптах сборки добавлять или исключать один конкретный программный компонент (десятки файлов)

Клик ПКМ в выпадающем меню выбрать "исключить из сборки". При необходимости повторить для нескольких конфигураций.

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

p.s. ещё и джуниором обозвали)

Почему важно собирать код из скриптов

Это только ваше мнение и я с ним имею право быть не согласным. Я согласен что скрипты в сборке полезны и более того, без них часто бывает сложно, но ведь скрипты умеют вызывать наверно все IDE как перед компиляций, так и после. Что в принципе я и использую. У меня есть несколько batch файлов, которые делают разные полезные вещи (например, формируют файл для "обновления по воздуху", правильно его именуют, помещают в правильную директорию на сервере и рядом бонусом кладут файл с описанием изменений). Были даже bash-скрипты которые тянули из гита описание тэгов и формировали историю версий.

И мне кажется, вы смешиваете сущности. Есть скрипты окружения (формирование номера версии, перекладывание результатов сборки куда-либо), а есть система сборки (компиляция + линковка). Для общего понимания наверно да, надо уметь собирать с помощью своего скрипта, но в большинстве случае: зачем? Какое преимущество это дает? Если Вася собирает проект в IDE, получает ровно тот же самый hex файл прошивки и тратит на него меньше времени, то зачем руководителю платить Пете, который умеет собирать из makefile, но тратит на весь процесс больше времени? Если при этом Васе ещё и IDE помогает в отладке, то почему бы и не купить ему лицензию, ведь это сэкономит много времени.

Я думаю есть отрасль, где существуют требования по использованию именно makefile (или его аналогов). Но это же не повод обобщать на всех и на все?

Раз уж спросили, отвечу: я использую IDE, Segger Embedded Studio (SES) - так как для Nordic у них свободная лицензия, а последнее время я работаю только с ними. Есть как плюсы, так и минусы. Главный плюс - оно работает из коробки. Опять же, из него запускается Ozone весьма интересный, хоть и специфичный отладчик-профилировщик.

Пробовал Visual Studio с плагином VisualGDB (для зефира, в целом весьма удобно, так как смог прикрутить запуск RTT логгера, что позволило видеть логи сразу в консоле студии), в планах попробовать освоить Visual Studio Code.

Пару раз файлы открывались в Qt Creator, когда надо было строчно поправить по результатам тестов и отдать на повторный прогон устройство.

часто заготовки классов пишу в Notepad++ просто потому что привык к нему.

По итогу могу подтвердить что, все фломастеры разные как на цвет, так и на вкус. Где-то удобно сделано автодополнение кода, где-то подсветка лучше, а где-то есть "странный" статический анализатор кода, который может выдать сообщение "данный код не используется в файлах. Есть вызов функции в файлах ... "

Разве это имеет большое значение в чем писать код сейчас или чем его собирать? Писать в текстовом редакторе и руками вызывать make ? Можно, но для чего, если придумали более удобный инструмент?

Этот глюченный  J-Link только с 10й попытки пошаговую отладку запускает

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

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

В то время как OpenOCD безотказный как автомат Калашникова

Он может выводить RTT поток с микроконтроллера? это режим трассировки причем двунаправленный, аналог SWO и semihosting, только немного быстрее. J-Link умеет.

хреновый тогда сеньор, ибо сеггер это ещё и J-Link, наиболее часто встречаемый в последнее время программатор-отладчик, который умеет как в ARM, так и в RISC-V.

Так получается в идеале по стандарту минимум 7.5мс, не считая время опроса и обработки нажатия самой мышью?

Вы не учитываете неидеальность доставки. Это просто период времени, с которым устройства могут выйти в эфир. Далеко не факт что в данный момент данные будут готовы для передачи, либо хост может быть не готов обслуживать именно это соединение. В случае ошибки доставки, следующая передача только в следующий интервал подключения (если стек строго по спецификации работает). Так что 7.5мс это очень сильно оптимистично и дорого по потреблению (да, несмотря на LE это будет в сумму прилично). Хотя с потреблением как раз можно через Max_Latency решить вопрос: это грубо говоря разрешение не выходить указанное число интервалов в эфир для обмена данными, если этих данных нет.

Различие задержки аудиокодеков

аудио через BLE помимо кодека, использует ещё и кэширование на стороне устройства. Кэш в данном случае решает процедуру задержки сигналов при передаче.

Для справки: реакция человека на внешний раздражитель примерно 200 мс.

Реакцию среднестатистического человека оценивают от 100мс (я участвовал в разработке устройств для фиксации времени реакции на раздражение, в составлении ТЗ принимали участия в том числе и доктора).

для беспроводного МК антенны не хватает, но рядом явно флешка с QUAD-SPI интерфейсом.

Раз есть интрига, то предположил бы что-нибудь редкое. Возможно на Cortex M-33, что-то типа stm32u5 серии. Либо STM32G4/G0 серия, в которых удобно питание разводить

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

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

Но в целом да, идея интересная и вполне себе жизнеспособная, главное понять где её стоит применять, а где лучше обойтись чем-то другим.

Ждем теперь "Bad Apple" на основе этой пасты

программы открываются то в 1-м дисплее то во 2-м

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

из отдельных багов/особенностей:

не всегда убиваются сетевые соединения. Был неприятно удивлен когда VPN вдруг перестал работать из-за занятого порта. Оказалось что все свободные порты ... кончились из-за не убитых процессов. Спасение оказалось в сбросе всех сетевых подключений. Перезагрузка не помогла.

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

пойду тоже закажу парочку))

Не совсем понял как китайский аналог работает. Он по сути простая прищепка с пого-пинами? Целевая плата просто вставляется в него? По ссылке на Али пока не понятно, вижу версии с разной длиной штырей, но принципа работы не нашел (пока что). Можно немного подробнее?

Разве Segger виноват в том, что программист задает нулевой размер кучи а потом создает экземпляр класса при помощи new, причем там, где это совершенно не нужно?

проблема в другом. Программист явно указал не использовать кучу, но зачем-то решил это делать (забыл например или не знал что нельзя использовать кучу). Segger в данном случае создал кучу сам в некой области памяти. По map файлу это видно было, но нет данных о размере этой кучи.

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

 Классический ленивый Singleton может так выглядеть

есть много разных вариантов, тот что в моем комментарии выше приведен для примера кода. При желании можно даже такое написать:

template <typename T>
class Singleton {
public:
  static constexpr T& instance() { 
    return inst_;   
  }
  
  const Singleton<T>& operator=(const Singleton<T>&) = delete;

private:  
  inline static T inst_;
};

лакированный провода от наушников лудил в обыкновенной канифоли. на паяльнике капля припоя, провод кладется на канифоль и там уже греется. температура ~350, время порядка 5 секунд на провод. И никаких танцев с бритвой для снятия лака.И приятный запах канифоли вокруг.

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

Что тру C++ программисты думают о reinterpret_cast, кстати?

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

 А потом, и собственный HAL компании, написанный на плюсах разросся, и охватил многие STM32 и Nordic. 

Разрешите поинтересоваться, в целях повышения образованности, а кто такой будет Иван Федорович Крузенштерн код данного HAL является закрытым? Или все же можно посмотреть некоторые интересные моменты?

Сейчас по сути занимаюсь тем же, связка Nrf + STM. Задачи однотипные, но сделать универсальным получается только базовые вещи. Плюсом идет то, что плюсы изучаю в процессе. Некоторые вещи получается сделать красиво, некоторые нет. Хотелось бы повысить свои навыки.

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

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

Итого предприятие теряет на партии миллион рублей, или вынуждено поднять отпускную цену изделия (в принципе, достаточно на те же 100 р, то есть вроде не намного

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

ГПК с патчем 1.3.2 работает стабильно под Windows 11 x64 на ноутбуке honor. Из проблем только звук периодически "хрипит", но это проблема вроде как всегда была. вылет только один раз по сюжетному квесту ГПК.
ККС так же запускался, работал. встретил багу когда камера ушла вместе с НПС, в то время как ГГ остался стоять на месте.

да легко, если "самоучение" дается легко. Вот только зачастую помимо программирования требуется иметь знания в цифровой обработке сигналов, цифровой и аналоговой схемотехнике хотя бы на уровне чтения схемы. Да и знать как держать паяльник не помешает.
мой путь в микропрограммисты начался с практики на том же предприятии где подрабатывал студентом. программировать умел немного на паскале и делфи, Си учил на месте. как и контроллеры. за 7 лет от новичка до ведущего инженера-программиста с учетом отсутствия профильного образования (диплом инженера средств РЭБ) вполне нормально я считаю.

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

1
23 ...

Информация

В рейтинге
4 314-й
Откуда
Таганрог, Ростовская обл., Россия
Дата рождения
Зарегистрирован
Активность