Role Overview
We are seeking an experienced Embedded Software Engineer specializing in Drivers, RTOS, and Real-Time Control. This role involves designing, developing, and validating low-level drivers for on-chip IPs in both bare-metal and RTOS environments, focusing heavily on communication peripherals and real-time control systems.
Responsibilities
- Design, develop, and validate low-level drivers for on-chip IPs (UART, SPI, I2C, Timers, GPIO, CAN, Crypto) in both bare-metal and RTOS (e.g., FreeRTOS) environments.
- Implement initialization, interrupt-driven and DMA-based data transfer, and configuration APIs for communication and control peripherals.
- Develop RTOS-compatible driver APIs, including interrupt handlers and DMA support, along with unit test applications for functional validation and regression testing.
- Port and integrate the LwIP TCP/IP stack on the target RTOS, interfacing with Ethernet MAC and PHY drivers.
- Validate network functionality using TCP/UDP echo server/client demos and perform performance tuning and memory footprint optimization of the stack.
- Develop drivers and demo applications for real-time control IPs, including: Data acquisition and conversion (SAR ADC, Sigma-Delta ADC, DAC), Analog post-processing blocks (Filters, thresholding, comparator logic), and PWM generation (high-speed and low-speed).
- Implement real-time signal acquisition and processing flows, including closed-loop control loops where ADC inputs drive PWM outputs.
- Create demo applications that showcase system behavior and control algorithms, with visualization and logging via UART or network interfaces.
- Collaborate with hardware, systems, and test teams to review specifications, debug issues, and ensure robust, production-quality embedded software.
Requirements
- Strong experience in embedded C programming and microcontroller/microprocessor-based development.
- Hands-on experience with bare-metal firmware and RTOS (preferably FreeRTOS) including tasks, ISRs, and synchronization mechanisms.
- Solid understanding of communication interfaces: UART, SPI, I2C, CAN, GPIO, Timers, and basic cryptographic IP usage (AES/SHA/RNG).
- Experience with TCP/IP networking on embedded systems, ideally with LwIP or similar lightweight stacks.
- Familiarity with ADCs, DACs, comparators, PWM generation, and real-time control concepts.
- Experience with Ethernet MAC/PHY bring-up and debugging at the driver level is desired.
- Knowledge of control systems, digital signal processing, or motor control is a plus.
- Experience writing unit tests and hardware validation demos for low-level drivers.
- Proficiency with embedded development tools: IDEs, debuggers, oscilloscopes, logic analyzers, and protocol analyzers.
- Bachelor’s / Master’s degree in Electronics/Computer Science/SW Engineering.