- 地点
- 上海,中国
- 类型
- 实习
职责
- 参与产品需求分析,负责嵌入式Linux系统的架构设计、内核裁剪、Bootloader移植和根文件系统构建。
- 负责Linux内核下各类设备驱动(如Camera、LCD/Touchscreen、Ethernet、Wi-Fi/Bluetooth、I2C/SPI/UART、USB、CAN等)的开发、调试和优化。
- 使用Yocto Project或Buildroot等工具,定制和维护嵌入式Linux发行版,集成第三方库和应用程序。
- 进行系统级性能分析(如CPU、内存、I/O、功耗),定位瓶颈并实施优化,确保系统稳定性和实时性要求。
- 与硬件工程师紧密协作,参与硬件方案选型、原理图评审,并负责单板启动、硬件Bring-up和故障排查。
- 为上层应用程序提供稳定的底层支持,解决底层技术难题,如系统启动、进程间通信、内存管理等。
- 编写详细的设计文档、测试文档和技术报告,确保开发过程的可追溯性和规范性。
- 跟踪嵌入式领域的最新技术动态,评估并引入新技术以提升产品竞争力。
必备要求
- 计算机科学、电子工程、通信工程或相关专业本科及以上学历。
- 深入理解Linux内核工作机制,具备设备驱动开发和调试能力。
- 熟悉内核的进程调度、内存管理、中断处理、文件系统等核心子系统。
- 有实际的内核配置、裁剪、移植和启动问题解决经验。
- 熟练掌握Yocto Project或Buildroot等嵌入式系统构建框架,能够独立定制文件系统。
- 熟悉交叉编译工具链的制作和使用。
- 精通C语言编程,具有良好的编程习惯和代码风格。
- 熟练使用Shell/Python等脚本语言进行自动化测试和工具开发。
Responsibilities
- Participate in product requirement analysis; responsible for embedded Linux system architecture design, kernel trimming, Bootloader porting, and root file system construction.
- Develop, debug, and optimize various device drivers under Linux kernel (e.g., Camera, LCD/Touchscreen, Ethernet, Wi-Fi/Bluetooth, I2C/SPI/UART, USB, CAN).
- Customize and maintain embedded Linux distributions using tools like Yocto Project or Buildroot; integrate third-party libraries and applications.
- Perform system-level performance analysis (e.g., CPU, memory, I/O, power consumption), identify bottlenecks, and implement optimizations to ensure system stability and real-time requirements.
- Collaborate closely with hardware engineers, participate in hardware solution selection and schematic review, and be responsible for board bring-up and troubleshooting.
- Provide stable low-level support for upper-layer applications and solve low-level technical issues such as system boot, inter-process communication, and memory management.
- Write detailed design documents, test documents, and technical reports to ensure traceability and standardization of the development process.
- Track the latest technology trends in the embedded field, evaluate and introduce new technologies to enhance product competitiveness.
Must Have
- Bachelor's degree or above in Computer Science, Electronic Engineering, Communication Engineering, or related fields.
- Deep understanding of Linux kernel working mechanisms; capable of device driver development and debugging.
- Familiar with core kernel subsystems such as process scheduling, memory management, interrupt handling, and file systems.
- Practical experience in kernel configuration, trimming, porting, and boot problem resolution.
- Proficient in embedded system build frameworks such as Yocto Project or Buildroot; able to independently customize file systems.
- Familiar with the creation and use of cross-compilation toolchains.
- Proficient in C programming with good programming habits and code style.
- Proficient in scripting languages such as Shell/Python for automated testing and tool development.