Все вакансии России 0

Инженер-разработчик ПО (C++ / RTOS / Custom Drivers)

от 75 000 ₽
ООО СКМ
Красноярск Постоянная занятость Полный день

Описание

О нас: Мы разрабатываем ПО для [вставьте: промышленных контроллеров, медицинской аппаратуры, авионики, IoT-устройств]. Наш код работает без операционной системы или на жестком Real-Time уровне. Здесь нет места "перезагрузи и поможет". Ошибка в тайминге или в гонке за ресурсы (race condition) стоит дорого. Мы ищем человека, который мыслят архитектурой процессора и состояниями машинных циклов. Что мы ожидаем (Профиль кандидата): 1. Глубокое понимание C++ «под капотом» (Не просто знание синтаксиса) Модель памяти железа: Вы понимаете разницу между кэшем L1/L2 и основной памятью (RAM). Знаете, что такое volatile (и когда его использовать, а когда — нет), memory barriers, cache coherence при работе с DMA. Управление ресурсами без исключений: Понимание RAII в embedded-контексте (где исключения отключены -fno-exceptions). Умение работать с placement new, кастомными аллокаторами и статической инициализацией (Static Initialization Order Fiasco). Размер имеет значение: Понимание выравнивания структур (struct padding), packed-структур, endianness (big/little endian) при сериализации данных для передачи по сети или в регистры железа. 2. Мастерство RTOS (FreeRTOS / RTEMS) Детерминизм: Вы понимаете, что такое jitter, latency и worst-case execution time (WCET). Умеете оценивать, почему задача не успевает выполниться за свой слот. Синхронизация и IPC: Глубокое понимание приоритетов, инверсии приоритетов (priority inversion) и способов её решения (priority inheritance, priority ceiling). Разница между бинарным семафором, счетным семафором и мьютексом в контексте конкретного планировщика. Обработка прерываний (ISR): Железное правило: в ISR делается минимум (только флаг/семафор). Вы умеете писать deferred interrupt handling (обработку прерываний в контексте задачи). Управление памятью ОС: Понимание фрагментации кучи (heap fragmentation) в RTOS и умение обходиться без динамической аллокации (static allocation / memory pools). 3. Написание Custom Drivers (Смекалка и работа с железом) Чтение даташитов (Datasheet Mining): Главная навык. Вы умеете извлекать смысл из запутанных таблиц регистров, тайминговых диаграмм и block diagram'ов, даже если документация написана с ошибками. MMIO и регистры: Уверенная работа с memory-mapped I/O. Понимание, как компилятор оптимизирует доступ к регистрам, и умение предотвратить "схлопывание" записей. DMA (Direct Memory Access): Понимание работы контроллера DMA, настройку дескрипторов, разницу между Scatter-Gather и линейным DMA. Умение решать проблему когерентности кэшей при использовании DMA. 4. Toolchain (GCC и кросс-компиляция) Сборка из исходников: Понимание параметров кросс-компилятора (-ffreestanding, -nostdlib, -mcpu, -mfloat-abi). Умение писать и читать Linker Scripts (скрипты компоновщика) для размещения секций (.text, .data, .bss) в конкретные банки памяти (Flash vs RAM). Startup код: Понимание того, что происходит до вызова main(): инициализация секций, обнуление BSS, настройка стека, вызов конструкторов глобальных объектов. Отладка без отладчика: Умение диагностировать падения (Hard Fault, panic) по дампу регистров и стоп-фрейму, если JTAG/SWD подключить невозможно. Условия: пятидневка 8-17 Адрес вакансии: Г. Красноярск, ул. Тамбовская 5

Откликнуться
Источник: zaprlata · 2 дня назад

Похожие вакансии в городе Красноярск

Все вакансии в городе Красноярск →