职位描述
软件工程师岗位主要职责
1. 参与需求分析与设计:参与嵌入式系统软件的需求分析、架构设计及模块设计。
2. 编码与实现: 使用C/C++等语言进行嵌入式软件(裸机、RTOS或嵌入式Linux应用/驱动)的开发、调试和优化。
3. 驱动开发:开发、调试和维护底层外设驱动程序(如UART, SPI, I2C, ADC, PWM, USB, Ethernet, CAN等)。
4. 系统集成与调试:与硬件工程师协作,进行软硬件联调,解决系统级问题。熟练使用示波器、逻辑分析仪等工具进行硬件级调试。
5. 测试与验证:编写单元测试、集成测试用例,参与系统测试,确保软件功能、性能和可靠性满足要求。
6. 代码维护与文档: 编写和维护清晰的技术文档(设计文档、接口文档、用户手册等),遵循代码规范和版本控制流程。
7. 问题解决:分析和解决产品在开发、测试及量产过程中出现的软件相关问题。
8. 技术跟进:关注嵌入式领域新技术、新趋势,并评估其在产品中的应用可能性。
任职要求 (技术要求)
1. 教育背景:计算机科学、电子工程、自动化、通信工程或相关专业或本科及以上学历。
2. 编程语言:
精通C语言编程,深入理解指针、内存管理、数据结构等。
3. 嵌入式平台:
深入理解ARM Cortex-M/A系列架构,或有丰富的其他MCU/MPU(如MIPS, RISC-V, PowerPC等)开发经验。
具有丰富的裸机程序开发经验。
具备以下至少一种经验:
嵌入式 RTOS:精通FreeRTOS、uC/OS-II/III、RT-Thread、ThreadX等实时操作系统下的应用开发及内核机制。
嵌入式Linux:熟悉嵌入式Linux开发环境,具备应用层开发和调试经验。
4. 硬件接口与协议:
扎实的电子技术基础,了解数字/模拟电路原理,具备硬件原理分析及评审能力。
熟练掌握常用外设接口和通信协议(UART, SPI, I2C, USB, CAN, Ethernet, Modbus等)的软件驱动开发与调试。
5. 开发工具:
熟练使用至少一种主流IDE(Keil MDK, IAR Embedded Workbench, Eclipse+GCC, VSCode+GCC/Clang等)。
精通使用调试工具(JTAG/SWD调试器,如J-Link, ST-Link)。
熟练使用版本控制工具(Git)。
熟悉常用测试和调试仪器(示波器、逻辑分析仪、万用表等)。
6. 系统理解:
理解嵌入式系统的基本原理(启动流程、中断处理、时钟系统、内存管理)。
熟悉常用的总线协议和接口标准,如CAN、485等。
了解基本的硬件原理图,能看懂Datasheet和参考手册。
7. 加分项
7.1 具体行业,如:汽车电子/AUTOSAR、医疗器械、工业控制、消费电子、物联网IoT、航空航天]领域开发经验。
7.2 熟悉Bootloader开发、固件升级机制。
7.3 有低功耗设计、优化经验。
7.4 熟悉常用无线通信协议(Wi-Fi, Bluetooth/BLE, Zigbee, LoRa, NB-IoT等)的集成与开发。
7.5 有安全相关的开发经验(加密算法、安全启动、Secure Boot, TrustZone等)。
7.6 有RTOS内核移植或驱动框架开发经验。
7.7 有在ROTS下移植过或使用过LWIP协议栈经验。
以担保或任何理由索取财物,扣押证照,均涉嫌违法,请提高警惕