1. 目的
本文档提供了一个开发人员指南,用于在 CC2530 SoC 的任何示例
或所有 Z-Stack 应用中实现串行引导加载程序(SBL)的兼容性。
2. 功能概述
提供 SBL 作为增值示例解决方案,可以更新设备中的代码,而无
需在用户应用程序中维护任何与下载相关的代码,且不必确保最
终输出的兼容闪存映射。SBL 作为一种受控客户端 - 服务器机制
实现,它需要一个串行主机来驱动该过程(即 PC 托管的 GUI 应用
程序能够与 CC2530 的串行连接。)
3. 假设
1. SBL 是一种通用特性,它应该尽可能少地偏离一个实现到
另一个实现,只需支持特定介质(例如 UART,SPI)的特性,
这对于以合理的时间完成代码映像下载所需的服务级别至关
重要。 仅作为示例,本文档中将提供 UART SBL 特定参考,
虽然仅更改介质特定语言和路径但应该允许本文档充分描述
任何 Z-Stack SBL。
4. 定义,缩略词,首字母缩写
术语
PC
NV
定义
Personal Computer
Non-volatile(e.g.memory
that persists through
power cycles)
SBL
5. 参考文献
Serial Boot Load(er)
[1] Z-Stack Developer’s Guide(SWRA176)
6. 修订历史
日期
05/20/09
03/18/2010
7. 设计约束
文档版本
更改描述
1.0
1.1
新 文 件 - 使 用 “OAD
for CC2430”作为模板。
根据来自 Bug 3204 的最
新 SBL 行为进行更新。
7.1 外部约束/特征
1. 串行总线主设备必须通过串行总线驱动下载到 CC2530--设计
或实现这种应用程序的方法超出了本文的范围。
2. 启动代码至少需要第一个闪存页面,以便它可以拦截启动向
量。
7.2 内部约束/要求
1. 要通过 SBL 加载的映像必须符合与串行引导加载程序兼容的
闪存映射。兼容性包括闪存使用和 ISR 向量重定位(请参见图
1)
2. SBL 必须允许总线主机强制启动加载模式或在启动后立即跳
转到有效的应用程序代码。
3. 当不处于引导加载模式时,SBL 必须立即将它消耗的任何 ISR
向量转发到应用程序代码中的已知重定位(请注意,在这种情
况下,应用程序代码甚至可能无法启用此类 ISR 向量(例如
USB ISR) 它也不需要为它定义一个 ISR。)
8. 设计
8.1 SBL Context
SBL 的启动系统由两个映像组成:'引导加载程序代码'和 Z-
Stack 应用程序兼容 - “应用程序代码”/“活动代码”。
将两个映像中的任意一个放置到内部闪存中都是由各自唯
一的 IAR 链接器命令文件来处理。
8.2 功能概述
8.2.1 启动代码
SBL 解决方案需要使用启动代码来检查活动代码映
像的完整性,然后才能跳转到该代码。此检查可防
止活动映像区域的编程不完整或不正确。 SBL 启动
代码提供以下功能:
1. 引导代码将成为复位向量的目标(以及在所选串行总线上
进行通信所需的任何向量),因此包含启动和 ISR 代码。
2. 当检测到串行总线连接并且主应用程序命令它时,引导代
码会将 SBL 映像编程到活动映像区域,并因此完成 SBL 过
程的最后一步:代码实例化
3. (可选)通过 CRC 检查活动应用程序代码映像的有效性,
引导代码将防止活动映像区域的中断,不完整或不正确编
程。 如果映像无效,那么引导代码将不允许它运行。
8.2.2 兼容 SBL 的 Z-Stack
除了链接器命令文件和一些辅助设置之外,兼容
SBL 的 Z-Stack 被实现为标准的 ZigBee 应用程序版
本。
图 1:SBL 和兼容 SBL 的 Z-Stack 映像的架构布局。
9. 生成要编程的 SBL 引导代码
9.1 引导代码的单独构建和调试
引导代码是通过在下面路径中打开 SBL 引导项目通过 IAR
IDE 单独构建和调试或编程的:
$INSTALL_DIR$\Projects\zstack\Utilities\BootLoad\CC2530\Boot.eww
默认配置是使用下载选项擦除闪存,以便使用清洁闪存启
动 CC2530 SoC(从而清洁 NV)。 在调试或物理编程下一节
中生成的兼容 SBL 的应用程序代码之前,必须先将此 SBL
引导代码编程到闪存中(但仅此一次,因为如以下部分所述,
应用程序代码的默认选项是在连续调试或编程时保留此
SBL 引导代码。)
10. 生成与 SBL 兼容的应用程序代码以通过 SBL 进行调试
或加载。
被称为 GenericApp 的 Z-Stack 示例应用程序的“RouterEB”版本
仅用于演示目的,客户将在他自己的专有 Z-Stack 应用程序中应用
以下步骤,并对以下所有路径进行相应更改这是 GenericApp 特有
的。CC2530 也仅用于演示 - 这些相同的步骤适用于 Z-Stack 版
本支持的任何 CC2530 目标以及符合标准的 SBL。 CC2530 目标特
有的路径相应地改变是唯一必要条件。
10.1 为 SBL 功能配置链接器选项。
10.1.1 配置链接器以生成额外的输出。
选中该复选框以“Allow C-SPY-specific extra output file”,
如下所示。
10.1.2 配置链接器额外输出文件格式。
选中复选框以“Generate extra output file”并选择“Output
format:”作为 simple-code,如下所示。
10.1.3 配置链接器命令文件以实现与 SBL 兼容的映射
对于“Override default”命令字符串使用以下行:
$PROJ_DIR$\..\..\..\Tools\CC2530DB\cc2530-sb.xcl