Первый поднятый проект - RTOS (операционная система реального времени) для микроконтроллеров RISC-V.

Я использую гнушный тулчейн и D с кросскомпиляцией через LDC и запуском на Qemu.

У RISC-V высокая модульность. Но на практике выходит разброс в этих многочисленных расширениях, в одной версии тулчейн компилит с одними расширениями, в других - с другими.

При этом оно может быть 32-битным и 64. Бонусом может быть одноядерным и многоядерным, а какие-то данные могут шариться между ядрами ради удешевления плат.

Например, пишут, что регистры таймеров (mtime, mtimecmp и т.д) 64-разрядные на обоих системах. В этом случае, если 64-й код может записать по выровненному адресу атомарно, то 32 должен писать в два этапа, сначала в одну половину регистра, а потом в другую, между которыми другое ядро технически может увидеть битый регистр. Это требует барьеров памяти и\или какой-то синхронизации, хм...

#embedded #riscv #dlang #rtos #программирование

Are We RTOS Yet? - Are We RTOS Yet?

🖥️ Driving the Future with Automotive OS

The market is shifting gears — from $6.59B (2023) to $10.65B by 2030, growing at a 7.1% CAGR as software-defined vehicles take over. 🚘💻

know more: https://www.fortunebusinessinsights.com/automotive-operating-system-market-109026

🔊 Jan 2024: BlackBerry launched QNX Sound, decoupling audio from hardware via its RTOS & Hypervisor — giving designers full audio freedom and enabling next-gen in-car sound. 🎶⚙️

#AutomotiveOS #QNX #BlackBerryQNX #InVehicleTech #SoftwareDefinedVehicles #RTOS #CarTech

Zephyr provides k_thread_stack_space_get() and sys_heap_runtime_stats_get() for real-time memory monitoring, which can help you detect memory leaks.
See my tutorial to see how to use them: https://shawnhymel.com/2830/monitoring-stack-and-heap-usage-in-zephyr-how-to-detect-memory-leaks/

#Zephyr #RTOS #embedded #ESP32 @zephyr

Оптимизация управления задачами в Zephyr OS с помощью Thread Pool

Управлять потоками в C для каждой мелкой задачи — это боль. 😤 Даже самые простые задачи вынуждают возиться с k_thread_create , ждать завершения, чистить ресурсы — и всё это превращает твой код в бесконечную головную боль. 🤬 К счастью, в Zephyr OS есть спасение — Thread Pool : набор заранее выделенных потоков, которые берут задачи из очереди и выполняют их без лишнего мусора. Этот подход экономит ресурсы, время и твою нервную систему.

https://habr.com/ru/articles/925300/

#iot #iot_разработка #микроконтроллеры #embedded_systems #thread_pool #zephyr #rtos #embedded_c_programming #потоки

Оптимизация управления задачами в Zephyr OS с помощью Thread Pool

Управлять потоками в C для каждой мелкой задачи — это боль. 😤 Даже самые простые задачи вынуждают возиться с k_thread_create , ждать завершения, чистить ресурсы — и всё это превращает твой код в...

Хабр

Taming Hard Faults in Zephyr OS: Практическое руководство для embedded-разработчиков

🚨 Что такое Hard Fault простыми словами Hard Fault — это критическая ошибка процессора. Проще говоря, это ситуация, когда микроконтроллер встречает что-то настолько «невозможное» для себя, что не может продолжить выполнение программы. Типичный пример — попытка обратиться к памяти, которой не существует, или выполнение запрещённой инструкции. Когда это происходит, процессор сразу передаёт управление специальному обработчику — Hard Fault Handler .

https://habr.com/ru/articles/925298/

#embedded #embedded_linux #embedded_software_development #arm #rtos #iot #zephyr #embedded_development

Taming Hard Faults in Zephyr OS: Практическое руководство для embedded-разработчиков

🚨 Что такое Hard Fault простыми словами Hard Fault — это критическая ошибка процессора. Проще говоря, это ситуация, когда микроконтроллер встречает что-то настолько «невозможное» для себя, что не...

Хабр

Spinlock vs. Mutex vs. Semaphore: Разбираемся в синхронизации с Zephyr OS

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

https://habr.com/ru/articles/925168/

#многопоточность #многопоточное_программирование #rtos #ZephyrOS #zephyr_project #embedded #embedded_software_development #embedded_systems

Spinlock vs. Mutex vs. Semaphore: Разбираемся в синхронизации с Zephyr OS

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

Хабр
🚀 Coming soon: tiny-curl for @ZephyrIoT RTOS! We’re bringing lightweight HTTPS client capabilities to one of the most popular #RTOS platforms for embedded systems. Stay tuned as we integrate tiny-curl into the Zephyr ecosystem! #ZephyrRTOS #tinycurl #curl @bagder.mastodon.social.ap.brid.gy 1/2