HyPrix Aviation GSTIN - 29AAHCH4130N1ZA

Embedded Software Engineer BSP Platform

HyPrix Aviation GSTIN - 29AAHCH4130N1ZA Anekal, Karnataka, India

Defense and Space Manufacturing · 2-10 employees

20 h ago
embedded Mid (2-5 yrs) Full-time India
Create a free account to apply — email only, no card. You can also save this posting or score it against your profile with AI.

About the role

The Embedded Software Engineer will develop and maintain low-level platform software, including board support packages, hardware abstraction layers, and bus drivers. They are responsible for board bring-up, bootloader implementation, and ensuring system reliability through rigorous testing and defect management.

What they look for

Embedded C C++ ARM Cortex-M ARM Cortex-R ARM Cortex-A Embedded Linux Device Drivers Board Bring-up RTOS Bare Metal Hardware Literacy Git Python Yocto Buildroot U-Boot

Requirements

Candidates must have 3 to 4 years of experience in embedded software or firmware development with hands-on board bring-up expertise. A bachelor's degree in a relevant engineering field and strong proficiency in C, C++, and ARM architecture are required.

Full description

Who Are We?

At HyPrix, we're building attritable payload delivery systems for autonomy. Things that fly fast, we're enabling them with conscious software. Replicating the capabilities of expensive conventional frontline systems, we're building the cheapest micro and cruise missile systems on the planet. Built for a war of attrition, built for the era of software-defined warfare, built to cater to the front lines of battlefields where no man should stand in the future.

Learn more about us: https://hyprix.in

What You'll Do

The Embedded Software Engineer II – BSP & Platform writes and maintains the low-level platform software on the HyPrix flight computer. This software is the layer between the silicon and the RTOS.

The position holder implements the board support package, the hardware abstraction layer (HAL) and the bus drivers to the architecture that the Firmware team sets. Sensor fusion, GNC, RTOS scheduling and datalink protocols are not in the scope of this role.

  • Startup code and clocks. Write and maintain the reset path, vector table and stack set-up for each processor. Configure the oscillators, PLLs and bus clock.
  • Memory, MPU and caches. Write the linker scripts and the memory map. Configure the MPU, caches and FPU, and set the cache rules for DMA buffers.
  • Interrupts, timers and multicore. Configure the interrupt controller from the interrupt priority map. Start the secondary cores and configure lockstep on Cortex-R, C2000 processors.
  • Linux BSP. Configure U-Boot, the device trees and the kernel for the Cortex-A processors. Build the root filesystem with Yocto or Buildroot.
  • Board bring-up. Do the first power-on of new and revised boards with the staged bring-up checklist. Test the clocks, memory, flash and each peripheral in turn. Record each result in a bring-up report, and improve the checklist after each board.
  • Board revisions, errata and defects. Port the BSP to each new board revision and processor, and keep the board and software compatibility matrix. Implement a software workaround for each silicon or board erratum. Write clear defect reports for the avionics hardware team.
  • HAL and drivers. Implement the HAL and the drivers for UART, RS-422/485, SPI, I2C, CAN, Ethernet, ADC, PWM, timers and DMA. Each driver must be RTOS-independent and use static memory allocation.
  • Bootloader and firmware update. Implement the bootloader, dual-bank (A/B) images and rollback. Make sure that the unit boots after a power cut at any point in an update.
  • Watchdogs, resets and BIT. Configure the hardware watchdogs and record the reset cause at each boot. Write fault handlers that save a fault record before reset. Write the power-on BIT tests for the processor, memory and peripherals.
  • Non-volatile storage. Write the flash and eMMC drivers, and the partitions for images, configuration. Make sure that a power cut during a write does not corrupt data.
  • Time base. Set up the hardware time base and the PPS capture that each timestamp uses.
  • Latency and execution time. Measure the worst-case interrupt latency and the execution time of each driver on the target. Record the results in the driver documentation.
  • Board documents. Keep the memory map, interrupt priority map, DMA channel map, pin map and errata log current and in version control.
  • Test support. Write unit tests for each driver, and the host build and simulation back-ends for SIL tests. Give fault-injection points to the test team for HIL tests.

Requirements

Minimum Experience (Years)

3 to 4 years of embedded software or firmware development on microcontrollers or SoCs. This includes hands-on bring-up of at least one custom board.

HyPrix prefers this experience, but it is not mandatory. Demonstrated capability is more important than years.

Required Skills

  • Embedded C. Strong C for bare-metal and RTOS firmware. Good knowledge of C++.
  • ARM Cortex-M. Hands-on work with startup code, linker scripts, vector tables, NVIC priorities, the MPU and caches.
  • ARM Cortex-R. Hands-on work with Cortex-R5 or Cortex-R52 cores, for example TI Sitara AM64x or the Zynq UltraScale+ RPU. Knowledge of TCM, the GIC or VIM, ECC, lockstep and the Cortex-R MPU.
  • ARM Cortex-A. Worked with Cortex-A53 or similar, for example NXP i.MX 8 or the Zynq UltraScale+ APU. Knowledge of the MMU, exception levels and the boot flow to the kernel.
  • TI C2000 or F29x. Hands-on work with TI C28x or C29x real-time MCUs, their ePWM, eCAP, ADC and CLA peripherals, and C2000Ware.
  • Embedded Linux. Hands-on work on at least one embedded Linux system, with U-Boot, device trees, kernel configuration and Yocto or Buildroot.
  • Drivers. Production drivers for UART, SPI, I2C and CAN, with interrupt and DMA designs.
  • Board bring-up. First power-on with peripheral tests and memory tests.
  • RTOS. Production experience with an RTOS such as FreeRTOS, Zephyr or ThreadX.
  • Bare metal. Production firmware without an operating system, with interrupt-driven designs.
  • Hardware literacy. Ability to read schematics and datasheets, and to debug with JTAG or SWD, an oscilloscope and a logic analyser.
  • Tools. Experience with GCC or a vendor toolchain, Make or CMake, Git and Python scripts.
  • Software quality. Knowledge of MISRA C, static analysis, unit tests and code review.
  • A bachelor's degree in electronics, electrical, computer engineering or computer science.

Advantageous Skills/Qualifications

  • Experience with bootloaders, dual-bank firmware update or flash file systems such as LittleFS.
  • Experience with TI C2000 or F29x, NXP i.MX RT or Xilinx Zynq.
  • Experience with RS-422/485, Ethernet MAC and PHY drivers, or PTP hardware timestamps.
  • Knowledge of MIL-STD-1553 or ARINC 429.
  • Experience with secure boot, image signatures or hardware crypto engines.
  • Experience with PREEMPT_RT or dm-verity on embedded Linux.
  • Knowledge of DO-178C, IEC 61508 or ISO 26262.
  • Experience with HIL rigs, production test or ATP firmware.
  • Experience with Rust for embedded systems.

Benefits

Why Join HyPrix?

HyPrix is a lean team with no rule book. Each person receives an end goal tied to a real product, and decides how to achieve it.

The Embedded Software Engineer II – BSP & Platform writes the first code that runs on each HyPrix flight computer.

Similar roles