logo资料库

CC2530串口固件升级官方教程(中文版).pdf

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
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
分享到:
收藏