Инженер-программист встраиваемых систем (Embedded C/C++ Developer, STM32)
ОАО "ЛЕНПОЛИГРАФМАШ" Инженер-программист встраиваемых систем (Embedded C/C++ Developer, STM32)
Обязанности:
Задачи: Разработка автономного устройства на микроконтроллере STM32 с графическим интерфейсом, работающего без операционной. Обеспечение обмена данными с USB-флеш-накопителями, ПЭВМ и другими аналогичными устройствами.
Требования:
Обязательные требования (Hard Skills ): 1. Языки и инструменты разработки: глубокое знание C и/или C++; опыт работы в среде разработки STM32CubeIDE; знание библиотек абстрагирования: HAL (предпочтительно) и/или CMSIS (работа с регистрами напрямую). Умение комбинировать HAL для быстрой разработки и прямую работу с регистрами для оптимизации. 2. Архитектура МК и низкоуровневое программирование: понимание архитектуры ARM Cortex-M. умение работать с системой прерываний (NVIC), таймерами, DMA, тактированием (PLL). написание кода без использования ОСРВ (голое железо, bare-metal), организация конечных автоматов (FSM) или событийно-ориентированной архитектуры. 3. Работа с периферией и интерфейсами: уверенная работа с интерфейсом USB (Device и Host). режим USB-Host: умение подключать и инициализировать USB-флеш-накопители. файловая система FAT32: чтение/запись файлов с флэш накопителей. режим USB-Device: настройка устройства для обмена с ПЭВМ. 4. Графический пользовательский интерфейс (специализированный блок): опыт работы с библиотекой LVGL или TouchGFX; написание драйвера дисплея (подключение по параллельному интерфейсу) с использованием DMA для ускорения вывода; обработка ввода от аппаратной клавиатуры (матричная клавиатура, кнопки) с устранением дребезга; 6. Сопряжение устройств: опыт организации обмена данными между двумя микроконтроллерными устройствами. Реализация протокола с проверкой целостности (CRC, контрольные суммы) и квитированием. 7. Аппаратная отладка и схемотехника: чтение электрических принципиальных схем определение назначения пинов, подтяжек, уровней напряжений; работа с измерительным оборудованием: осциллограф (анализ сигналов SPI/I2C/UART), логический анализатор, мультиметр, источник питания. Умение отлаживать проблемы с питанием и наводками.