跳转至

WS53 构建与配置

本文介绍 SDK 目录、编译、menuconfig、串口配置和应用开发。尚未准备开发环境时,请先选择 Linux 环境配置或 Windows 环境配置。

SDK目录结构介绍

解压缩SDK后的根目录,如图1(编译后生成output目录)所示。

图 1 解压缩SDK示例

解压缩 SDK 后的目录结构示例

SDK根目录结构如表1所示。

表 1 SDK根目录

目录

说明

application

应用层代码(其中包含demo程序为参考示例)。

bootloader

boot引导文件目录。

build

SDK构建所需的脚本、配置文件。

drivers

驱动代码。

include

API头文件存放目录。

interim_binary

库存放目录。

kernel

内核代码和OS接口适配层代码。

libs_url

二进制bin校对文件目录。

middleware

中间件代码。

open_source

开源代码。

protocol

Wi-Fi、BT、Radar 等组件代码。

test

testsuite代码。

tools

包含编译工具链(包括linux和windows)、镜像打包脚本、NV制作工具和签名脚本等。

output

编译时生成的目标文件与中间文件(包括库文件、打印log、生成的二进制文件等)。

build.py

编译入口脚本。

CMakeLists.txt

Cmake工程顶层“CMakeLists.txt”文件。

config.in

Kconfig配置文件。

编译(CMake)

内核依赖配置

SDK编译默认包含Syschannel Host驱动编译,编译SDK前,需要修改“/middleware/utils/syschannel/syschannel_host/Makefile”指定正确的内核路径。

如果不需要编译Syschannel Host驱动,可以修改"build/config/target_config/ws53/config.py"文件,删除或注释掉ram_component中的"syschannel_host_ko"组件。

编译方法

根目录下执行“python3 build.py ws53_liteos_app”指令运行脚本编译ws53_liteos_app。编译命令列表如表1所示。

表 1 build.sh参数列表

参数

示例

说明

无

python3 build.py ws53_liteos_app

启动ws53_liteos_app目标的增量编译。

-c

python3 build.py -c ws53_liteos_app

启动ws53_liteos_app目标的全量编译。

menuconfig

python3 build.py ws53_liteos_app menuconfig

启动ws53_liteos_app目标的menuconfig图形配置界面。

编译得到的烧录全量镜像在“output/ws53/fwpkg/pack_all_core/ws53_liteos_app”目录下(如表2所示)。

表 2 烧录镜像

文件名

说明

ws53_liteos_app_all_in_one.fwpkg

空片烧录时,需要烧录此文件。包含了所有的需要升级的内容。包含:loaderboot_sign.bin、root_params_sign.bin、flashboot_sign_a.bin、flashboot_sign_b.bin、application_sign.bin、control_ws53_sign.bin、ws53_all_nv.bin。

各文件介绍如下:

loaderboot_sign.bin:loaderboot的镜像文件。升级开始时,芯片中固化的romboot会接收此镜像文件,加载到内存并运行,loadboot负责接收后续的镜像文件。注:此镜像只在升级阶段放在RAM中运行,并不存放在flash中。

root_params_sign.bin:flash分区信息的镜像文件。分区信息供romboot、loaderboot和flashboot使用。

flashboot_sign_a.bin:flashboot的镜像文件。

flashboot_sing_b.bin: flashboot的备份镜像文件。

application_sign.bin:版本镜像文件。

control_ws53_sign.bin:c核镜像文件。

ws53_all_nv.bin:参数区的镜像文件。

ws53_liteos_app_load_only.fwpkg

版本升级打包文件,包含:loaderboot_sign.bin和application_sign.bin。不包含flashboot相关内容。

当芯片烧录过“ws53_liteos_app_all_in_one.fwpkg”镜像后,如果后续修改不涉及root_params、flash_boot、nv的修改,则可以用此文件升级。

说明: 注:编译得到的中间文件在“output/ws53/acore/ws53_liteos_app”目录下。

运行“python3 build.py -c ws53_liteos_app menuconfig”脚本会启动 menuconfig 程序,用户可通过 menuconfig 对编译和系统功能进行配置,如图 1所示。

