WS53指导资料

- hardware
  - SoC Wi-Fi、BLE和SLE Combo芯片 硬件用户指南
    - 前言
    - 封装与管脚
    - 电性能参数
    - 原理图设计建议
    - PCB设计建议
    - 热设计建议
    - 焊接工艺
    - 潮敏参数
    - 接口时序
    - 注意事项
    - 缩略语
  - 单板硬件关键器件选型指导
    - 前言
    - 关键器件选型约束
  - 射频测试 用户指南
    - 前言
    - 测试指令
    - 注意事项
- 软件资料
  - AT命令 使用指南
    - 前言
    - 指令说明
    - Wi-Fi模块AT指令
    - BLE&SLE模块AT指令
    - PLAT模块AT指令
  - BLE BQB认证测试 指导书
    - 前言
    - 蓝牙BQB认证简介
    - BQB协议认证
    - BQB 射频认证
    - WS53特性支持情况
    - 常见问题&测试命令汇总(FAQ)
  - BOOT API开发参考
    - 前言
    - 接口介绍
  - Boot移植应用 开发指南
    - 前言
    - Boot简介
    - RomBoot功能说明
    - LoaderBoot功能说明
    - FlashBoot说明
  - CJSON 开发指南
    - 前言
    - API接口说明
    - 开发指南
  - CoAP 开发指南
    - 前言
    - API接口说明
    - 开发指南
  - EFUSE 使用指南
    - 前言
    - 概述
    - 软件编程接口使用指导
    - Burntool烧写efuse_cfg.bin说明
  - FOTA 开发指南
    - 前言
    - 概述
    - 升级包制作
    - 升级包传输
    - 升级包保存
    - 升级包本地升级
    - AB面升级
    - FAQ
  - HTTP 开发指南
    - 前言
    - 开发指南
  - MQTT 开发指南
    - 前言
    - API接口描述
    - 开发指南
    - 注意事项
  - NV存储 用户指南
    - 前言
    - NV简介
    - NV编译预置
    - NV API指南
    - NV项汇总
  - SAMPLE用例 用户指南
    - 前言
    - SAMPLE简介
    - 外设SAMPLE用例
  - SDK 开发指南
    - 前言
    - 概述
    - 系统接口
  - SDK开发环境搭建 用户指南
    - 前言
    - 开发环境搭建
    - 编译
    - 新建APP
  - Syschannel 使用指南
    - 前言
    - Syschannel 简介
    - Syschannel 使用指南
    - Syschannel 编译指导
    - Syschannel 适配常见问题
  - TLS&DTLS 开发指南
    - 前言
    - API接口说明
    - 开发指南
    - 硬件适配
    - 注意事项
  - WFA认证测试指导书
    - 前言
    - WLAN WFA协议认证介绍
    - WS53 WFA认证
    - 缩略语
  - lwIP 开发指南
    - 前言
    - 概述
    - 功能特性
    - 开发指引
    - 网络安全
    - 常见问题
    - 术语
  - 产测FAQ
    - 前言
    - FAQ
    - 注意事项
    - 版本问题记录
  - 产线工装 用户指南
    - 前言
    - 测试软件准备
    - 单板测试方案
    - TX/RX测试参考
    - WLAN Facility与固件版本
    - 产线生产ESD防护要求
  - 低功耗 开发指南
    - 前言
    - 概述
    - 超深睡模式
    - 深睡模式
    - 浅睡模式
    - 常见问题
  - 单板冒烟 测试指南
    - 前言
    - 概述
    - 单板冒烟测试
  - 安全模块 使用指南
    - 前言
    - 概述
    - 错误码
    - 网络安全注意事项
  - 文件系统 使用指南
    - 前言
    - LFS简介
    - LFS编译预置
    - LFS接口API
  - 星闪认证测试 指导书
    - 前言
    - 星闪认证简介
    - 星闪协议认证
    - 星闪射频认证
    - 星闪特性支持
    - 常见问题&测试命令汇总（FAQ）
  - 特性开发说明书
    - 前言
    - 混杂模式特性说明
    - 动态国家码特性说明
    - BLE配网特性说明
    - 安全启动特性说明
    - FLASH在线解密特性说明
  - 第三方软件 移植指南
    - 前言
    - 移植指引
    - 常见问题
  - 设备驱动 开发指南
    - 前言
    - Pinctrl
    - GPIO
    - UART
    - SPI
    - QSPI
    - I2C
    - ADC
    - DMA
    - PWM
    - WDT
    - Timer
    - Systick
    - TCXO
    - SFC
    - eFuse
    - REBOOT
    - I2S
  - 软件 开发指南
    - 前言
    - 概述
    - Wi-Fi 软件开发指南
    - BLE&SLE 软件开发指南
    - 注意事项
  - 运维手册
    - 前言
    - 系统/平台模块
    - Wi-Fi模块
  - 鸿蒙XTS认证 指导书
    - 前言
    - 概述
    - 准备工作
    - 编译openharmony静态库
    - XTS版本编译和执行

