TI CC254x OAD教程:远程固件升级详解

需积分: 10 0 下载量 60 浏览量 更新于2024-07-17 收藏 500KB PDF 举报
本资源是一份由TI官方发布的详细文档,名为"BLE Developer's Guide for Over-the-Air Download (OAD) for CC254x", 版本为1.2。这份指南专为在CC254x系统-on-a-chip (SoC) 上使用TI BLE栈的开发者设计,旨在帮助他们成功实现专有的TIOAD(Over-the-Air Download)功能,这是一种无需物理访问通过编程头即可更新部署设备代码的增值解决方案。 主要功能概述: - OAD是一种扩展的栈级特性,它作为一个客户端-服务器机制,其中一个设备作为OAD图像服务器(OAD Manager),负责管理和提供更新的代码,而其他设备则是OAD图像客户端(OAD Target),接收并执行这些更新。 核心概念: 1. Boot Image Manager (BIM): BIM是启动代码的一部分,它接收到复位中断向量,并决定运行哪个有效图像(Image-A或Image-B)。 2. Boot Encrypted Manager (BEM): BEM是BIM的加密版本,确保代码的安全性。 3. Encrypted Bootload (EBL): EBL用于对目标设备的图像进行加密,保护更新过程中的数据安全。 4. Down-Loaded: 这是指一个已下载的候选更新,等待在目标设备上执行。 实施流程: - 开发者需要熟悉应用编程接口(API)来集成OAD功能到其应用中。 - 设计阶段,要确保BIM和BEM不会被更新,因为它们负责引导设备启动流程。 - 更新过程包括从服务器下载加密过的图像(EBL),然后在目标设备上解密并加载到内存中执行。 文档详细介绍了如何在IAR开发环境中配置和实现这一功能,包括添加必要的代码片段、设置正确的配置参数,以及指导整个OTA升级流程。通过遵循这份文档,开发者能够有效地利用CC254x的Over-the-Air Download特性,提高产品的灵活性和维护效率。 这份指南对于任何希望在蓝牙低功耗(BLUETOOTH)设备中实施远程代码更新功能的开发者来说,是一项宝贵的资源,提供了实用的技术指导和实践步骤。

oad configuration information from configs/recognition/st_gcn_aaai18/kinetics-skeleton/test.yaml [ ] 0/86, elapsed: 0s, ETA:Traceback (most recent call last): File "/home/zrb/anaconda3/envs/open-mmlab/bin/mmskl", line 7, in <module> exec(compile(f.read(), __file__, 'exec')) File "/home/zrb/mmskeleton/tools/mmskl", line 123, in <module> main() File "/home/zrb/mmskeleton/tools/mmskl", line 117, in main call_obj(**cfg.processor_cfg) File "/home/zrb/mmskeleton/mmskeleton/utils/importer.py", line 24, in call_obj return import_obj(type)(**kwargs) File "/home/zrb/mmskeleton/mmskeleton/processor/recognition.py", line 47, in test output = model(data) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__ result = self.forward(*input, **kwargs) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 150, in forward return self.module(*inputs[0], **kwargs[0]) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__ result = self.forward(*input, **kwargs) File "/home/zrb/mmskeleton/mmskeleton/models/backbones/st_gcn_aaai18.py", line 94, in forward x = self.data_bn(x) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__ result = self.forward(*input, **kwargs) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/modules/batchnorm.py", line 81, in forward exponential_average_factor, self.eps) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/functional.py", line 1656, in batch_norm training, momentum, eps, torch.backends.cudnn.enabled RuntimeError: running_mean should contain 60 elements not 54

231 浏览量