I. Responsibilities
System Software Architecture and Development
Responsible for overall embedded software architecture design, module division, and core code implementation for flow cytometer
Port, customize, and optimize μC/OS-III or embedded Linux systems based on system requirements
Develop and maintain embedded systems to ensure reliable boot and online upgrade capabilities
Low-level Driver Development
Write, debug, and maintain various peripheral low-level drivers
Photoelectric detector drivers: PMT, APD, MPPC signal acquisition and control implementation
Motion control drivers: sheath flow pump, injection valve, stepper motor precision control development
Communication interface development: Ethernet, USB, CAN, I2C, SPI, UART interface drivers
Real-time Tasks and Application Development
Multi-task design, scheduling, and priority management in μC/OS systems; implement inter-task communication (semaphores, message queues, event flags) and synchronization mechanisms
Develop multi-threaded applications, character device drivers, or user-space drivers in embedded Linux environment
Implement core business logic including optical path auto-calibration flow, sample flow control sequences, high-speed data acquisition and preprocessing, system status monitoring, and fault diagnosis
Algorithm Implementation and Performance Optimization
Participate in embedded implementation and optimization of photoelectric signal processing algorithms to meet real-time requirements
Precisely control system timing, coordinate synchronized operation of laser, flow cell, and data acquisition
Continuously optimize code and system performance, reduce latency, improve data throughput and system stability
System Integration and Debugging
Collaborate with hardware engineers for board-level debugging and resolve software-hardware interaction issues
Work with optical, fluid, and algorithm engineers for complete system integration and performance validation
Proficiently use oscilloscopes, logic analyzers, and other tools for signal quality and system logic debugging
Documentation and Maintenance
Write software design documents, API interface specifications, test reports, and related technical materials
II. Requirements
Education
Bachelor's degree or above in Computer Science, Electronic Engineering, Automation, or related majors
Work Experience
3+ years of embedded software development experience; experience in medical devices, scientific instruments, or high-precision industrial equipment is preferred
Operating System Skills
Proficient in at least one real-time operating system (μC/OS-II/III, FreeRTOS, etc.), with understanding of task scheduling, memory management, and interrupt mechanism principles
Embedded Linux development experience (preferred), including kernel customization, file system construction, device tree configuration, and driver development
Programming Language Skills
Proficient in C/C++ with good coding standards and solid software engineering foundation
Hardware Interface Skills
Deep understanding of ARM Cortex-M / Cortex-A architecture; able to independently complete peripheral driver development and debugging
General Abilities
Excellent problem analysis and solving abilities with good teamwork and communication skills