### 该页内容

- 前言
- 概述
- 准备工作
- 编译openharmony静态库
  - 创建WS53V100工程
  - 子系统配置
  - 工具链配置
  - 文件系统接口适配
  - 升级接口适配
  - 编译openharmony工程
- XTS版本编译和执行
  - SDK 链接openharmony静态库
  - 编译XTS目标
  - 执行用例

# 前言

概述

本文档详细描述WS53V100 SDK适配openharmony XTS认证操作指导。

读者对象

本文档主要适用以下工程师：

- 技术支持工程师

- 软件开发工程师

符号约定

在本文中可能出现下列标志，它们所代表的含义如下。

符号 | 说明
--- | ---
| 表示如不避免则将会导致死亡或严重伤害的具有高等级风险的危害。
| 表示如不避免则可能导致死亡或严重伤害的具有中等级风险的危害。
| 表示如不避免则可能导致轻微或中度伤害的具有低等级风险的危害。
| 用于传递设备或环境安全警示信息。如不避免则可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。 “须知”不涉及人身伤害。
| 对正文中重点信息的补充说明。 “说明”不是安全警示信息，不涉及人身、设备及环境伤害信息。

修改记录

文档版本 | 发布日期 | 修改说明
--- | --- | ---
02 | 2026-07-01 | 更新“升级接口适配”章节内容。
01 | 2024-08-08 | 第一次正式版本发布。

# 概述

openharmony XTS认证具体描述与要求，请参考openharmony官网XTS信息。

WS53属于轻量级系统，只需要关注轻量级系统的测试项，当前最新自检表为《OpenHarmony设备兼容性规范3.2自检表_轻量系统.xlsx》，筛选出如下测试套：

中文名称* | 英文名称* | 子系统 | 归属 | 适配系统类型 | 开源仓 | 源码仓 | 轻量系统最小系统 | 运动表 | 轻量系统ACTS测试套件集合
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
轻量系统服务管理 | samgr_lite | 系统服务管理 | 芯片系统公共 | 轻量|小型 | https://gitee.com/openharmony/systemabilitymgr_samgr_lite | foundation/systemabilitymgr/samgr_lite | Y | Y | ActsSamgrTest
轻量系统工具库 | utils_lite | 公共基础类库 | 芯片系统公共 | 轻量|小型 | https://gitee.com/openharmony/commonlibrary_utils_lite | commonlibrary/utils_lite | Y | Y | ActsUtilsFileTest
设备密钥管理 | huks | 安全基础能力 | 芯片系统公共 | 轻量|小型|标准 | https://gitee.com/openharmony/security_huks | base/security/huks | Y | Y | ActsHuksHalFunctionTest
init | init | 启动恢复 | 芯片系统公共 | 轻量|小型|标准 | https://gitee.com/openharmony/startup_init | base/startup/init | Y | Y | ActsBootstrapTest ActsParameterTest
轻量流水日志 | hilog_lite | DFX | 芯片系统公共 | 轻量|小型 | https://gitee.com/openharmony/hiviewdfx_hilog_lite | base/hiviewdfx/hilog_lite | Y | Y | ActsDfxFuncTest ActsHieventLiteTest
轻量系统安装 | sys_installer_lite | 升级服务 | 系统组件 | 轻量|小型 | https://gitee.com/openharmony/update_sys_installer_lite | base/update/sys_installer_lite | Y | Y | ActsUpdaterFuncTest

本文档指导适配XTS认证所需的openharmonyAPI接口，按照《L0设备OpenHarmony适配通用指导》思路执行，本文档不再赘述。

# 准备工作

1. 搭建openharmony编译环境（请参考openharmony官网环境搭建说明）。

2. 下载openharmony源码（release 3.2）。

3. 完成openharmony预编译。

