> DOUFOP Lavriv
Embedded Engineer
format:Officetype:Contract
apache sparkcc++arm cortex-mdmaspii2cuartcan
iso 26262
> full description
Ви станете основою команди розробки бортового програмного забезпечення (Flight Software), відповідальним за створення flight-critical коду (DAL A/B за DO-178C). Ваша роль — розробка ядра безпеки системи: контурів автоматичного керування, систем обробки критичних відмов та драйверів для високонадійних апаратних вузлів.
Ключові обов’язки та задачі:
1. Розробка Flight-Critical коду та сенсорна фузія (Ada/SPARK):
- Написання детермінованого коду для контурів керування (PID-регулятори, комплементарні фільтри, фільтри Калмана) мовою Ada.
- Математичне моделювання та реалізація обчислень просторової орієнтації об’єкта (лінійна алгебра, кватерніони) з використанням фіксованої крапки (fixed-point) або строго типізованої плаваючої крапки.
- Обробка та сенсорна фузія даних з критичної бортової периферії: IMU, GPS, барометрів, магнітометрів.
- Розробка логіки ізоляції та обробки критичних апаратних відмов (Fail-Safe / Fail-Operational режими).
2. Формальна верифікація та контрактне програмування (SPARK):
- Застосування SPARK для формального доведення коректності коду.
- Проектування архітектури за принципами контрактного програмування: опис перед- та післяумов (pre/postconditions), а також інваріантів типів (type invariants).
- Математичне доведення відсутності помилок часу виконання (Division by zero, Buffer Overflow, Array Index out of bounds) за допомогою ста can-аналізатора GNATprove.
3. Архітектура реального часу та обмежені профілі рантайму:
- Робота з детермінованими профілями рантайму (зокрема Ravenscar або light-tasking).
- Налаштування та оптимізація планувальників завдань, глибоке розуміння того, чому обмеження динамічної пам’яті та складності тасок необхідні для передбачуваного аналізу планувальника (WCET / worst-case execution time).
4. Низькорівнева розробка та інструментарій (Toolchain):
- Розробка низькорівневих драйверів для апаратних вузлів через інтерфейси SPI, I2C, UART, CAN / CAN FD з використанням засобів специфікації представлення даних в Ada (Representation clauses) для точного мапінгу регістрів.
- Робота з екосистемою: компилятор GNAT (arm-eabi), менеджер пакетів Alire (gnat_arm_elf), система збірки gprbuild та використання/адаптація компонентів Ada Drivers Library.
Профіль ідеального кандидата:
- Досвід розробки на Ada/SPARK від 2 років АБО сильний C/C++ Embedded інженер (3+ роки) з вираженим формально-математичним мисленням, чистим кодом (розумінням MISRA) та експертною готовністю повністю перейти на Ada/SPARK.
- Глибоке розуміння вбудованих систем: архітектура ARM Cortex-M/R, робота з регістрами, DMA, перериваннями та таймерами.
- Знання вищої математики (особливо матричного числення та теорії керування). ● Буде вагомим плюсом: Знайомство зі стандартами функціональної безпеки та процесами сертифікації (DO-178C, EN 50128 або ISO 26262), досвід проходження аудитів ПЗ.