1.2 Z-Stack 3.0.1 工程框架
本节导读
上一节我们找到了例程文件夹 Projects\zstack\HomeAutomation\SampleSwitch。这一节要做的,就是用 IAR 集成开发环境把这个工程打开,看它的内部结构,并完成第一次编译。
打开之后你会惊讶:一个"智能开关"工程,左侧 Workspace 里居然有十几个代码分组——这就是 Z-Stack 工程的"框架"。
工程组织结构
本节以 SampleSwitch 例程来讲解协议栈的工程文件结构。
进入 SampleSwitch 工程所在文件夹(路径:...\Projects\zstack\HomeAutomation\SampleSwitch\CC2530DB):

文件夹/文件说明:
| 名称 | 类型 | 作用 |
|---|---|---|
CoordinatorEB | 文件夹 | 协调器工程的配置文件夹 |
settings | 文件夹 | IAR 工程设置 |
BuildLog.log | 文本 | 编译日志 |
SampleSwitch.dep | DEP 文件 | 依赖关系描述 |
SampleSwitch.ewd | EWD 文件 | IAR 调试器配置 |
SampleSwitch.ewp | EWP 文件 | IAR 工程文件(工程核心) |
SampleSwitch.eww | EWW 文件 | IAR 工作区文件(双击打开它) |
双击
SampleSwitch.eww,即可用集成开发环境 IAR 10.10.1 打开整个工作区。
IAR 里的工程结构
通过 IAR 打开 SampleSwitch.eww 后,左侧 Workspace 面板展示了工程的完整分组:

各分组说明:
| 分组 | 作用 | 通俗理解 |
|---|---|---|
| App | 应用程序相关源代码 | 你的业务代码 |
| BDB | ZigBee BDB(设备基础行为) | 入网、找网的标准动作 |
| GP | ZigBee GP(Green Power,绿色能源) | 绿色能源子协议 |
| HAL | 硬件抽象层,各种驱动程序 | 外设驱动 |
| MAC | 媒体介质访问控制(802.15.4) | 快递员+信封 |
| MT | 监视层 | 调试监控 |
| NWK | ZigBee 网络层 | 城市邮局 |
| OSAL | 操作系统抽象层 | 排班经理 |
| Profile | ZigBee 标准化定义 | 行业标准手册 |
| Security | 安全相关服务 | 门禁安保 |
| Services | 公共常用功能 | 公共工具箱 |
| Tools | 工程配置 | 施工工具 |
| ZDO | ZDO(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(重新编译全部):

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

看到 "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 节,经本站整理优化以便于理解;原站链接