4. 并在该环境上完成WS53V100 SDK环境搭建，请参见《WS53V100 SDK开发环境搭建 用户指南》。

# 编译openharmony静态库

进入openharmony源码根目录，完成以下配置。

- 创建WS53V100工程

- 子系统配置

- 工具链配置

- 文件系统接口适配

- 升级接口适配

- 编译openharmony工程

## 创建WS53V100工程

1. 拷贝device/board/hisilicon/hispark_pegasus文件夹， 重命名为“ws53

   cp -r device/board/hisilicon/hispark_pegasus device/board/hisilicon/ws53”。

2. 在“device/soc/hisilicon”下创建ws53v100文件夹。

   cd device/soc/hisilicon

       mkdir ws53v100

3. 添加编译文件device/soc/hisilicon/ws53v100/BUILD.gn，文件内容如下：

   # Copyright (C) 2024 Hisilicon (Shanghai) Technologies Co., Ltd. All rights reserved.

       group("ws53v100") {

       }

4. 进入ws53v100目录，将WS53V100 SDK拷贝到该目录下，并创建文件夹adapter/hals用存放升级及文件系统接口适配源码。

   cd device/soc/hisilicon/ws53v100

       cp -r ***/sdk ./

       mkdir adapter

       cd adapter

       mkdir hals

5. 拷贝vendor/hisilicon/hispark_pegasus目录到vendor/hisilicon，并重命名为ws53；去掉demo，audio以及token，仅保留下图所示文件。

   cp -r vendor/hisilicon/hispark_pegasus vendor/hisilicon/ws53

       cd vendor/hisilicon/ws53

       rm -rf demo

       cd hals

       rm -rf audio

       rm -rf utils/token

## 子系统配置

1. 子系统配置 vendor/hisilicon/ws53/config.json 设置L0认证所必要的子系统，可以根据自己实际情况裁剪和添加。配置如下：

       {
           "product_name": "wifiiot_ws53",
           "type": "mini",
           "version": "3.0",
           "ohos_version": "OpenHarmony 1.0",
           "device_company": "hisilicon",
           "device_build_path": "device/board/hisilicon/ws53",
           "board": "ws53",
           "kernel_type": "liteos_m",
           "kernel_is_prebuilt": true,
           "kernel_version": "",
           "subsystems": [
             {
               "subsystem": "hiviewdfx",
               "components": [
                 { "component": "hilog_lite", "features":[] },
                 { "component": "hievent_lite", "features":[] }
               ]
             },
             {
               "subsystem": "systemabilitymgr",
               "components": [
                 { "component": "samgr_lite", "features":[] }
               ]
             },
             {
               "subsystem": "security",
               "components": [
                 { "component": "huks", "features":
                   [
                     "disable_huks_binary = false",
                     "disable_authenticate = false",
                     "huks_use_lite_storage = true",
                     "huks_use_hardware_root_key = true",
                     "huks_config_file = \"hks_config_lite.h\""
                   ]
                 }
               ]
             },
             {
               "subsystem": "startup",
               "components": [
                 { "component": "bootstrap_lite", "features":[] },
                 { "component": "syspara_lite", "features":[] },
                 { "component": "init_lite", "features":
                   [
                     "enable_ohos_startup_init_feature_begetctl_liteos = true"
                   ]
                 }
               ]
             },
             {
               "subsystem": "updater",
               "components": [
                 { "component": "ota_lite", "features":[] }
               ]
             },
             {
               "subsystem": "commonlibrary",
               "components": [
                 { "component": "file", "features":[] }
               ]
             },
             {
              "subsystem": "xts",
              "components": [
                { "component": "xts_acts", "features":[]},
                { "component": "xts_tools", "features":[] }
               ]
             }
           ],
           "third_party_dir": "//third_party",
           "product_adapter_dir": "//vendor/hisilicon/ws53/hals"
         }

2. 编译适配ohos.build

   修改“vendor/hisilicon/ws53/ohos.build”，文件内容如下：

       {
         "parts": {
           "product_wifiiot_ws53": {
             "module_list": [
               "//vendor/hisilicon/ws53:ws53"
             ]
           }
         },
         "subsystem": "product_wifiiot_ws53"
       }

3. 编译适配 BUILD.gn

   修改“vendor/hisilicon/ws53/BUILD.gn”，文件内容如下：

       # Copyright (C) 2024 Hisilicon (Shanghai) Technologies Co., Ltd. All rights reserved.
       group("ws53") {
       }

