Lazy loaded image
鸿蒙物联网版本及移植
Words 3155Read Time 8 min
2026-1-19
2026-1-19
type
date
slug
category
icon
password

一、工业物联网设备使用鸿蒙OS优势

1.1 与 FreeRTOS/Zephyr/RT-Thread 对比

维度
OpenHarmony
FreeRTOS
Zephyr
RT-Thread
分布式能力
✅ 原生支持(dsoftbus)
❌ 无
❌ 无
⚠️ 需第三方
驱动复用
✅ HDF 跨内核复用
❌ 需重写
⚠️ 部分抽象
⚠️ 设备框架
生态支持
华为全栈 + 国产化
AWS/商业广泛
Linux基金会
国内活跃
GUI框架
ArkUI Lite / Graphic
需集成LVGL等
需集成LVGL等
Persimmon/LVGL
安全认证
CC EAL / 等保
需额外集成
PSA认证
基础
OTA升级
✅ 原生支持
需集成
MCUboot
需集成

1.2 分布式能力与生态优势

核心差异化优势
  1. 分布式软总线:设备间自动发现、零配置组网,适合工业多节点场景
  1. 一次开发多端部署:同一套 HDF 驱动可编译到 LiteOS-M/A 或 Linux
  1. 国产化适配:满足信创、等保等合规要求
  1. 统一开发工具链:DevEco Studio 覆盖全系统类型

二、鸿蒙OS版本与架构

2.1 三类系统定位(Mini/Small/Standard)

系统类型
内核
内存级别
隔离机制
类似系统
典型设备
Mini (轻量)
LiteOS-M
128KB+
MPU
FreeRTOS、ThreadX
传感器、智能开关
Small (小型)
LiteOS-A
1MB+
MMU
Zircon、Darwin
IP Camera、路由器
Standard (标准)
Linux
128MB+
MMU + 用户态
Android、Linux
智慧屏、平板、车机

2.2 Cortex-M 支持情况(LiteOS-M)

适用芯片:Cortex-M3/M4/M7/M33(无 MMU)
已验证平台
  • STM32F103/F407/F429/H743/H750
  • GD32F303/F450
  • Hi3861(WiFi IoT)
关键限制
  • 无虚拟内存,应用与内核同地址空间
  • 系统服务以静态库形式链接

2.3 内核层架构(KAL 抽象层)

KAL 作用:屏蔽内核差异,上层系统服务无需感知底层内核类型。

2.4 系统服务层架构(HDF + SAMGR)

HDF(Hardware Driver Foundation)
  • 统一驱动模型,一次开发多系统部署
  • 驱动可编译为 LiteOS 模块或 Linux .ko
SAMGR(System Ability Manager)
  • 服务注册与发现
  • LiteOS-M:静态注册 + 函数调用
  • LiteOS-A/Standard:动态注册 + IPC

三、移植工作内容

3.1 内核移植 vs 用户态移植对比

维度
内核移植
用户态移植(系统服务适配)
范围
BSP、中断、定时器、内存管理
SAMGR、HDF驱动、子系统组件
工作量
较大(需理解硬件)
中等(配置为主)
关键文件
target_config.h、启动汇编、链接脚本
config.jsoninit.cfg、HDF配置
典型场景
新芯片首次适配
已有内核,添加系统服务
技能要求
硬件寄存器、汇编、链接器
构建系统、服务框架

3.2 内核移植

3.2.1 LiteOS-M 内核移植示例(STM32)

环境准备
  • 工具链arm-none-eabi-gccmake
  • 工程生成:STM32CubeMX(选择 Makefile 工具链)
  • 关键配置:HAL 延时时钟改为非 SysTick(LiteOS 占用 SysTick)
