Skip to content

1.2 Z-Stack 3.0.1 工程框架 ​

本节导读

上一节我们找到了例程文件夹 Projects\zstack\HomeAutomation\SampleSwitch。这一节要做的,就是用 IAR 集成开发环境把这个工程打开,看它的内部结构,并完成第一次编译。

打开之后你会惊讶:一个"智能开关"工程,左侧 Workspace 里居然有十几个代码分组——这就是 Z-Stack 工程的"框架"。

工程组织结构 ​

本节以 SampleSwitch 例程来讲解协议栈的工程文件结构。

进入 SampleSwitch 工程所在文件夹(路径:...\Projects\zstack\HomeAutomation\SampleSwitch\CC2530DB):

SampleSwitch 工程文件夹

文件夹/文件说明:

名称类型作用
CoordinatorEB文件夹协调器工程的配置文件夹
settings文件夹IAR 工程设置
BuildLog.log文本编译日志
SampleSwitch.depDEP 文件依赖关系描述
SampleSwitch.ewdEWD 文件IAR 调试器配置
SampleSwitch.ewpEWP 文件IAR 工程文件(工程核心)
SampleSwitch.ewwEWW 文件IAR 工作区文件(双击打开它)

双击 SampleSwitch.eww,即可用集成开发环境 IAR 10.10.1 打开整个工作区。

IAR 里的工程结构 ​

通过 IAR 打开 SampleSwitch.eww 后,左侧 Workspace 面板展示了工程的完整分组:

IAR 中的 SampleSwitch 工程

各分组说明:

分组作用通俗理解
App应用程序相关源代码你的业务代码
BDBZigBee BDB(设备基础行为)入网、找网的标准动作
GPZigBee GP(Green Power,绿色能源)绿色能源子协议
HAL硬件抽象层,各种驱动程序外设驱动
MAC媒体介质访问控制(802.15.4)快递员+信封
MT监视层调试监控
NWKZigBee 网络层城市邮局
OSAL操作系统抽象层排班经理
ProfileZigBee 标准化定义行业标准手册
Security安全相关服务门禁安保
Services公共常用功能公共工具箱
Tools工程配置施工工具
ZDOZDO(ZigBee 设备对象)设备"名片"管理
ZMac属于 mac 层的内容快递员分支
ZMain主函数及硬件启动源码大楼前台
Output编译/链接输出成品仓库

对比一下:这些分组和上一节 Components 目录里的文件夹几乎一一对应——Components\hal → 工程里的 HAL 组,Components\osal → OSAL 组。工程就是把 Components 里的源码"组装"起来,再叠加上你的 App 应用。

选择网络设备类型 ​

在工程中,可以切换 ZigBee 网络设备类型。单击 Workspace 顶部的选项卡下拉列表:

选择网络设备类型

各选项含义:

选项含义
CoordinatorEB协调器(建网者)
RouterEB路由器(转发者)
EndDeviceEB终端设备(入网者)
EndDeviceEB - OTAClient支持 OTA 空中升级的终端设备
RouterEB - OTAClient支持 OTA 空中升级的路由器

三种设备类型是 ZigBee 组网的基础概念:协调器负责建立网络;路由器负责转发、扩展网络范围;终端设备负责采集/执行(可休眠省电)。后续章节会详细讲解。

工程编译及链接 ​

选择 CoordinatorEB,右击工程名称,选择 Rebuild All(重新编译全部):

右击工程选择 Rebuild All

编译及链接过程无错误、无警告,即表示工程构建成功:

编译链接成功

看到 "Total number of errors: 0" 和 "Total number of warnings: 0" 就说明:你的开发环境、源码、工程配置全部就绪,下一步就可以烧录调试了。

小结 ​

步骤做什么关键点
1找到工程...\HomeAutomation\SampleSwitch\CC2530DB\SampleSwitch.eww
2打开工程IAR 双击 .eww 工作区文件
3认识结构16 个分组 = Components 源码 + App 应用
4选设备类型CoordinatorEB(协调器)/ RouterEB(路由器)/ EndDeviceEB(终端)
5编译右击工程 → Rebuild All → errors 0 / warnings 0

一句话总结:Z-Stack 工程 = Components 协议栈源码 + 你的 App 应用,在 IAR 里以 16 个逻辑分组呈现;选好设备类型、编译通过,就拿到了可以烧录的固件。下一章进入源码内部,先看 OSAL 这个"操作系统"是怎么把整个协议栈调度起来的。


内容来源:紫甲 IoT《ZigBee 3.0 开发指南》第三部分·1.2 节,经本站整理优化以便于理解;原站链接

aioteer · 物联网专业课程群

💬AI 伴学配置