• Как лучше вносить изменения в стороннюю библиотеку С?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    1 вариант: если можете "всунуть" управление приёмом/передачей в "портовую" часть, то проще добавить свою папку порта с своими изменениями.
    2 вариант: библиотеку в гит и свои изменения в отдельную ветку
    3 вариант: 2 и 1 вариант если либмодбас например в гитхабе, то предложить пул реквест со своими изменениями
    Ответ написан
    Комментировать
  • Как найти программистов и сделать свой штат программистов?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Я не бизнесмен, не консультант. Но позволю себе замечание (основанное в т.ч. на ответах выше): вам стоит продумать стратегию развития своего продукта. Не стоит этого делать в одиночку, но принимать решение только вам. И определитесь со своей ролью в проекте. Если вы не технарь, придётся "отдать" техническую часть отдельному человеку. Но он должен полностью вас информировать! + продажники или им подобные. Кратко как-то так!
    Удачи!
    ps интересно бы узнать технологический стек и про проект!
    Ответ написан
    Комментировать
  • С чего начать обучение embedded-разработки, с перспективой работать в будущем с технологией BCI?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Не вижу связь между Embedded-разработчик (программист или электронщик?), BCI и шлемы виртуальной реальности.
    Вы хотите быть "инженером, который будет на передовой открытий в области нейроинтерфейсов". Так копайте в эту сторону. На хабре есть статьи по этой тематике, отталкивайтесь от этого. Слышал про молодого человека (студента) который делал протезы. По гуглите.
    bci это больше медицинская область, чем электроника. "Снять" электрические сигналы с мозга (вроде) не такая проблема.
    Искать на тостере знатоков bci (тем более в России, да простят меня) наверное не лучшая идея.
    Удачи! Отпишитесь, когда получится (без сарказма).
    Ну и вы должны понимать, что вам придётся старое забыть и новое узнать!
    ps "монтажником РЭА"
    Ответ написан
    Комментировать
  • Откуда странный "Нисходящий" Пинг у сервера?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Не хватает инфы!
    У Вас проблема может быть в 3 местах: на пк которое пингует, сеть, пк(сервер) которого пингуют.
    По-моему нет проблем исключить 1 и 2: пингуем с других пк из других сетей.
    Сервер линукс? Крутить логи сервера, Wireshark повесить на протокол ICMP на сервере.
    Удачи!
    Ответ написан
  • Какие есть бесплатные системы ведения документации?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Мне кажется у Вас 1 вопрос и 2 требования: "бесплатные системы ведения документации" и "где я смогу удобно систематизировать свои мысли". Вопрос как Вам удобно систематизировать свои мысли? Просто быстро записав текст? Или может доски (Trello)?

    Я рекомендую Sphinx (+doxygen) для доков и Trello для управления проектов!

    Удачи!
    Ответ написан
  • Как начать работать на бирже Upwork?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Не понятно чего хотите спросить, аж 3 вопроса: как, что нужно и верификация!

    Как? Надо зарегиться, заполнить профиль.
    Что нужно? Знать английский, знать своё дело (стек и т.д.), знать себе цену, уметь планировать время (особенно если есть основная работа), иметь инструменты (например если эмбедер), быть честным (перед собой прежде всего), не помешает "самозанятый"(налог), здоровья (чтоб сидеть на 5ой точке, больше чем обычно)) ). И наверное желание)

    Верификацию проходил после получения первого заказа. На английском языке. Смог пообщаться только на второй раз). Спросили кто зачем и почему) минут 5, не больше. Но я по 100 раз переспрашивал)) Да и интерьювер был похоже индус)

    Не берите проекты ради профиля. Берите нормальный проект, где уверены что сможете. Пообщайтесь с заказчиком. Обговорите всё "на берегу". Я при обсуждении, уточнении вопросов, прям так и писал: я должен знать все нюансы работы, чтоб быть увереным что могу сделать! Заказчикам это нравится))

    Удачи!
    Ответ написан
    Комментировать
  • Как организовать совместную разработку нескольких проектов в git?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Каждый проект свой git реп с submodules (ядро + модули)
    Разработку во всех репах вести по методологии gitflow: master (или release), ветка develop (является родительской для мастера), фичаветки (активная разработка фич, фик и т.д.). С фичаветки в девелоп, проверяем, сливаем в мастер. Заказчику уходят только мастера репов!
    Главное грамотно разделять на модули! И наверное придётся следить за таким моментом: в модуль добавили фичу, которая требует поравить ядро. Необходимо перед деплоем убедиться, что модуль и ядро соответствуют! На 5+ модулях это делать в ручную уже так себе!
    Удачи!
    Ответ написан
    Комментировать
  • Какой менеджер задач выбрать для себя?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Много опций! Только десктоп. Файл тасков XML - можно попробовать визуализировать)
    https://www.abstractspoon.com/
    Ответ написан
    Комментировать
  • Как начать карьеру embedded разработчика?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Судя по тому что Вы умеете, вы уже начали карьеру)

    1.1 А как должен относиться работодатель к сотруднику который не очень опытен? Либо в Вас увидят "звёздочку" и возьмут в сурьезную разработку. Либо устроитесь в шарашконтору.
    1.2 Наверное пойти в шарашконтору/фриланс. Либо показать что уже сейчас не уступаете с опытом в 1-3 года.

    2. В интересном! Реально, зачем искать себя в цифре, если интересен аналог? Даже на лампах можно заработать. А вот заниматься не интересным, максимум 3 года

    3. Может и стоит. Но что вы подразумеваете под "разработке под ПЛК"?
    Делать свой PLC? - только в академических целях (илисмотрите в сторону Beremiz/OpenPLC)
    Писать код для PLC (IEC61131-3)? Возможно денег немного больше можно найти, но скукатище (по мне). Как там с ООП?

    Пилите интересные для себя проекты. Выкладывайте на github. Заведите бложек, можно ведь пока и на vash_domen.wo..p..s.com Ну Вы поняли где?))
    Перспективные направления? Наверное embedded linux. Сколько стоит сегодня "10 МГц" процессора? А сколько 5 лет? Скоро процы на которые можно накатить линуху будут по цене
    2-3 ардуин. Но нужно подождать, а пока готовиться)) Это моё имхо!

    Удачи!
    Ответ написан
    2 комментария
  • Как и где хранить общие файлы?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    По моему git submodule самое то оно.
    Создаёте 3 реп. туда общие файлы. И в каждый реп добавляете субмодуль. По мере обновления синхронизируете субмодули!

    Чем хорошо субмодуль? Тем что, вы можете "взять" слепок основного репа и субмодуля. При этом вести активную работу на всех трех. Ну и естественно использовать ветвление: всё что уходит в деплой берёте строго с веток релиз (например). + правильно здесь использовать теги. Особенно у субмодуля. Т.е. забирать с субмодуля не по камиту, а по тегу.
    Удачи!
    Ответ написан
    2 комментария
  • На каком языке сейчас чаще всего программируют микроконтроллеры?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Всё зависит от задачи!
    С, С++, Rust, asm. Примерно такое распределение использования я вижу.
    Я С++ использую скорее как "С с классами". Замечу что С++ не намного жрёт ресурсы по сравнению с С. Нужно "уметь готовить" (-fno-exceptions, -fno-rtti, виртуальные функциию, наследования и т.д.).
    С++ позволил написать драйверы на периферию (таймеры, spi, i2c, uart). И при переходе с платформы на платформу минимизировать изменения, а то и избежать их. Естественно не обошлось без использования STL (в основном контейнеры), но не использовать методы с exception.
    Но вся низкоуровненвая часть на Сях.
    Ответ написан
    Комментировать
  • FreeRTOS: какие правила хорошего тона?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Прежде всего смотрите на RTOS (любую) как на инструмент решения Вашей задачи. У любого инструмента есть описание: Курниц (вполне себе актуален и сейчас) и офф мануал в pdf (по-моему бесплатно дают).
    Правильно пользоваться ОС это значит понимать:
    1) разницу в примитивах синхронизации (очередь, мьютекс, семафор) когда и где ими пользоваться
    2) как задавать размер стека и приоритет задачам
    3) что делать в прерываниях и что делать в задачах (в том числе как правильно задавать приоритеты прерываний)
    Это первое что пришло на ум.

    Мне лично, после перехода на ОС, пришлось немного перестраивать мышление при написании кода:
    1) ты никогда не знаешь когда выполнится код в одной задаче по сравнению с соседней задачей.
    2) выполнение задачи могут прервать другие задачи и прерывания
    3) если задача куда-то пишет, а другая читает - значит их нужно синхронизировать
    и т.д.
    Удачи!
    Ответ написан
    1 комментарий
  • Как передать данные из usb audio в uart в stm32f103c8t6?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Не уверен, но думаю примерно так:
    файл usbd_audio.c
    функция static uint8_t USBD_AUDIO_DataOut (USBD_HandleTypeDef *pdev, uint8_t epnum)
    там вызывается Ваша функция обратного вызова:
    ((USBD_AUDIO_ItfTypeDef *)pdev->pUserData)->AudioCmd(&haudio->buffer[0], AUDIO_TOTAL_BUF_SIZE/2, AUDIO_CMD_START);
    А синхронизация по функции StartOfFrame или void USBD_AUDIO_Sync (USBD_HandleTypeDef *pdev, AUDIO_OffsetTypeDef offset) там же.
    Смотрите примеры от ST (в кубе есть).
    Удачи!
    Ответ написан
    1 комментарий
  • Где найти хороший мануал по FreeRTOS под Cortex-M3?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    1) Есть же документация на сайте! В pdf формате!
    2) На сайте microsin.ru
    3) 10 (или 11) Лекций Курница (из журнала компоненты и технологии).
    Всё гуглится!

    Если прям вот хочется увидеть что там конкретно под кортекс, то идите в папку portable. Ничего особенного не увидите!

    Любые опции вкл/выкл в файле freertos_config.h.

    То ей оказывается обязательное включение -O1, то теперь по непонятной причине падает в uxListRemove.
    Такое не видел. С чего Вы решили что надо с -O1 компилить?

    но вот с минимальным размером стека задачи и кучей возникают вопросы - не совсем ясно до каких пределов их можно уменьшать(стек вроде еще и считается в словах), а динамическое выделение памяти текущий порт FreeRTOS отключить не дает.
    Стек, да, в словах. Подсчитать объём занимаемой таском памяти - не тривиальная задача. Я пользуюсь ключом компиляции "-fstack-usage" Генерятся файлы. Их скармливаем avstack.pl (гуглится) Программа хоть и для AVR но работает. Там можно посмотреть сколько задача кушает стека!

    Плюс есть плагины и ключи для просмотра стека задач и т.д.! Но тут надо учитывать что задача "пройдёт" самый "прожорливый" для стека путь!

    Не ленитесь "обложиться" инструментами - сэкономят в будущем уйму времени и сил!

    Удачи!
    Ответ написан
  • Кто знает литературу по профессиональному программированию микроконтроллеров?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    По основной теме вопроса: сам мучаюсь, но мучаюсь только по тому что "не умею" программировать. То что нужно продумывать архитектуру с самого нала - это в некоторых случаях крайне рекомендательно. У нас разрабатывается несколько устройств - приходится писать общие библиотеки. Приходится писать достаточно гибкие библиотеки - иначе переписывать приходится!
    Как показала практика очень часто встречаются указатели на функции, стейт машины, операционки (freertos, chibios и т.д.) и т.д. Отличным подходом (имхо) буде написание низкоуровневых (HAL от stm32) и высокоуровневых функций (modbus, canopen и т.д.). Вот эти вещи посмотрите как делают.

    По вопросу реализации коммуникации по рс485: если протокол отличный от модбаса, но похож - посмотрите на библиотеку freemodbus.

    Сейчас тихонько пытаемся внедрить тесты. Есть отличная книжка на английском (переводов не встречал): we.easyelectronics.ru/Nemo/tdd-dlya-embedded.html - там же ссылка на эту книгу.
    Чем хорошо писать "под тесты"? Тем что писать каждую функцию приходится думая, а бы как не напишешь. Короче видим плюсы в этом!
    Удачи!
    Ответ написан
    1 комментарий
  • Как писать и обрабатывать функции с несколькими вариантами результата?

    bullitufa
    @bullitufa Автор вопроса
    электронщик программист (микроконтроллеры и PC)
    И еще вопрос: стоит ли использовать enum как возврат функции? Помоему результат куда читабельней скажем RES_OK, чем 0!
    Ответ написан
    Комментировать
  • Какие сайты для фриланса электронщиков?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Должен добавить еще форум на сайте easy, не безызвестного в кругах электронщиков DIHALT . Можно попробовать поискать на upwork (odesk), но там маловато предложений (по моим интересам).

    Но это только пол дела, надо еще привлечь к себе заказчиков. У меня с коллегой предложения о работе на сайтах были практически одинаковые, но у него была ссылка на свою страницу с описанием ранее выполненных работ, а у меня нет. К нему обратилось человек 6-10, ко мне двое.
    Ответ написан
    Комментировать
  • Как управлять питанием в stm32f4?

    bullitufa
    @bullitufa
    электронщик программист (микроконтроллеры и PC)
    Вы питание блутуза прям с ноги мк снимаете??? Так не стоит делать.
    Проще всего через транзистор. Тогда и уровень питания не будет помехой.
    Ответ написан