跳转至

目录结构

SDK (Software Development Kit) 源码的组织方式及各目录用途

src/
├── application/
│   ├── ws63/              # 主应用工程入口(main.c)
│   └── samples/            # 示例代码(peripheral / bt / wifi / radar)
├── kernel/
│   ├── liteos/             # WS63 应用固件使用的 LiteOS 内核
│   ├── non_os/             # Boot/辅助镜像使用的裸机运行库
│   ├── osal/               # OSAL 公共头文件及 LiteOS 实现
│   └── osal_adapt/         # SDK 子系统使用的 OSAL 适配辅助组件
├── drivers/
│   ├── chips/              # 芯片级驱动(WS63 寄存器基址、中断映射)
│   ├── drivers/            # 外设驱动(gpio / uart / spi / i2c / pwm / adc / dma …)
│   ├── hal/                # 硬件抽象层
│   ├── boards/             # 板级配置(引脚复用、IO 供电)
│   └── adapter/            # OS 适配层
├── middleware/
│   ├── chips/              # 芯片适配(NV / 分区 / 异常处理)
│   ├── services/           # 能力封装(Wi-Fi 服务 / Matter)
│   └── utils/              # 通用工具(AT 命令 / DFX 诊断 / 升级 / CRC)
├── protocol/
│   ├── bt/                 # 蓝牙协议栈
│   ├── wifi/               # Wi-Fi 协议栈
│   └── radar/              # 雷达协议栈
├── open_source/
│   ├── lwip/               # lwIP 协议栈
│   ├── mbedtls/            # mbedTLS 安全传输
│   ├── cjson/              # cJSON 解析
│   ├── lvgl/               # LVGL 图形库
│   └── littlefs/           # LittleFS 文件系统
├── interim_binary/          # 预编译库及不可见源码组件
├── build/
│   ├── config/             # target 定义(config.py)与 Kconfig 菜单(.config)
│   └── cmake/               # CMake 模块
├── include/                 # 驱动 UAPI 与中间件公开头文件入口
├── bootloader/
│   ├── flashboot_ws63/     # FlashBoot 引导
│   └── commonboot/         # 通用引导逻辑
└── tools/                   # 工具链与打包脚本

应用层

路径 说明
application/ws63/ SDK 平台入口,含 main.creset_vector.S 和系统任务初始化;产品应用通常不直接修改
application/samples/ SDK 内示例代码,按功能分 peripheral/bt/ble/bt/sle/wifi/radar/

中间件层

路径 说明
middleware/chips/ws63/ 芯片适配(NV (Non-Volatile)、分区、异常处理)
middleware/services/ 能力封装(Wi-Fi 服务、Matter 等)
middleware/utils/ 通用工具(AT 命令、DFX (Diagnostic & Feedback) 诊断、升级、CRC (Cyclic Redundancy Check))
protocol/bt/ 蓝牙协议栈
protocol/wifi/ Wi-Fi 协议栈
protocol/radar/ 雷达协议栈
open_source/ 开源组件:lwIP (Lightweight IP (Internet Protocol))、mbedTLS (mbed Transport Layer Security)、cJSON、MQTT (Message Queuing Telemetry Transport)、LVGL (Light and Versatile Graphics Library)、LittleFS

内核与驱动层

路径 说明
kernel/liteos/ WS63 应用固件使用的 LiteOS (Huawei LiteOS) 内核
kernel/non_os/ FlashBoot、LoaderBoot 等辅助镜像使用的裸机运行库,不是产品应用的可选内核
kernel/osal/ OSAL (Operating System Abstraction Layer) 公共头文件和 LiteOS 实现;应用代码只包含公共头文件
kernel/osal_adapt/ SDK 其他子系统使用的 OSAL 适配辅助组件
drivers/chips/ws63/ 芯片级驱动(寄存器基址、中断号映射)
drivers/drivers/driver/ 外设驱动(gpio、uart、spi、i2c、pwm、adc、dma…)
drivers/drivers/hal/ HAL (Hardware Abstraction Layer) 抽象——芯片无关的外设操作接口
drivers/boards/ws63/evb/ 板级配置(引脚复用、内存布局)
drivers/adapter/ OS (Operating System) 适配层

可修改代码边界

区域 建议
外置工程 main/components/ 产品业务代码的推荐位置,可独立版本管理和升级 SDK
include/driver/include/middleware/kernel/osal/include/ 应用可依赖的公开接口边界
application/samples/ 学习和验证用途,可复制设计思路,不建议作为平台入口直接长期修改
drivers/middleware/protocol/kernel/bootloader/ SDK 内部实现;修改后需要自行承担升级合并、兼容性和系统验证
interim_binary/ 预编译组件,没有可修改源码;通过公开 API、配置项或回调扩展
芯片 ROM (Read-Only Memory) 固化在芯片内,通过 ROM API、callback 和补丁机制使用,不能直接修改

调试时,.elf.map 或调用栈中的地址可能落在 ROM 或预编译库中。此时应先判断符号所属边界,再决定查看源码、公开接口文档还是 ROM/库版本说明。

HAL、Porting、链接脚本和启动代码属于芯片或板级适配范围,不是产品应用接口。应用访问外设使用驱动 UAPI (Unified API),操作系统能力使用 OSAL。

构建与配置

路径 说明
build/config/target_config/ws63/ target 定义(config.py)、Kconfig 菜单(.config
build/cmake/ CMake 模块(build_component.cmake 等)
include/ 公开头文件,按子系统分子目录

构建系统的详细说明见 构建系统