工作职责:
1、需求分析与系统设计:与硬件团队协作,明确单片机(如STM32、AVR、PIC)及嵌入式系统的功能需求,制定软件架构方案;设计硬件接口协议(如GPIO、CAN、I2C),确保软件与传感器、通信器件等外设的兼容性。
2、单片机软件开发与优化:使用C/C++编写嵌入式固件,针对特定单片机进行代码优化(如内存管理、中断处理);开发裸机程序或轻量级RTOS(如FreeRTOS、Zephyr)任务,满足实时性要求。
3、硬件调试与故障排查:使用示波器、逻辑分析仪等工具,调试硬件信号(如时序、电压波动),定位通信异常(如I2C/SPI/UART);分析单片机寄存器配置,解决外设驱动问题(如LCD显示异常、电机控制失步)。
4、驱动开发与硬件集成:编写底层驱动程序,控制外设(如SPI、UART、无线模块、存储芯片)。
5、测试验证与性能调优:设计单元测试用例,验证单片机功能(如定时器精度、中断响应);进行系统级测试,评估实时性、功耗及资源占用(如Flash/RAM利用率);优化代码效率,减少指令周期或中断延迟。
6、文档与协作:编写技术文档,记录硬件接口规范、调试日志及代码注释;与硬件工程师、测试团队紧密合作,推动问题闭环(如通过JTAG/SWD调试)。
任职资格:
1、本科及以上学历,计算机科学与技术、通信工程、电子工程、电气自动化等相关专业,3年以上相关工作经验;
2、能看懂原理图和PCB布局,理解电源、复位、时钟等关键电路模块工作机制,具备基本的数字电路和模拟电路知识;
3、熟练掌握UART、SPI、I2C、USB、CAN等通信接口协议规范,清楚数据传输流程、速率设定和引脚分配;
4、熟知ARM Cortex-M系列、STM32、AVR等常用MCU的内部结构,包括寄存器配置、中断体系、时钟管理等;
5、熟悉用于直接操作硬件寄存器、内存管理和编写高效驱动代码的编写;
6、掌握FreeRTOS、uC/OS等实时操作系统的任务调度、同步互斥、内存管理机制,能在资源受限环境下进行高效编程;
7、熟悉Keil、IAR、STM32CubeIDE等开发环境,掌握编译、调试、烧录流程;
8、熟悉全部或部分通信协议,包括:UART、I2C、SPI、CAN、Modbus、Wi-Fi、蓝牙、ZigBee、MQTT。