ARM32 Linux + RTOS 异构 SoC 平台:从样片到量产的 BSP 与驱动产品系统

我要开发同款
sky20602026年11月04日
4阅读

技术信息

语言技术
C、Shell、EmbeddedSystem、Linux
系统类型
Linux、嵌入式硬件
行业分类
物联网、智能硬件

作品详情

行业场景

面向商用安全终端的一颗全新 SoC,ARM32 架构,AP 核运行 Linux、SP 核运行 RTOS。芯片从样片阶段导入,原厂只有首版 SDK,文档不全、驱动不完整,部分控制器 IP 还存在设计缺陷。项目目标是在芯片和 SDK 都不成熟的情况下,把操作系统平台做到可量产,并支撑多款产品并行研发。平台下产品已量产,累计出货达百万台级。

功能介绍

平台提供从 U-Boot、Linux 内核、驱动到核间通信和调试工具的完整 BSP:
1. 驱动:DMA、SPI、MIPI DSI、LCD、Camera、以太网、USB、MTD/NAND、UART、I2C、pinctrl/GPIO、中断、设备树。
2. 异构通信:AP 与 SP 之间基于 RPMsg/VIRTIO 通信,SP 侧使用 OpenAMP,上层 RPC 采用 nrfrpc + CBOR。
3. 安全:TrustZone BL32,由内核经 SMC 调用。
4. 调试与稳定性:kdump(启动 crash kernel、导出 vmcore)、hard lockup detector、perf ARM PMU 计数、DDR 各端口读写带宽监测、ftrace/trace-cmd/KernelShark/trace-irqoff,一键编译带 lockdep、softlockup 检测的 debug 版系统。
5. 测试:引入 memtester(U-Boot 阶段)和 stressapptest(系统阶段)作为平台 DDR 测试方案。

项目实现

我是平台第一负责人和项目经理,负责平台方案、架构设计、任务拆解和原厂对接,并亲自编写主体框架和驱动代码;平台按硬件、U-Boot、RTOS、AP 驱动、中间件五块分工,协调几十人。
1. 驱动重构:带队重构 DMA、SPI、DSI 驱动,调整 pinctrl 架构,修复 USB、NAND、Camera、LCD、以太网等控制器驱动缺陷;多个驱动由我主导原厂从零写起、逐版完善。
2. 疑难问题:NAND 轮询缺少编译器屏障,GCC -O2 把状态读取移出循环,导致 soft lockup,通过反汇编定位,用 cpu_relax() 加超时修复;历时 4 个多月定位 GPIO IP 电源域设计缺陷导致的 SoC 异常发热,给出软件规避方案。
3. 内存优化:DDR 占用净减 11.62 MB;IPC 从 gdbus 换成 ubus,传输快约 10 倍、内存省 8.06 MB。
4. 质量:跟踪原厂需求与缺陷,SDK 逐版验收,有问题的代码不合入。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论