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.

[参考译文] CC2640:OAD 什么也不做(SDK v2.1.1)

Guru**** 2577385 points
Other Parts Discussed in Thread: CC2640, CC2540EMK-USB

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/564677/cc2640-oad-do-nothing-sdk-v2-1-1

器件型号:CC2640
主题中讨论的其他器件: CC2540EMK-USB

您好!

首先,一些背景:

去年、我开发了一个由 CC2640和一些用于 H.R 测量的传感器供电的定制板。 目前、最新的 SDK 为2.1.1、因此我使用了 HeartRate exemple 并添加了 MAX30100实现。 我的固件运行良好。

现在、我需要在固件中实现 OAD 功能、因此我阅读了 SDK (2.1.1)中的几次 BLE OAD 用户指南。 我在片外 OAD 中执行了每一步、我遇到了两个"错误"、在反复在 Web 和 RTFM 上搜索后、我感到有点困惑:

第一个错误:

我成功安装了 python 2.7和 IntelHex 脚本、在"step"选项卡下添加了命令行、并且可以在用户指南中生成 super_image_full.hex (BIM+App+Stack)-参考8.3。

但是、当我尝试使用闪存编程器2 (1.6.2)对电路板进行编程时、我在验证过程中遇到错误(错误页4)。

借助 BLE 器件监控器(2.3.0)、CC2540EMK-USB 编程为"主机"程序、不进行任何扫描。

第二个错误:

为了避免被阻止、我尝试了一种新的方法。 使用 CCS,我对板进行3次编程:BIM 首先入栈,然后应用程序完成。

在 BLE 器件监控器上、我成功找到了我的定制板、并且可以连接到它们。

我可以看到 OAD 服务:

0x48 72. 0x2800 GATT 主服务声明 F000FFC0-0451-4000-B000-000000000000 R OAD 服务
0x49 73. 0x2803. GATT 特征声明 1C:4A:00:00:00:00:00:00:00:00:B0:00:40:51:04:C1:FF:00:F0 R OAD 映像识别
0x4A 74. 0xFFC1 OAD 映像识别 WN 写入"0"以识别图像类型"A"、写入"1"以识别"B"。 标注中的数据8字节:图像类型(2)、大小/4 (2)、用户数据(4)。
0x4B 75 0x2902 客户端特征配置 RW 写入"01:00"以启用通知、写入"00:00"以禁用通知
0x4C 76. 0x2901 特性用户描述 R
0x4D 77 0x2803. GATT 特征声明 1C:4E:00:00:00:00:00:00:00:B0:00:40:51:04:C2:FF:00:F0 R OAD 映像块
0x4E 78 0xFFC2 OAD 映像块 WN 映像块(18字节)。 块编号 (2字节)、OAD 映像块(16字节)
0x4F 79 0x2902 客户端特征配置 RW 写入"01:00"以启用通知、写入"00:00"以禁用通知
0x50 80 0x2901 特性用户描述 R
0x51 81. 0x2803. GATT 特征声明 0C:52:00:00:00:00:00:00:00:B0:00:40:51:04:C3:FF:00:F0 R OAD 映像计数
0x52 82. 0xFFC3 OAD 映像计数 W 预期下载的图像数量(1字节)
0x53 83. 0x2901 特性用户描述 R

当我尝试编程时,我选择 OADApp.hex,配置1 Blk/conn,单击“开始...”,不执行任何操作:

12:30:40.838 > OAD 已启动

12:30:40.854 > WriteRsp[FFC1]:ST=0 n=0

等待5分钟、但仍然没有。

我真的不知道发生了什么。 有人有线索?

此致

MRabla

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

    如果您使用闪存编程器2将3个映像中的每个映像单独闪存到目标器件、您仍然会遇到错误吗?

    您在 BLE Device Monitor 中使用了哪些连接间隔和监控超时值?

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

    我在多模式下试用了 Flash Programmer 2:
    同一错误:"验证失败,地址0x000049A4 (第4页)。 预期为0x80、读取为0x00。"

    单独:
    BIM:好的
    STACK:错误:“验证失败,地址0x000119A4 (第17页)。 预期为0xA0、读取为0x00 。»
    APP:错误:“验证失败,地址0x000049B4 (在第4页)。 预期为0x51、读取为0x00。"
    我不明白为什么我遇到了闪存编程器错误、但 CCS 没有错误。

    BLE 设备监视器的配置为:
    最小连接间隔:6.
    最大连接间隔:6.
    从机延迟:0
    监督超时:50

    和1个 Blk/conn。

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

    请在刷写映像之前尝试使用闪存编程器2执行批量擦除。 如果它仍然不能用于单个图像、则您可能没有正确设置 OAD 项目。

    对于 BLE 器件监控器的问题、我建议您使用20ms 的最小和最大连接间隔、但您的问题可能与您的第一个问题有关。

    -弥敦