Рубрика «embedded» - 3

На Хабре уже были обзоры самого микроконтроллера К1921ВГ015, поэтому тут повторяться не будем, но вставлю свои 5 копеек. Для меня К1921ВГ015, выглядит как первый нормальныйЧитать полностью »

GitHub: gfazzz/moonlight-course ⭐ | Версия: v0.3 | Язык: C | Статус: 42% готов | Лицензия: MIT

"В мире, где информация — это оружие, код — это ключ к истине"

TL;DR

Предлагаем вашему вниманию интерактивный курс программирования на C, где обучение происходит через захватывающий детективный сюжет. 10 сезонов, 42 эпизода, охватывающих всё: от основ до криптографии, сетей, embedded-систем и квантовых вычислений. Каждая задача — часть большого проекта по расследованию глобального заговора.

🔗 Репозиторий: Читать полностью »

Введение

Всем добра и здравия.

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

Загрузчики до этого не писал, статьи на хабре не нашел, а хотелось. Вернее нашел, но только вводный ликбез, без практики)

Поэтому было решено разбить задачу на мелкие и начать с минимального примера. Подопытным будет BluePill на stm32f103c8t6.

Читать полностью »

Вступление

JSON сейчас встречается буквально везде - от веб-сервисов до IoT, но есть нюанс: почти все популярные JSON-библиотеки писались с расчётом на десктопы и серверы, где оперативку никто не считает по килобайтам. А вот на микроконтроллерах, особенно Cortex-M, каждый байт на счету. Да, конечно, можно гонять сырые структуры и их же писать в конфиг-файл, это как говорится "не запрещено конституцией". Но отладка в таком случае превращается в отдельный квест. В какой-то момент я понял, что мне надоело вручную возиться с JSON на микроконтроллерах: писать километры кода для обхода дерева cJSONЧитать полностью »

О проекте: Пишем один код - собираем на разные 8 бит МК!

https://vm5277.ru- это универсальное решение для embedded-разработки, которое позволяет сократить время создания прошивки для 8 бит микроконтроллеров в разы.

Как это работает:

  • Пишешь код на Java подобном языке (чистое ООП, без головной боли с указателями и не читабельным кодом)

  • Компилятор автоматически генерирует оптимизированный ассемблерный код под выбранную платформу

  • Код работает поверх легковесной RTOS, написанной на ассемблере для максимальной производительности

  • Ассемблер-сборщикЧитать полностью »

Всем привет! Сегодня хочу углубиться в одну из самых важных тем в мире Zephyr OS — синхронизацию потоков и задач. Если вы хоть раз работали с k_thread_create, гоняли потоки туда-сюда и ловили bus fault, вы меня понимаете.

Когда задача одна — всё просто. Но как только вырастает многопоточность, задачи начинают драться за общий ресурс — и тут без надёжной синхронизации не обойтись. У Zephyr OS есть три главных инструмента для этого: spinlock, mutex и semaphore. Каждый со своим характером и подводными камнями.


🚥 Зачем всё это нужно?

Читать полностью »

Когда мы разрабатываем под embedded, нам приходится сталкиваться с такими флагами компиляции как -nostdlib -fno-exceptions -fno-rtti.

Во многих средах нет malloc/free (new/delete) и вообще нет встроенного выделения памяти.

Использование «больших» стандартных контейнеров C++ (например, std::vector) нередко исключено

В результате приходится решать задачу «ручного» управления памятью. Ниже рассмотрим два подхода:

  • Буфер + переопределение оператора new (placement new)

  • Собственная куча (Heap)

    Почему динамической аллокации часто нет

    1. Ограниченные ресурсы

      Читать полностью »

Сегодня трудно удивить одноплатными компьютерами — рынок полон готовых решений от Raspberry Pi до Arduino. Но что, если одноплатная система станет ещё компактнее, а её архитектура — оригинальной? В этой статье я расскажу об инженерных особенностях Mir’s project — проекте, направленном на создание одноплатных ЭВМ. Пока это инженерный прототип и концепция, но я вижу его потенциал — от встраиваемых систем до обучающих платформ.

Зачем?

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

Описание

Даже в 2025 году, когда вокруг нейросети, автогенерация кода и IDE с предиктивным интеллектом, работа с редкими микроконтроллерами всё ещё может обернуться настоящим хардкором. Особенно, если речь идёт о «слепой» отладке без отладчика, когда в арсенале только прошивка, HEX-файл и пара байтов на выводе. В этой статье — личный опыт, много хардкора, дизассемблирование вручную и поиск глюка в 2 КБ бинаря.

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js