## 工具链配置

1. 配置编译工具链文件“device/board/hisilicon/ws53/liteos_m/config.gni”，文件内容如下：

       # Copyright (C) 2024 Hisilicon (Shanghai) Technologies Co., Ltd. All rights reserved.

       # Kernel type, e.g. "linux", "liteos_a", "liteos_m".
       kernel_type = "liteos_m"

       # Kernel version.
       kernel_version = ""

       # Board CPU type, e.g. "cortex-a7", "riscv32".
       board_cpu = ""

       # Board arch, e.g.  "armv7-a", "rv32imac".
       board_arch = "rv32imac"

       # Toolchain name used for system compiling.
       # E.g. gcc-arm-none-eabi, arm-linux-harmonyeabi-gcc, ohos-clang,  riscv32-unknown-elf.
       # Note: The default toolchain is "ohos-clang". It's not mandatory if you use the default toolchain.
       board_toolchain = "riscv32-linux-musl"

       # The toolchain path installed, it's not mandatory if you have added toolchain path to your ~/.bashrc.
       board_toolchain_path = ""

       # Compiler prefix.
       board_toolchain_prefix = "riscv32-linux-musl-"

       # Compiler type, "gcc" or "clang".
       board_toolchain_type = "gcc"

       # Board related common compile flags.
       board_cflags = [
         "-mabi=ilp32",
         "-falign-functions=2",
         "-msave-restore",
         "-fno-optimize-strlen",
         "-freorder-blocks-algorithm=simple",
         "-fno-schedule-insns",
         "-fno-inline-small-functions",
         "-fno-inline-functions-called-once",
         "-mtune=size",
         "-mno-small-data-limit=0",
         "-fno-aggressive-loop-optimizations",
         "-std=c99",
         "-Wpointer-arith",
         "-Wstrict-prototypes",
         "-ffunction-sections",
         "-fdata-sections",
         "-fno-exceptions",
         "-fno-short-enums",
         "-Wextra",
         "-Wundef",
         "-U",
         "PRODUCT_CFG_BUILD_TIME",
         "-D__LITEOS__",
         "-DCMSIS_OS_VER=2",
         "-DLOSCFG_COMPAT_CMSIS_VER_2",
         "-DCHIP_WS53=1",
         "-DCHIP_VER_Hi3861",
         "-DLOSCFG_XTS_SUPPORT",
       ]
       board_cxx_flags = board_cflags
       board_ld_flags = []

       # Board related headfiles search path.
       board_include_dirs = [
         "${ohos_root_path}commonlibrary/utils_lite/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/include/driver",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/include/middleware/utils",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/middleware/chips/ws53/update/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/middleware/chips/ws53/partition/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/middleware/chips/ws53/littlefs",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/middleware/utils/update/inner_include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/middleware/utils/common_headers",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/drivers/chips/ws53/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/drivers/chips/ws53/include/acore",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/drivers/boards/ws53_fpga/memory_config/include/product",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/kernel/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/platform/libsec/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/drivers/interrupt/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/drivers/timer/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/targets/ws53/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/arch/riscv/include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/arch/riscv/include/arch",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/compat/cmsis",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/open_source/CMSIS/CMSIS/RTOS2/Include",
       "${ohos_root_path}device/soc/hisilicon/ws53v100/sdk/kernel/liteos/liteos_v208.5.0/Huawei_LiteOS/open_source/incubator-nuttx/include",
       ]

       # Board adapter dir for OHOS components.
       board_adapter_dir = "//device/soc/hisilicon/ws53v100/adapter"

       # Sysroot path.
       board_configed_sysroot = ""

       # Board storage type, it used for file system generation.
       storage_type = ""

2. 编译适配 device/board/hisilicon/ws53/ohos.build，文件内容如下：

   {

         "parts": {

           "device_ws53": {

             "module_list": [

               "//device/soc/hisilicon/ws53v100:ws53v100"

             ]

           }

         },

         "subsystem": "device_ws53"

       }

## 文件系统接口适配

1. 拷贝WS53V100 SDK 文件系统接口适配文件到openharmony工程（把WS53V100 SDK中“littlefs_xts_adapt.c”文件拷贝到openharmony源码中“device/soc/hisilicon/ws53v100/adapter/hals/utils/file/src”目录）：

       cd device/soc/hisilicon/ws53v100/adapter/hals/
       mkdir utils
       cd utils
       mkdir file
       cd file
       mkdir src
       cd src
       cp ~/ws53/sdk/middleware/utils/fs/adapter/xts/littlefs_xts_adapt.c ./

