Исследование: для прошивок микроконтроллеров нет причин предпочитать C перед Rust

28.04.2026

Исследователи из STMicroelectronics и Inria провели сравнительный анализ разработки прошивки для микроконтроллера STM32U585AI на языках C и Rust. Замеры на оборудовании не выявили веских причин предпочитать C с точки зрения объёма памяти или скорости выполнения.

Как ставился эксперимент

Двум изолированным командам разработчиков была поставлена задача по реализации одной и той же прошивки для микроконтроллера STM32U585AI с ядром Arm Cortex-M33. Первая команда создавала прошивку на C, вторая — на Rust.

Результаты по памяти

Размер результирующей прошивки составил 84100 байт в проекте на Rust и 76744 байта в проекте на C, то есть на 10 процентов меньше. Но потребление оперативной памяти в прошивке на Rust оказалось значительно ниже: 24640 байтов против 42608 байтов.

Достигнуто это за счёт задействования написанного на Rust системного времени выполнения от открытого проекта Ariel OS, которое обеспечило меньший объём по сравнению с традиционным стеком для разработки прошивок на базе библиотеки newlib.

Результаты по скорости

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

Вывод авторов

Анализ и измерения на оборудовании не указывают на веские причины предпочитать C перед Rust для прошивок микроконтроллеров по объёму памяти или скорости выполнения. Показано, что Ariel OS обеспечивает эффективное и переносимое системное время выполнения на Rust с меньшим объёмом, чем у современного стека на C.

Сделан вывод, что Rust сегодня является обоснованным выбором для разработки прошивок в этой области.

Оригинал

The analysis and measurements on hardware indicate no strong reason to prefer C over Rust for microcontroller firmware on the basis of memory footprint or execution speed. Furthermore, Ariel OS is shown to provide an efficient and portable system runtime in Rust whose footprint is smaller than that of the state-of-the-art bare-metal C stack traditionally used in this context. It is concluded that Rust is a sound choice today for firmware development in this domain.

Упоминаний: 1 · Просмотров: 2