移植步骤
  1. 获取源码
    1. 创建 Makefile 包含文件 liteos_file_path.mk
      1. 添加配置文件 target_config.h
        1. 编译下载

          3.2.2 LiteOS-A 内核移植要点

          • MMU 配置:需配置页表、虚拟地址映射
          • 进程初始化:init 进程作为用户态入口
          • 参考工程hispark_taurus(Hi3516DV300)

          3.3 用户态移植(系统服务适配)

          3.3.1 产品定义(config.json)

          //vendor/{company}/{product}/config.json 定义:

          3.3.2 系统服务启动适配

          LiteOS-M
          关键点:链接脚本需包含 zinit
          LiteOS-A
          关键点:SAMGR 必须首先启动

          3.3.3 HDF 驱动适配

          3.3.4 验证方法

          系统
          验证方式
          :---
          :---
          LiteOS-M
          串口日志确认 [SAMGR] 初始化
          LiteOS-A
          ps -A 查看 foundation、appspawn 进程
          Standard
          hidumper -s 查询 SA 状态

          四、Standard / LiteOS-A / LiteOS-M 系统服务差异

          4.1 三版本总表

          维度
          LiteOS-M (Mini)
          LiteOS-A (Small)
          Standard (Linux)
          进程模型
          单进程(静态链接)
          多进程(守护进程)
          多进程(完整用户态)
          服务运行形态
          静态库链接到固件
          独立进程(如 foundation)
          独立进程 + SA 动态加载
          IPC 机制
          直接函数调用 / 消息队列
          LiteIPC
          Binder / IPC (标准Linux)
          服务管理
          SAMGR (Lite)
          SAMGR (Lite)
          SAMGR + SA 生命周期
          启动机制
          OHOS_SystemInit() 宏注册
          init.cfg (rc脚本)
          init 进程 + cfg 文件
          图形框架
          无 或 极简 UI
          Graphic Lite
          ACE / ArkUI
          分布式能力
          dsoftbus_lite (极简)
          dsoftbus (轻量)
          dsoftbus + 分布式数据
          POSIX 支持
          部分
          1200+ 接口
          完整 Linux POSIX
          文件系统
          LittleFS / FatFS
          FAT, JFFS2, procfs
          ext4, F2FS, EROFS
          网络协议
          lwIP (裁剪)
          lwIP (优化)
          完整 Linux 网络栈
          典型设备
          智能开关、传感器、穿戴
          IP Camera、路由器、行车记录仪
          智慧屏、平板、车机

          4.2 IPC机制与启动机制差异

          4.3 子系统支持程度

          子系统
          LiteOS-M
          LiteOS-A
          Standard
          startup
          bootstrap_lite
          init (rc脚本)
          init + 完整启动框架
          hiviewdfx
          极简日志
          Lite版日志+Dump
          HiLog/HiTrace/HiCollie
          graphic
          无/极简
          UI Lite
          ACE/ArkUI/3D GPU
          multimedia
          编解码基础
          完整媒体框架
          distributedschedule
          dsoftbus_lite
          dsoftbus
          分布式调度+数据管理
          security
          基础
          DAC
          DAC + MAC + TEE

          4.4 选型建议

          系统类型
          适用场景
          LiteOS-M
          资源极限受限(<128KB RAM)、无MMU、实时性优先
          LiteOS-A
          中等资源(1-128MB RAM)、需要多进程隔离、轻量图形
          Standard
          算力充足(>128MB RAM)、需要完整ArkUI/分布式/生态兼容

          五、工业物联网采用鸿蒙系统的常见问题

          基于开发者社区反馈与实践经验,整理工业物联网场景下采用 OpenHarmony 的主要挑战:

          5.1 开发文档与示例

          问题
          表现
          影响
          文档不完整
          部分 API 缺乏详细说明,LiteOS-M 文档较少
          新手入门曲线陡峭
          版本不同步
          文档与实际代码版本不匹配
          按文档操作报错
          示例代码不足
          工业场景示例较少(如 Modbus、EtherCAT)
          需自行探索集成方案
          开发者反馈:“61%的开发者认为文档和代码样例是企业需要提供给开发者最重要的内容,但在开源界,一份好的开发者文档却总是可遇而不可求的。”[1]

          5.2 集成开发环境(DevEco Studio)

          问题类型
          具体表现
          解决方案
          版本兼容性
          HarmonyOS 4.x 设备无法在 DevEco 5.0.2 调试
          安装对应版本 DevEco 4.0
          编译性能
          C++ 工程编译占用 CPU 过高,电脑卡顿
          调整 CMAKE_JOB_POOL 参数
          依赖安装
          npm install eTS/JS 长时间卡住
          更换国内 npm 镜像源
          SDK 配置
          不同版本 SDK 混用导致项目异常
          严格匹配 API 版本
          典型报错hdc list targets 显示 [Empty],但 adb devices 可识别设备 — 通常是 DevEco 版本与设备系统版本不匹配。[2]

          5.3 社区成熟度与生态

          维度
          OpenHarmony
          FreeRTOS
          Linux
          社区历史
          2020年开源,约 4 年
          2003年,20+ 年
          1991年,30+ 年
          Stack Overflow 问答
          较少
          丰富
          极其丰富
          第三方库
          三方库中心仓建设中
          广泛
          极其广泛
          中文资源
          主要资源(优势)
          中等
          中等
          工业协议支持
          Modbus/OPC UA 需自行集成
          有成熟方案
          非常成熟

          5.4 人员技术要求

          南向开发(设备/驱动)
          • C/C++ 编程 + 硬件接口经验
          • 理解 HDF 驱动框架、KAL 抽象层
          • 熟悉 LiteOS 或 Linux 内核机制
          北向开发(应用)
          • ArkTS/JavaScript 开发经验
          • 理解 ArkUI 框架、分布式能力
          工业物联网场景额外要求
          • 工业协议经验(Modbus RTU/TCP、OPC UA、EtherCAT)
          • 实时性调优能力
          • 功能安全认证知识(IEC 61508 等)

          5.5 代码与构建问题

          问题类型
          典型表现
          构建系统复杂
          gn + ninja + hb 工具链学习成本高
          编译错误信息
          部分错误提示不够清晰,定位困难
          跨版本迁移
          API 9 → API 12 项目迁移工作量大
          第三方库集成
          缺少工业级库的官方适配指南

          5.6 应对建议

          1. 版本管理:严格匹配 DevEco Studio、SDK、设备系统版本
          1. 社区参与:关注 OpenHarmony 开发者论坛 获取最新动态
          1. 渐进式采用:从非关键设备开始试点,积累经验后再推广
          1. 混合架构:关键实时控制仍可用成熟 RTOS,通过 RPMsg 与鸿蒙主控通信
          1. 培训储备:提前储备熟悉 HDF/SAMGR 框架的开发人员

          参考资源

          上一篇
          智能操作系统发展调研
          下一篇
          常用接口协议-CAN 入门书学习笔记

          Comments
          Loading...