主题中讨论的其他器件: 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