Thread 中讨论的其他部件:、 CC2540、 CC2650
我正在尝试使用 CC2640实现片上 OAD。 我遵循了 cc2640 BLE OAD 用户指南、当我将 SimpleBLEPeripheral 图像添加到 BLE Device Monitor 时、我收到一条消息"在图像中找不到有效的 OAD 标头。 使用生成的标头"。
当我 对项目不做任何更改时、为什么会获得此结果?
谢谢
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。 我遵循了 cc2640 BLE OAD 用户指南、当我将 SimpleBLEPeripheral 图像添加到 BLE Device Monitor 时、我收到一条消息"在图像中找不到有效的 OAD 标头。 使用生成的标头"。
当我 对项目不做任何更改时、为什么会获得此结果?
谢谢
您好、Mario、
这是我对项目应用的差异。 (它们与我之前列出的相同)
我使用的是较新的 IAR 版本、但这不应该是一个大问题。
尊敬的 A. Rebel:
我也按照您的方法操作、并且能够在 cc2640上运行 OAD 目标(img_a)时执行 OAD。 我使用失效服务使 img_B 和 img_A 开始运行。
当 img_B 通过 OAD 下载并在 cc2640上运行时。 我尝试通过 OAD 下载 IMG_B 的新版本。 通过 OAD 未成功完成。
在 cc2640上运行 img_B 时、您是否尝试使用 BTool 通过 OAD 下载 IMG_B 的新版本?
或者、当 IMAGE_B 在 cc2640上运行时、是否无法执行更新?
正在等待您的回复。
此致
您好、Mario、
我无法使您的 image_b 正常工作、正如您所怀疑的、我相信这是由复位矢量造成的。 这可能是由于预编译(配置)配置不正确所致
为了确保至少有一个正常工作的构建、下面是一个您可以应用于全新2.2.1 SDK 的补丁、该补丁应用所有修复+更改 OAD 指南中引用的批处理文件、以使用 OAD 映像工具而不是 intelhex 工具。 我还将在这里提供快速说明
补丁: e2e.ti.com/.../onchip_2D00_OAD_2D00_2.2.1_2D00_patch.zip
在现有的2.2.1 SDK 安装上应用补丁。
如何使用:
1.构建$BLE_INSTALL$\examples\cc2650lp\oad_target\IAR 中的 OAD 目标应用、从 Stack Project 开始
2.通过运行$BLE_INSTALL$\examples\cc2650lp\oad_target\IAR\app 中的 merge.bat 来创建统一的十六进制文件
3.使用 闪存编程器2在$BLE_INSTALL$\examples\cc2650lp\oad_target\IAR\app 中刷新 oad_target_cc2650lp_unified.hex
4.通过打开 simple_peripheral 示例项目并选择 FlashOnly" OAD_ImgB 来构建映像 B,仅用于应用项目
5.通过运行 $BLE_INSTALL$\examples\cc2650lp\simple_peripheral_IAR\app 中的 onchip_img_b.bat 来创建 OAD 二进制文件
6.使用 BTool 到 OAD simple_peripheral_cc2650lp_img_b.bin 到 OAD 目标(使用 OAD_TARGET_cc2650lp_unified.hex 刷写的 LP)
此致、
反叛分子
你好,Rebel,
运行 merge.bat 会导致我出错。
它说:
无法加载模块'crcmod'。 请安装软件包。 PIP [-proxy ]安装 crcmod
已创建 app\oad_target_cc2650lp_unified.hex
按任意键继续。 。 。
为什么我错过了该模块?
我打开了我的旧"merge.bat"、并注意到 Python 路径部分不同:
这是我的旧 merge.bat:
"C:\Python27\python ""C:\Python27\Scripts\hexmerge.py"-o "%dest_path%\%full_IMG%"-r "%BIM_start%:%BIM_end%""-overlifer=error""%app_path%\%app_IMG%%:%BIM_start%":%BIM_stack_start%":%BIM_stack_start%_stackn%":%&IM_stack:%_stack_start%&m%&m%&m%&m%&m%&m%&m%&m%&m%&m%&m%&m%&m%&m%&m
回波已创建%dest_path%\%full_IMG%
以下是您的 merge.bat:
"C:\Python27\python ""%dest_path%\oad_image_tool.py"-o "%dest_path%\%full_IMG%""%app_path%\%app_IMG%""%stack_path%\%stack_IMG%""%BIM_path%\bim.hex"-t aaa -0rm -r600 -raaa 芯片-raA -r0rm
回波已创建%dest_path%\%full_IMG%
因此、我将调用 hexmerge.py、您将调用 oad_image_tool.py。 但您的失败是因为我缺少一个模块。 我不知道如何获取此模块。 我尝试了几种不同的东西、但都不起作用。
以前见过这种情况吗?
谢谢、
Mario
您好、Mario、
您需要安装 pip (python 软件包管理器)缺少的 python 模块以消除错误(在本例中为 crcmod mod)。
也许、不要通过 python 运行 python 脚本、而是使用可执行文件(已经集成了所有必要的库)。 您必须修改批处理脚本才能调用可执行文件。
我将在下面附加可执行文件、并重命名。 (您也可以从最新的 SDK 中获取)
我还将很快更新补丁、以使用可执行文件而不是 python 脚本(因此其他人不会遇到相同的问题)
此致、
反叛分子