

做嵌入式Linux开发的人都有体会:硬件选型定下来之后,真正的硬仗才刚刚开始。Bootloader能不能跑起来?驱动有没有现成的?文件系统怎么搭?这些底层问题处理不好,项目可能卡在启动阶段好几个月。本文以亿佰特ECK10-13xA(STM32MP135)和ECK20-6Y28C(i.MX6ULL)两个系列为例,聊聊一套成熟的软件生态到底能帮工程师省下哪些时间。
嵌入式Linux系统从上电到正常运行,要经过三级启动。成熟的软件生态会把这三级启动的源码都准备好,开发者只需要根据自己底板的配置做参数调整就行。
以ECK10-13xA系列为例,TF-A 2.8.6(Trusted Firmware-A)作为一级启动加载器,负责初始化最基本的安全环境和硬件资源,是CPU上电后执行的第一段代码。TF-A实现了ARM Trusted Firmware规范,建立信任根(RoT),验证下一级Bootloader的签名,并配置TrustZone控制器来划分安全和非安全内存区域——对于需要数据保护和防篡改的工业应用来说,这一步很关键。
由OP-TEE 3.19和U-Boot 2022.10组成。OP-TEE提供可信执行环境(TEE),在ARM TrustZone安全世界中运行,与普通世界的操作系统隔离,适合安全支付、数字版权管理和工业协议加密等场景。U-Boot负责初始化DDR、网络、存储等外设,然后根据配置加载Linux内核。这套"安全+灵活"的双级设计,兼顾了安全性和可操作性。
前两级完成后,U-Boot将Linux Kernel 6.1.28加载到内存中启动。内核初始化剩余硬件、挂载根文件系统、启动init进程。
省时间的地方:厂商提供了TF-A、OP-TEE、U-Boot三部分的完整源码。开发者不需要从零写启动代码,只需要根据自己底板的配置修改U-Boot中的参数——比如DDR时序、网络PHY地址、启动介质优先级——就能快速生成适配自定义硬件的启动系统。这一步至少能省下几周时间。
裸机开发的时候,想控制一个GPIO可能都要花半天时间查手册。在成熟的BSP体系下,几行命令就搞定了。软件生态的核心价值之一,就是为所有板载外设提供可以直接用的驱动。
根据ECK10-13xA和ECK20-6Y28C系列的驱动资源表,以下是可用的驱动清单:
驱动类别 | 可用驱动 |
基础控制 | GPIO、看门狗 |
时间与显示 | RTC、LCD显示 |
通信接口 | I2C、SPI、UART、USB Host/OTG |
存储与触摸 | NAND Flash、电容触摸 |
专用功能 | CAN总线、PWM、ADC、以太网(GMAC) |
省时间的地方:这些驱动不是空壳子,而是经过硬件验证的成熟代码,可以直接编译进内核。当你需要在核心板上启用一个以太网接口时,不用去翻几百页的寄存器手册,直接用厂商验证好的GMAC或以太网驱动模块就行。亿佰特的BSP尽可能跟随主线Linux内核,保证长期可维护性和社区支持,驱动经过-40~85℃工业温度测试和信号完整性验证。
内核和驱动就绪后,还需要文件系统和开发工具链。这是软件生态的"最后一公里"。
ECK10-13xA系列预装带XFCE桌面的Ubuntu 18.04系统,开机就能看到熟悉的图形桌面环境。对于HMI或工业平板应用来说,这能省下大量搭建桌面环境的时间。同时还提供基于Buildroot的精简文件系统,适合对体积有要求的部署场景。
ECK20-6Y28C系列预装Ubuntu 20.04,支持Yocto Project构建系统,适合需要构建复杂工业Linux发行版的场景。
工具 | 作用 |
交叉编译工具链(gcc-arm-10.3) | 在PC上编译目标程序,然后部署到核心板运行 |
Buildroot | 通过简单配置文件构建精简根文件系统,最小可到8MB |
Yocto Project | 完整的嵌入式Linux构建系统,适合需要精细控制的复杂系统 |
STM32CubeProgrammer | ECK10系列的官方烧录工具,支持图形化和命令行 |
uuu(Universal Update Utility) | ECK20系列的烧录工具,通过USB高速烧录 |
省时间的地方:所有工具已由厂商集成在SDK包中,不用逐个下载配置。Windows下用Win32DiskImager或balenaEtcher一键制作SD卡启动系统,Ubuntu下直接用交叉编译工具链开发。环境搭建时间从几天缩短到几小时。
代码和工具是骨架,文档是灵魂。成熟的软件生态必然配备覆盖硬件设计到应用开发的完整文档体系。
文档类型 | 内容 | 作用 |
硬件设计指南 | 底板参考原理图、PCB封装库、Layout布线建议 | 规避常见硬件设计陷阱 |
软件开发指南 | 环境搭建、系统烧录、应用调试全流程 | 新项目快速上手 |
应用笔记 | MQTT云连接、Modbus通信、OTA升级示例 | 加速特定功能实现 |
参考设计 | 完整底板设计文件 | 缩短硬件设计周期60%~70% |
省时间的地方:开发中遇到问题时,完善的文档是第一道防线,80%的常见问题可以通过文档快速定位。如果文档没覆盖到,厂商的技术支持是第二道防线。这种"代码+文档+支持"的闭环,大幅降低了项目的技术风险。
对比维度 | ECK10-13xA系列(STM32MP135) | ECK20-6Y28C系列(i.MX6ULL) |
Linux内核 | Kernel 6.1.28(较新,LTS) | Kernel 5.10.9(成熟,LTS) |
启动加载器 | TF-A 2.8.6 + OP-TEE 3.19 + U-Boot 2022.10 | U-Boot 2020.04 |
操作系统 | Ubuntu 18.04(XFCE桌面) | Ubuntu 20.04 |
文件系统构建 | BuildRoot 2020.02.6 | Yocto Gatesgarth |
烧录工具 | STM32CubeProgrammer | uuu |
驱动源码 | 完整:CAN、GMAC、I2C、SPI、USB、LCD、Touch、ADC、PWM | 完整:CAN、以太网、MMC、I2C、SPI、USB |
安全特性 | 安全启动(TF-A+OP-TEE)、硬件加密引擎 | HAB安全启动、安全JTAG |
供货周期 | 10年以上 | 10年以上 |
选型建议:
· ECK10系列基于ST生态,内核较新,安全启动链完整(TF-A+OP-TEE),适合对安全性、新内核特性和多媒体能力有要求的项目(集成Mali-400 MP2 GPU)。
· ECK20系列基于NXP生态,内核版本成熟经过大量验证,使用Yocto构建系统,适合需要深度定制复杂Linux系统的工业应用。
对于工业核心板来说,硬件性能决定了产品的"下限",软件生态决定了开发效率和项目落地速度的"上限"。一套好的软件生态,核心逻辑就是”把底层那些重复性的工作提前做好”提供完整的启动代码、经过验证的驱动、预配置的系统和专业的工具链,让工程师不用重复造轮子,直接在成熟的生态基础上做业务开发。
从这个角度看,选核心板本质上就是在选一个能帮你提效的技术伙伴,而软件生态就是这个伙伴最核心的能力。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多嵌入式工业计算产品和嵌入式应用资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号(微信号:cdebyte)进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
1、工业CPU核心板选型指南:Cortex-A7到NPU方案全覆盖
2、ECK32-T527B系列嵌入式核心板工业物联网网关应用测评报告
3、ECK10-135D系列核心板与其他产品的差异及优势对比
联系我们:
技术支持:support@cdebyte.com 销售咨询:4000-330-990
7 X 24 销售服务热线:
4000-330-990©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号


