11 年 ARM Linux 内核与驱动开发,服务商用安全终端和智能硬件产品,覆盖多款 ARM32 安全 SoC 和通用 SoC。大部分产品从全新 SoC 开始研发,资料少、原厂支持有限,需要读源码、文档和寄存器手册,搞清楚原理后,按产品需求设计出可量产的驱动,并处理软硬件交界处的疑难故障。
点击空白处退出提示
11 年 ARM Linux 内核与驱动开发,服务商用安全终端和智能硬件产品,覆盖多款 ARM32 安全 SoC 和通用 SoC。大部分产品从全新 SoC 开始研发,资料少、原厂支持有限,需要读源码、文档和寄存器手册,搞清楚原理后,按产品需求设计出可量产的驱动,并处理软硬件交界处的疑难故障。
累计开发、移植和维护的驱动,按 Linux 子系统归类:
1. 中断与基础:中断子系统(GIC、GPIO 中断、irq flow handler)、pinctrl/GPIO、时钟、regulator 与电源域、DMA(dmaengine)、PWM、RNG。
2. 设备树:DTS 编写与适配,设计设备树节点运行时增删查改、动态创建 platform_device 的方案。
3. 总线与通信:UART、I2C、SPI、USB(含 2G/3G/4G 模块 USB 驱动)、以太网(MAC/PHY,ethtool 标准接口实现 WOL,支持魔术包和插拔唤醒)、蓝牙、Wi-Fi。
4. 存储:MTD/NAND。
5. 显示与多媒体:MIPI DSI、LCD 与 panel 层(支持不同屏动态适配)、背光、Camera、音频。
6. 输入:触摸屏(多家触控 IC 适配、固件升级、TDDI)、矩阵键盘。
7. 安全外设:防拆安全模块。
8. 工具:CPU 寄存器在线调试工具,PC 经串口读写、按位修改、跨机比对寄存器。
负责驱动设计、开发、移植和疑难问题定位,主要用 C 语言,按 Linux 内核编码规范开发。典型问题:
1. UART 休眠唤醒概率性死机:控制器接收模块关闭不彻底,时钟关闭后仍触发中断,访问寄存器卡死;在中断入口检查时钟、屏蔽并恢复中断,加超时和 sysfs 计数。
2. 开机 irq nobody cared:触摸屏 INT 脚上拉漏配,且 GPIO 中断用 handle_simple_irq 导致中断风暴;补齐上下拉配置并改用 handle_level_irq,分析文章发表于蜗窝科技。
3. 矩阵键盘杂波误报:设计扫描线高低交替 8 次、读数匹配 0x55 才确认按键的校验算法,已获发明专利授权。
4. PWM 毛刺、SPI 中断异常、PHY 双 LED 与 WOL 冲突:与原厂确认 IP 缺陷后,通过调整时序、切换引脚功能等方式规避。
5. 在缺少可用 pinctrl 和完整寄存器文档的条件下,补全 pinctrl 配置,调通 MIPI DSI 显示链路。



评论