This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/CC2541:OAD 闪存时间与 BLE Device Monitor v1.2.0

Guru**** 2553450 points
Other Parts Discussed in Thread: BLE-STACK, CC2640R2F

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/573374/rtos-cc2541-oad-flashing-time-vs-ble-device-monitor-v1-2-0

器件型号:CC2541
Thread 中讨论的其他器件:BLE-STACKCC2640R2F

工具/软件:TI-RTOS

大家好、

使用不同大小图像的默认 OAD 植入式 IM。 我的时间计算如下

OAD_BLOCK_SIZE 16.
连接间隔 10.

B-Image 文件大小 模块 最小
147456 9216 2、304

显示了我可以获得的最大速度@ CI 10大约为2、3分钟、假设我只需要逐个传输一个数据包。

但是,由于默认实现是请求/发送过程,因此当一个请求位于一个 CI 中而一个块发送位于一个 CI 中时,该过程所需的时间大约是该 CI 的两倍。

这是当我用自己的执行方式1在中央侧执行 OAD 时测量的值(~4min)。

因此、在每个请求上、我都会通过管道输出请求的块。

但是:

当我使用 BLE Device Monitor 1.2.0刷写我的固件并设置 CI 10时、它会显示 OAD 需要大约45秒... 使用与以前相同的固件-比我的计算快~ 3倍。

那么、TI 在实现方面有何差异? 计算假设的速度如何更快-我是否做了错误的事情? 是否可以在一个 CI 中包含“请求发送请求发送请求发送”?

当其他人测量 OAD 时间时,如中所示:

e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/391436

一直都是4分钟的时间…

感谢您的任何帮助。

此致

Frederik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Frederik、

    您的计算结果看起来不错-

    BLE 设备监控器实际上支持执行您提到的操作、每个连接事件发送多个块。 我认为默认值实际上是3、解释了3倍的估算速度。 您使用的是什么版本的 BLE Device Monitor?
    但是、我们现在建议将 BTool 用于 OAD、而不是 BLE Device Monitor。 您可以从 CC2640R2F SDK 获取该软件、网址为:ti.com/ble-stack

    此致、
    反叛分子
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Rebel,

    感谢您的快速回复。

    将 BLE Device Monitor v1.2.0和 Stack v1.4.2用于固件。

    2.3.0等较新版本不适合我-在选择 OAD *。bin 文件时出现"无效图像标题"错误 -它可能会对协调标头转换执行、因为2.2.0、即使我不确定区别是什么... 它不能在默认的1.4.2下工作。 堆栈 OAD 实现?!?

    Wiki 除外:使用 BLE 2.2时、SensorTag 的 OAD 方法和其他 TI 蓝牙智能示例已进行协调以使用相同的方法。 因此、无法再在 SensorTag 上对任何十六进制映像进行编程。 仅接受从地址0x1000开始并在前16个字节中包含有效 OAD 记录(元数据)的映像。 包含复位矢量和 BIM (引导映像管理器)的第0页和第31页无法再无线重新编程。

    BImage 的头16字节标头为:{0xf8 0xD 0xFF 0x01 0x00 0x00 0x90 0x42 0x42 0x42 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF}

    您能更详细地解释一下多块发送是如何完成的吗? 那么、您在请求传入之前在 CC 中央设备上缓冲3个块、以便它可以发送即时消息?

    在任何地方都有实施的代码示例(最适合 Windows -> UART -> CC -> CC)

    由于每次 OAD 性能对我们来说都很重要时、我们都必须一次更新6个 CCS ... 稍后、它甚至将扩展到 MOE MCU。

    此致

    Frederik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有新消息吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Frederik、

    抱歉!

    我通知了我们的常驻 OAD 专家、他们将回答您的问题。

    平均而言、以下是基于我当前对 BLE1.4.2的理解的响应:

    BLE-Stack 1.4.2与2.2.1中发布的最新 OAD/BIM 版本略有不同。 您提到的 wiki 代码段就是指此内容。 不再支持 baseloader 方法、仅支持 BIM 类型。 我对 BLE-Stack 1.4.2的 OAD 配置文件实施不是很熟悉、无法说明其兼容性。

    关于多块发送、根据我的理解、它只是在 init 函数中调用 HCI_EXT_OverlappedProcessingCmd 后发送多个块。

    有关 cc254x 内容的分步指南的信息、请参阅 processors.wiki.ti.com/.../CC254X_Step_By_Step

    此致、
    反叛分子