Zobility
Software Embedded Engineer
Zobility, Palo Alto, California, United States, 94306
Job Description
In this position within the Autonomy Hardware team, you will develop test software and use them to validate the automotive SoC solutions, build up validation and benchmark software framework to identify gaps and risks at component and module level. You will be collaborating with other cross functional teams in gathering all the test requirements, implementing test sequences and data collection in software, and running test software on the target hardware platform to acquire test results. Requirements and Responsibilities
Have a deep understanding of embedded system components and bus protocols (e.g., AMBA) and its boot up sequences. Familiar with JTAG-based debuggers to halt and resume processors, set breakpoints, and debug at both the transaction and process levels. Analyze and debug complex applications involving multiple threads, Memory Management Units (MMUs), interrupts, and inter-process communication (IPC) mechanisms. Toolchain Proficiency: Utilize GCC toolchains and GDB for effective development and debugging of embedded software. Driver Debugging: Investigate and resolve issues related to low-speed IO drivers (e.g. UART, GPIO, SPI, I2C), ensuring they function correctly within the system. Familiar with one of the following IO protocols and has experience to bring-up and debug such interface and their drivers: Gigabit Ethernet, PCIe, CPHY, MPHY. Device Tree and Bootloaders: Work with device trees, U-Boot, and operating systems to manage hardware configurations and ensure proper system initialization. Experience with secure boot process, and its bring-up and debug process. Coding and Development: Write, review, and maintain high-quality C code, ensuring adherence to best practices in embedded software development.
#J-18808-Ljbffr
In this position within the Autonomy Hardware team, you will develop test software and use them to validate the automotive SoC solutions, build up validation and benchmark software framework to identify gaps and risks at component and module level. You will be collaborating with other cross functional teams in gathering all the test requirements, implementing test sequences and data collection in software, and running test software on the target hardware platform to acquire test results. Requirements and Responsibilities
Have a deep understanding of embedded system components and bus protocols (e.g., AMBA) and its boot up sequences. Familiar with JTAG-based debuggers to halt and resume processors, set breakpoints, and debug at both the transaction and process levels. Analyze and debug complex applications involving multiple threads, Memory Management Units (MMUs), interrupts, and inter-process communication (IPC) mechanisms. Toolchain Proficiency: Utilize GCC toolchains and GDB for effective development and debugging of embedded software. Driver Debugging: Investigate and resolve issues related to low-speed IO drivers (e.g. UART, GPIO, SPI, I2C), ensuring they function correctly within the system. Familiar with one of the following IO protocols and has experience to bring-up and debug such interface and their drivers: Gigabit Ethernet, PCIe, CPHY, MPHY. Device Tree and Bootloaders: Work with device trees, U-Boot, and operating systems to manage hardware configurations and ensure proper system initialization. Experience with secure boot process, and its bring-up and debug process. Coding and Development: Write, review, and maintain high-quality C code, ensuring adherence to best practices in embedded software development.
#J-18808-Ljbffr