2. 添加编译脚本“device/soc/hisilicon/ws53v100/adapter/hals/utils/file/BUILD.gn”，文件内容如下：

       import("//build/lite/config/component/lite_component.gni")

       static_library("hal_file_static") {
         sources = [ "src/littlefs_xts_adapt.c" ]
         include_dirs = [
           "//commonlibrary/utils_lite/hals/file",
           "//device/soc/hisilicon/ws53v100/sdk/include",
         ]
       }

   文件目录结构如下图所示。

## 升级接口适配

1. 拷贝 WS53V100 SDK升级适配文件到openharmony工程，（把WS53V100 SDK中upg_xts_adapt.c文件拷贝到openharmony源码中“device/soc/hisilicon/ws53v100/adapter/hals/update”目录）：

       cd device/soc/hisilicon/ws53v100/adapter/hals/
       mkdir update
       cd update
       cp ~/ws53/sdk/middleware/utils/update/adapter/xts/upg_xts_adapt.c ./

   文件upg_xts_adapt.c包含数组g_pub_key_buf为xts OTA升级所需要的公钥，应用时数组内容和长度需要修改。

   公私密钥生成请参考openharmony开发指南，开源指导可参考：https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-ota-guide.md#%E7%94%9F%E6%88%90%E5%85%AC%E7%A7%81%E9%92%A5%E5%AF%B9。

2. 添加编译脚本“device/soc/hisilicon/ws53v100/adapter/hals/update/BUILD.gn”，文件内容如下：

       import("//build/lite/config/component/lite_component.gni")

       static_library("hal_update_static") {
         sources = [ "upg_xts_adapt.c" ]
         include_dirs = [
           "//base/update/ota_lite/hals",
           "//base/update/ota_lite/interfaces/kits",
           "//device/soc/hisilicon/ws53v100/sdk/include",
         ]
       }

   文件目录结构如下图所示。

## 编译openharmony工程

1. 进入openharmony源码根目录，执行hb set，选择“wifiiot_ws53”。

2. 执行编译命令“hb build -f -b debug --gn-args build_xts=true”。编译成功后在“out\ws53\wifiiot_ws53\libs”路径下生成静态库

   编译成功打印如下：

# XTS版本编译和执行

- SDK 链接openharmony静态库

- 编译XTS目标

- 执行用例

## SDK 链接openharmony静态库

1. 将编译的openharmony静态库拷贝到WS53 SDK的二进制库目录下，命令依次为（请根据自己的目录修改命令）。

       cd ws53/sdk/interim_binary/ws53/libs/
       mkdir ohos
       cd ohos/
       mkdir ws53_liteos_xts
       cd ws53_liteos_xts /
       cp ~/openharmony/adapt_3_2/out/ws53/wifiiot_ws53/libs/* ./

2. 修改xts编译目标，链接上述库。

   打开文件“ws53\sdk\build\config\target_config\ws53\config.py”，搜索" ws53_liteos_xts "，在'ram_component中加入如下库：

       'bootstrap','broadcast','inithook','init_utils','begetutil','hctest',
       'native_file','hal_file_static','init_log','hilog_static',
       'hievent_lite_static','hiview_lite_static','hilog_lite_static',
       'hota','hal_update_static',
       'huks_3.0_sdk','huks_test_common',
       'hal_sysparam','param_client_lite',
       'samgr_source','samgr_adapter','samgr',
       'module_ActsParameterTest','module_ActsBootstrapTest','module_ActsHieventLiteTest',
       'module_ActsUtilsFileTest','module_ActsUpdaterFuncTest','module_ActsHuksHalFunctionTest',
       'module_ActsDfxFuncTest',
       'module_ActsSamgrTest',

## 编译XTS目标

进入SDK根目录，执行xts编译：

    cd ~/ws53/sdk/
    ./build.py -c ws53_liteos_xts

## 执行用例

1. 将“ws53\sdk\output\ws53\fwpkg\pack_all_core\ws53_liteos_xts\fpga_all_in_one.fwpkg”文件烧录到单板中，烧录配置与烧录APP版本一致。

2. 烧录完成后重启单板，单板自动开始执行用例。

3. 待用例执行完后，搜索日志中fail字段，查看是否存在未通过的用例（正常是全部通过）。