About the Role
Job Summary
Development of HAL and Peripheral device drivers for MCX, Crossover RT and i.MX family of devices, such as I2C Master/Slave, SPI Master/Slave, UART, USB, etc., to work in standalone bare metal, ROM and RTOS environments.
Deliver high quality, well documented and tested code for customers’ reference and use.
Verify ROM code and other software deliverables on pre-silicon test and debug environments such as RTL and Emulation platforms.
Actively support key customers.
Analyze, investigate and resolve system level issues together with other teams globally.
Key Challenges
- The development of ROM code in the absence of silicon.
- Verification and debugging issues in pre-silicon environments, meeting close to 100% test coverage.
- Hardening of the critical sections of the code to ensure ROM code is not vulnerable to physical or logical attacks.
- Meeting required security and safety standards.
Cross Functional Aspects
Development of ROM code involves interactions with several teams working on the SOC, Marketing, Systems Architects, SOC Design, Verification and Validation leads, Documentation, Software and other team leads.
Mentoring will be provided by senior members of the system ROM team with over 10 years of experience in ROM development and architecture.
Job Qualifications
- 4+ years of experience.
- BS/MS Degree in EE or Computer Engineering with embedded software focus, or equivalent experience.
- Some work experience as Intern/Co-op in related field.
- Familiar with ARM Assembly, C/C++/RUST/Python programming is a plus.
- Understanding of embedded software development including device drivers and consumer embedded applications.
- Familiarity in following areas is preferred: Flash, SPI, I2C, USB, UART, CAN, etc.
- Experience with the ARM and RISC-V based Architecture is preferred.
- Experience with GCC and GNU make, ARM compilers such as IAR, Keil and DS-5 is preferred.
- Experience with Atlassian tools such as JIRA, Bitbucket, etc., is preferred.
- Experience using logic analyzers and oscilloscopes is preferred.
Requirements
Embedded Software Experience
4+ years of experience in embedded software development.
Programming Skills
Familiarity with ARM Assembly, C/C++, and Rust programming.
Device Driver Knowledge
Understanding of device drivers and consumer embedded applications.
Pre-silicon Verification
Experience in verifying and debugging software in pre-silicon environments.
Nice to Have
Experience with ARM and RISC-V based architecture.
Familiarity with tools like JIRA and Bitbucket.