一、编程语言与基础
精通 C/C++(C++11/14/17/20、C11),深入掌握内存管理、多线程并发、模板元编程、性能优化及数据结构算法。
二、Linux系统(应用+驱动)
应用开发:精通进程/线程、IPC(管道/共享内存/信号量/Socket)、网络编程(epoll/io_uring/TCP/UDP)、动态库、性能调优(perf/ftrace/valgrind)。
驱动开发:熟悉字符设备驱动、platform驱动、设备树、中断处理、DMA、并发控制(自旋锁/互斥锁)、等待队列、常见外设(GPIO/I2C/SPI/UART/USB)、内核调试(kgdb/printk/trace)。
三、图形与跨平台框架
熟练 Qt(Widgets/QML、信号槽、模型/视图、多线程、跨平台Linux/Windows/嵌入式及Qt for MCU)。
四、OpenHarmony(南向+北向)
南向:理解内核层(Linux/LiteOS)、HDF驱动框架、系统服务定制。
北向:掌握ArkTS声明式UI,通过 Native C++(N-API) 将高性能模块以C/C++实现并暴露上层。
五、工具链
CMake/Makefile/Kconfig、GDB/strace/perf/kgdb、Git、交叉编译(arm/aarch64/riscv)。
六、适用领域
嵌入式/物联网操作系统、工业控制/车载/医疗/机器人、高性能中间件/边缘计算。
一句话总结:既能写 Linux驱动 与 OpenHarmony南向,也能做 Linux/Qt应用 与 OpenHarmony北向,具备端到端系统研发能力。
项目一:Linux驱动开发方向
项目名称:工业级ARM平台多串口扩展驱动开发
项目描述
为某工业控制终端(基于i.MX6ULL / Allwinner 平台)开发多路UART扩展芯片(如SC16IS752、XR21V1414等)的Linux字符设备驱动程序,实现4-8路串口的高可靠数据收发,满足工业现场设备(PLC、传感器、仪表)的数据采集需求。
核心职责与技术要点
编写字符设备驱动,实现open/read/write/ioctl等文件操作接口,支持用户层通过标准串口API(termios)访问;
基于设备树(Device Tree) 描述硬件资源(中断、寄存器地址、时钟),使用platform驱动框架实现设备与驱动的匹配;
处理中断与并发:采用中断顶半部+底半部(tasklet/workqueue) 机制收数据,使用自旋锁+互斥锁保护共享资源,避免竞态;
对接TTY子系统,将驱动注册为标准的tty_driver,使应用层可沿用现有串口工具;
实现DMA模式批量数据传输,降低CPU占用率,在115200波特率下实现零丢包;使用printk、kgdb、ftrace、bpftrace进行内核调试与性能分析
项目:跨平台蓝牙调试助手(Qt + Bluetooth)
项目描述
开发一款基于Qt 5.15/6.x的跨平台蓝牙调试工具,支持Windows/Android/Linux平台,实现与蓝牙模块(如HC-05、HC-06)或蓝牙设备的数据透传通信。该项目借鉴了串口调试助手的成熟设计思路,将底层通信从QSerialPort迁移至QBluetoothSocket,实现有线到无线的无缝迁移。
核心职责与技术要点
设备发现:使用QBluetoothDeviceDiscoveryAgent扫描周围经典蓝牙设备(BR/EDR),实时显示设备名称和地址列表;
服务发现:通过QBluetoothServiceDiscoveryAgent配合UUID过滤,精准查找提供串口服务(SPP)的目标设备;
RFCOMM连接:采用QBluetoothSocket建立RFCOMM通信通道,实现与蓝牙模块的数据收发;
数据传输:提供发送/接收编辑框和十六进制/文本模式切换,支持ASCII与Hex格式互转,满足不同调试需求;
跨平台适配:处理Android平台蓝牙权限动态申请(QBluetoothPermission),一套代码编译生成Windows/Android/Linux多端应用;
UI设计:使用Qt Widgets构建简洁界面,包含设备列表、连接状态显示、收发日志区、AT指令快捷发送按钮。
项目成果
成功实现手机App与HC-05蓝牙模块的通信测试,数据收发稳定,无丢包;
开发一款基于Qt 5.15/6.x的跨平台蓝牙调试工具,支持Windows/Android/Linux平台,实现与蓝牙模块(如HC-05、HC-06)或蓝牙设备的数据透传通信。该项目借鉴了串口调试助手的成熟设计思路,将底层通信从QSerialPort迁移至QBluetoothSo
编写字符设备驱动,实现open/read/write/ioctl等文件操作接口,支持用户层通过标准串口API(termios)访问; 基于设备树(Device Tree) 描述硬件资源(中断、寄存器地址、时钟),使用platform驱动框架实现设备与驱动的匹配; 处理