Pull to refresh
88
0
Вадим Дерябкин @Vadimatorikda

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

Send message

Так вот как вы выглядите))) А я сижу потом и не понимаю, зачем питониста за С++ проект пустили))) \sarcasm_off

Да подходит то понятно) Просто в крупных конторах не используется. И не нужно минусовать))) Просто помимо сборки самой прошивки удобно тут же собрать под эту же версию из этого же проекта Unix-тестовую утилиту, статическую либу для ПЛК или чего ещё ну и прочие тесты да верифекаторы

Везде gcc, где-то фиксированный 10-й, где-то последний 13-й. Сборка Makefile умерла в целом. Давно не встречал. CMake + Makefile или Ninja

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

Если сами писали, то да. Надо дополнительно вызвать конструкторы объектов и инициализацию плюсовой либы. Если стандартный от вендора, то нет. Он готов для с++ (у st для stm32 точно так)

Краткий ответ - никак. Длинный: инициализировать в конструкторах только данные-поля экземпляра класса. А уже в main в нужной последовательности init методы. Чтобы и порядок нужный и поведение, если чего не так

Есть ряд устройств, где в целом вывести UART нельзя) Авионика та же (в рамках РФ ГОСТ-ов). Спасибо, что хоть JTAG выводят) Ну и да. Есть устройства с микроконтроллерами без UART. Он там и не нужен). Те же контроллеры питания (DC-DC, только умные, под задачу, если хотите)

Байки байками, а в роботе пылесосе коллеги стоит stm32f103))) Если на них снова ценник скаканет до нереальных 20к рублей за корпус - то пылесос пойдет на паяльную станцию))) Но щас все уже прониклись) Закупили надолго вперед, как на али начало снова всё появляться)

Отвратительно))) Продолжай.

"Информирование зарегистрированных лиц о состоянии их индивидуальных лицевых счетов"

Только вот все предприятия, в которых я работал - еще живые и продолжают деятельность (вроде как).

О! Мой случай!) Сначала запросил, увидел стаж 7 лет. Запросил после перехода на электронную (примерно через месяц), стаж 0 лет, три месяца. Потом запросил еще через 2 месяца пока пытался попасть на прием в ПФР (а это тянется уже 2-й месяц и записи все нет). Стало 0 лет, 0 месяцев, 0 дней) При том, что я действующий сотрудник с белой ЗП) Такие вот дела) Прихожу каждый понедельник в 9 утра в ПФР и прошу записаться по этому вопросу. Пока записи нет)

У меня на прошлой работе не прокатило. Либо увольняйся либо переходи. И это после того, как все документы составили и потребовали срочно подпись)

А мне именно палитра нравится. Выглядит замечательно. Хотя мне и герои меча и магии 4 нравятся больше остальных частей вместе с российскими микроконтроллерами. Возможно это связано.

Для массового применения без последующих обновлений можно хоть 4-хбитки лепить... Я просто работаю там, где требуется долгая поддержка. В районе 10 лет. И там важно. Ну и речь про авиацию. Так что увы.

А вот на фрилансах я даже ESP8262 закладывал. Было норм. 1 раз выпустили и все)

Про переделку и продажу деталей. Чем они более широкого уровня, тем дороже и габаритнее. Так что врят ли. С другой стороны, сейчас материнки на те же телефоны и так продают как один компонент.

Произошел троттлинг

И не говорите мне, что не перечитывали дважды!

А так статья интересная, спасибо)

Необходимость генерации профиля под конкретное приложение напрягает

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

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

Чем круче ос, тем больше она жрет и нужно более мощное железо, чтобы это сгладить. Моя текущая ОС может дать фору в производительности FreeRTOS-у, но лишь потому, что проще. ОС, что вы опишете, не факт, что будет сильно быстрее целого Linux ядра. А последнее можно настроить с минимальными надстройками и запустить на чипе дешевле, чем многие "мощные" микроконтроллеры. Так же не стоит забывать, что сейчас есть много SoC, внутри которых есть нормальный процессор Cortex-A, а так же куча периферии и памяти внутри. И формально, у вас 1 кристалл (хоть и довольно крупный), на котором сразу все есть. И памяти мегабайт 128, и ram, мегебайт 32. Все есть. И Linux стартует сразу из коробки. И тут уже отпадает всякое желание натягивать сову на глобус.

Все же напомню главное в разработке. Для каждого проекта свое решение. Пихать одно решение всюду (как Arduino), далеко не всегда оправдано. А иногда и вредно.

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

А не думали применить подход Embox, то есть компилировать только нужные части из FreeRTOS?

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

а в меньшей отлаженности и протестированности решения

Само собой пока что не могу гарантировать что в ОС нет ошибок. На данный момент ее наработка в проектах безотказно только около 3 дней без остановки. Нужен куда более долгий срок анализа. Также сам код еще нуждается в улучшениях. Сейчас работаю над ними в нерелизной ветви.

 Вы же не просто так сохранили совместимость по API, и если я правильно понял задумку то в идеале вам следует переиспользовать планировщик (может быть аддаптированный) и добавить свои фичи, типа статической инициализации задач.

Оставил для того, чтобы можно было легче переходить с одной на другую. Я не позиционирую свою, как заметили в личных сообщениях, "всрат-ос" (название оставлю, будет как PIDORA, запоминающимся) как замена FreeRTOS. Это скорее выход из положения, когда осознаешь, что не влез, а партия на руках.

А теперь насчет расширения ядра... Честно, FreeRTOS страшный. Я много лет смотрю на него. И это обилие ifdef убивает. Я пару раз делал его порты под мало кому известные архитектуры. Местами просто под давно уже мертвые... И достаточно насмотрелся на ее код. Но это не отменяет ее главного достойнства. FreeRTOS - работает. Если конечно настроена верна.

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

Да. Именно так. И, забыл написать в статье. Напишу тут. Есть киллер фича. Вы можете разместить основную структуру ОС в RTC регистрах у микроконтроллера. Тогда ее 100% никто не перепишет и если упадете, то 100% будете знать, где именно. Не обязательно RTC регистры. Куда угодно, где есть 4 32-х битных слова быстро изменяемой памяти.

Information

Rating
3,515-th
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