嵌入式软件工程师
step · 南山区, 广东, 中国
About The Role
职责:1. 负责主控芯片(基于ARM Cortex-M/R/A系列或同等性能替代芯片)的嵌入式系统软件整体架构设计、搭建与实现。负责从零开始或深度定制Bootloader、板级支持包,并完成底层硬件抽象层驱动的开发与移植。2. 独立配置与驱动各类关键硬件外设接口,包括但不限于:PWM、编码器接口(如QEI)、霍尔传感器接口。CAN、UART、I2C、SPI。同步与触发接口。编写稳定、高效、可复用的设备驱动程序,并进行严格的性能与可靠性测试。3. 设计并实现基于中断、DMA和定时器的精确定时控制逻辑,确保控制环路、传感器数据采集与融合等关键任务的实时性。优化系统中断响应时间,解决优先级冲突,确保在多任务环境下的确定性行为。使用示波器、逻辑分析仪等工具,测量、分析和优化关键信号(如PWM、通信报文)的时序。4. 根据系统需求,设计并实施静态内存池、动态内存分配方案,避免内存碎片,确保长期运行的稳定性。管理芯片内部SRAM、Flash及外部扩展内存(如SDRAM)的分配与使用,优化内存访问效率。进行栈空间分析与优化,防止溢出。5. 使用JTAG/SWD调试器、串口日志、内嵌调试工具等进行系统级调试和故障排查。编写技术设计方案、接口控制文档及详尽的代码注释。参与硬件选型评估,为硬件设计提供软件层面的可行性建议。要求:1. 专业背景:电子工程、计算机工程、自动化、通信工程等相关专业本科及以上学历。2. 知识掌握:a. 精通C/C++语言,具备良好的编程风格和扎实的嵌入式编程功底。b. 深入理解ARM Cortex-M/R/A系列或类似RISC-V芯片的体系结构、内存模型、异常/中断机制。c. 精通至少一种主流RTOS(如FreeRTOS、ThreadX、μC/OS或Linux嵌入式)的内核机制、任务调度、IPC通信。d. 熟悉常用硬件总线协议(I2C, SPI, UART, CAN, USB)的底层时序与规范。e. 掌握嵌入式系统开发流程、交叉编译、链接脚本、固件烧录与升级。3. 技术能力:a. 硬件接口驱动能力:能够独立阅读芯片数据手册与原理图,完成外设的初始化、配置与调试。b. 系统调试能力:熟练使用示波器、逻辑分析仪、协议分析仪等硬件调试工具定位复杂问题。c. 时序分析能力:对信号边沿、延迟、抖动敏感,能分析和解决时序同步问题。d. 性能优化能力:具备系统性能分析与优化意识,能从软件角度提升执行效率与资源利用率。4. 项目经验a. 拥有独立完成或作为核心成员负责至少一个完整嵌入式产品(云台/运动控制设备/工业HMI/机器人关节控制器等)底层软件开发的项目经验。b. 成功为基于ARM的芯片(如STM32、 RT、GD32、全志R系列等)移植过RTOS或裸机系统框架。c. 实际开发过用于控制无刷电机/步进电产的PWM、编码器反馈数据采集驱动程序。d. 实际解决过多任务环境下因中断冲突或资源竞争导致的系统不稳定问题。e. 实际设计并实施过自定义内存管理方案,成功解决了内存泄漏或碎片化问题。f. 有使用CAN总线进行多节点实时通信,或实现高可靠UART通信(含自定义协议)的项目经验。
This is an external listing. JobSpring does not represent or verify the employer. Report this listing
JobSpring