Posts for: #Разработка

Скрытая цена невыравненности: чем на самом деле платят за #pragma pack(1)

Скрытая цена невыравненности: чем на самом деле платят за #pragma pack(1)

Почему упакованная через pack(1) структура заставляет компилятор разбирать на байты даже идеально выровненные поля, как это исправляет связка packed + aligned(4), что происходит, когда структура разрастается, и как отловить невыравненные поля линтером — с дизассемблером RISC-V и сравнением семи архитектур.

[Читать далее]

ESP-IDF и ESP32: ключевые концепции для тех, кто пришёл из Arduino

ESP-IDF и ESP32: ключевые концепции для тех, кто пришёл из Arduino

Что нужно понять, чтобы ESP-IDF перестал казаться сложным: конфигурационные структуры и типы с суффиксом _t, хендлы, указатели и оператор взятия адреса, система логирования ESP_LOGx, коды ошибок esp_err_t и ESP_ERROR_CHECK, событийная модель с колбэками и задачи FreeRTOS.

[Читать далее]

Логирование во встраиваемом Linux: как не износить флеш раньше времени

Разбор компромиссов логирования на устройствах с eMMC: почему мелкие частые записи убивают флеш, что даёт кольцевой буфер ядра, чем BusyBox syslogd отличается от journald, какие параметры journald.conf реально влияют на износ, и как фильтрация через Fluent Bit и превращение логов в метрики сокращают объём хранимого.

[Читать далее]

Просто возьми и используй Go

Просто возьми и используй Go

Резкий, но по делу манифест в пользу Go на бэкенде: язык скучный намеренно, стандартная библиотека и есть фреймворк, горутины и каналы вместо async/await, один статический бинарник вместо Docker и Kubernetes, а go.mod и go.sum — вместо ада node_modules. Разбираем аргументы с примерами кода.

[Читать далее]

West в Zephyr: восемь приёмов, которые экономят часы и гигабайты

Мета-инструмент Zephyr умеет заметно больше, чем west init и west build: выборочный импорт манифестов, общий кеш между воркспейсами, поверхностное клонирование, алиасы, расширения и фиксация зависимостей по SHA.

[Читать далее]