SDK 集成默认配置。使用“python3 build.py -c ws53_liteos_app menuconfig”修改配置。

图 1 Menuconfig运行界面

Menuconfig 运行界面

注:界面如存在差异,以实际版本为准。

Menuconfig操作说明如表1所示,在Menuconfig界面中可输入快捷键进行配置。

表 1 Menuconfig常用操作命令

快捷键

说明

空格、回车

选中,反选。

ESC

返回上级菜单,退出界面。

Q

退出界面。

S

保存配置。

F

显示帮助菜单。

所有命令可在Menuconfig界面的下方查看Menuconfig官方说明解释,如图2所示。

图 2 Menuconfig命令帮助栏

Menuconfig 命令帮助栏

表 2 常用Menuconfig配置

配置项

menuconfig路径

描述

ccpriv at debug command

Middleware → Utils → AT→ Config AT→ccpriv at debug command

打开WiFi模块的调试命令开关

Support bluetooth/sparklink host save smp keys

Protocol → bt_host → Support bluetooth → sparklink host save smp keys

打开星闪/蓝牙模块的密钥持久化能力(需要同时打开Middleware → Chips → Chip Configurations for ws53 → NV)

UART配置方法

WS53总共有3个UART,SDK默认配置如下。

UART序号

波特率

默认配置

用途

0 H1

115200

空闲不使用

支持DEBUG、AT、HSO

1 H0

921600

HSO(连接HSO工具用于WiFi日志抓取)

支持HSO、DEBUG

2 L0

115200

烧录、DEBUG、AT

支持烧录、DEBUG、AT、HSO

  • 烧录功能,固定用UART-L0,不可更改。

  • HSO串口默认是UART-H0, 可以配置为UART-L0或UART-H1,波特率可以通过menuconfig进行定制,默认使用921600,支持关闭。

    menuconfig的配置路径为Drivers->Chips->Chip Configurations for ws53。

    HSO 串口 menuconfig 配置示例

  • AT串口默认是UART-L0,可通过menuconfig配置串口号(可选UART-L0、UART-H1)和波特率,默认使用UART-L0,波特率默认为115200,支持关闭。 menuconfig的配置路径为Drivers->Chips->Chip Configurations for ws53。

    AT 串口 menuconfig 配置示例

  • DEBUG串口可通过menuconfig配置串口号(可选UART-L0、UART-H1、UART-H0)和波特率,默认使用UART-L0,波特率默认为115200,支持关闭。

    DEBUG 串口 menuconfig 配置示例

  • 支持UART-L0 RX管脚复用为普通GPIO,仅保留TX功能。可通过打开CONFIG_UART_L0_NOT_SUPPORT_RX实现,默认未打开,menuconfig配置方法如下。

    UART-L0 RX 管脚复用配置示例

  • 支持AT、DEBUG串口功能合一到HSO口上,可以用HSO工具完成AT命令及回显、DEBUG日志、HSO日志功能。需要先打开CONFIG_AT_SUPPORT_ZDIAG宏,再通过menuconfig配置HSO/AT/DEBUG为同一串口,波特率一致,可以选择是否打开HSO心跳功能。以下是将AT、DEBUG功能都合一到HSO上,并使用L0作为串口的配置示例如下。

    HSO、AT 和 DEBUG 串口合一配置示例一

    HSO、AT 和 DEBUG 串口合一配置示例二

    • AT、DEBUG串口功能合到HSO口,使用时需要注意以下事项:
      1. 连接HSO工具前要配置关闭低功耗。
      2. 想要退出HSO工具连接,切换普通串口连接,需要在HSO工具主动发起断连,确保已退出HSO连接。
      3. 不支持串口合一到H0,深睡时H0不支持唤醒,会导致AT无法使用。
      4. 合一时HSO、AT、DEBUG波特率建议都配置为921600及以上。
      5. HSO工具的版本号,需要选择3.0.120版本及以上。
  • 串口管脚复用配置:

    1. DEBUG 串口方案上 A/C 核共用串口,DEBUG 串口管脚跟随选择的串口使用对应管脚。如果选择 UART L0,串口管脚采用 AGPIO1 和 AGPIO2;如果选择 UART H1,串口管脚 TX 采用 MGPIO12,RX 采用 AGPIO4。为了通过串口输入唤醒系统,RX 管脚均采用 AGPIO。
    2. AT 口/HSO 口可以选择与 DEBUG 口复用串口,此时管脚与 DEBUG 口一致。如果选择其他串口,可以更改管脚配置。配置代码位于文件 uart_porting.c,参考函数 uart_port_config_pinmux;该函数配置对应串口管脚的模式和上拉。硬件管脚与默认配置不一致时,需要修改函数中对应管脚定义的宏。
    3. 对于AT命令 UART RX管脚,建议选择AGPIO管脚,否则AT命令本身无法唤醒系统,需要由其它管脚唤醒或者关闭低功耗模式才能输入串口。
    4. UART RX管脚配置下拉可能导致误触发串口中断,建议针对该管脚在低功耗初始化函数uapi_pm_lpc_init调用pm_port_skip_pull_down配置跳过睡眠流程下拉处理。

须知:

  1. UART波特率建议配置典型值,如115200/921600/1M等,考虑到兼容性,不建议配置不常用的特殊值,比如115623此类波特率值。
  2. 修改UART序号请慎重,必须要与板级硬件工程师确认uart硬件连接,确保软件配置与硬件板级的实际电路连接匹配,否则无法正常工作。

注意事项

  • 如果执行“./build.py”提示无权限,可执行命令“chmod +x build.py”添加执行权限或执行“python3 ./build.py”。
  • 编译过程中,报错找不到某个包,请检查环境中的python是否已经安装了相应组件。如果构建环境中包含多个python,特别是多个同版本的python,而用户无法辨认正在使用的是其中的哪个版本,此情况下,在安装python组件包时,推荐使用组件包源码进行安装。
  • 系统优先使用用户通过Menuconfig所做的配置,如果用户未配置,系统将使用默认配置进行编译。

新建APP

建立源码目录

说明: 用户可在“application/ws53”同级目录下参考“ws53_application”目录建立app,以下均以建立“my_demo”为例。

步骤如下:

  1. 新建“application/ws53/my_demo”目录,用来存放“my_demo”的源文件。
  2. 复制“application/ws53/ws53_application/CMakeLists.txt”到“application/ws53/my_demo/CMakeLists.txt”,并将源文件放在“application/ws53/my_demo”目录下。
  3. 修改“application/ws53/my_demo/CMakeLists.txt”文件。其中各个变量的含义如表1所示。

    表 1 组件的CMakeLists.txt中的变量含义

    变量名称

    变量含义

    COMPONENT_NAME

    当前组件名称,如“my_demo”。

    SOURCES

    当前组件的C文件列表,其中 CMAKE_CURRENT_SOURCE_DIR 变量标识当前“CMakeLists.txt”所在的路径。

    PUBLIC_HEADER

    当前组件需要对外提供的头文件的路径。

    PRIVATE_HEADER

    当前组件内部的头文件搜索路径。

    PRIVATE_DEFINES

    当前组件内部生效的宏定义。

    PUBLIC_DEFINES

    当前组件需要对外提供的宏定义。

    COMPONENT_PUBLIC_CCFLAGS

    当前组件需要对外提供的编译选项。

    COMPONENT_CCFLAGS

    当前组件内部生效的编译选项。

  4. 修改“application/ws53/CMakeLists.txt”,将“my_demo”目录加入编译。

  5. 修改“build/config/target_config/ws53/config.py”,在ram_component字段中加入‘my_demo’,向编译系统中注册my_demo组件。

开发代码

目录结构建立完成后开始启动开发代码(用户可参考“application/samples”进行移植),代码开发完成后即可使用“python3 build.py -c ws53_liteos_app -component=my_demo”编译my_demo进行代码编译调试。

镜像烧录

镜像烧录方法,请参见 BurnTool 中“操作指南”章节。