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.

[参考译文] CC2340R5:can'下载 Zigbee "ON_OFF_SWITCH"示例代码后、从 UniFlash 擦除 CC2340R5 芯片

Guru**** 2374090 points
Other Parts Discussed in Thread: CC2340R5, SEGGER, UNIFLASH, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1530090/cc2340r5-can-t-erase-cc2340r5-chip-from-uniflash-after-downloading-the-zigbee-on_off_switch-example-code

器件型号:CC2340R5
主题中讨论的其他器件: SEGGERUNIFLASHSYSCONFIG

工具/软件:

我正在使用自己的开发板 CC2340R5 来开发基于 ZIGBEE 的智能开关。 我仍在尝试通过示例代码了解 ZigBee 协议的工作原理。 我成功地将示例代码“on_off_switch"下载“下载到目标上。 但是、我刚刚从系统配置中启用了“日志记录“选项、以查看通过 UART 发送的日志是什么。 我尝试下载新的代码,但我总是得到这个令人厌恶的错误:

Trouble Writing Memory Block at 0x4e020000 on Page 0 of Length 0x800: Flash download failed! ...
File Loader: Verification failed: Target failed to write 0x4E020000
GEL: File: C:\Users\User\AppData\Local\Temp\ti_cloud_storage\onoff_switch_ED_2.out: Load failed.

我使用的是 Code Composer Studio 20.0.1、并将 Segger J-Jlink 用作我的主调试器。  

我尝试通过 UniFlash 下载代码、但收到相同的错误:

我决定擦除芯片内存、但出于某种原因、没有相应的选项:

更新:它可以下载简单的示例代码应用程序、如“gpiointerrupt"等等“等等。  

问题出在 Zigbee 示例代码上。 我怀疑新的“impleLink Low F3 SDK“ v9.10、因为我以前使用 v8.40、它工作得像一个魅力。

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

    尊敬的 Abdelrahman:

    0x4E020000 是 CCFG 区域。  Zigbee 工程的编译后处理步骤应将 CRC 从 CCS 内应用到 CCFG。  如果您想将 CCFG 保留为默认值、则可以在没有它的情况下构建十六进制映像(包含 tiarmobjcopy 与--removed-section=.ccfg)  、或者在编程之前手动删除该段。  但是、这不是解决当前问题的方法。  请说明以下情况:

    • 确认如果您将 Zigbee 工程保留为默认设置、即不添加 SysConfig 日志记录、器件编程是否按预期进行?
    • 您使用的是哪个版本的 Uniflash?  加载简单的示例代码应用(即 gpiointerrupt)后、您是否能够擦除芯片存储器?
    • CC2340R5 器件版本是多少(可以从 Uniflash 设置和实用程序中读出)?
    • 是否能够在连接 XDS110 调试器的情况下进行测试?

    此致、
    Ryan

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

    “是的,我已经把一切都留了下来,它仍然不想编程。 我真的怀疑它有一些与  v9.10 的 “impleLink Low F3 SDK“ ,因为我能够成功地使用 v8.40 之前编程.

    -我已经尝试了联机 Uniflash 和本地版本 9.0.0.5086 ,它给出了相同的错误。 否、加载简单的示例代码应用后无法擦除芯片存储器  

    - Uniflash 设置和实用程序不显示帖子中显示的任何内容、但是、这是我从 CC2340R52E0RKPR 购买的分销商提到的确切型号

    -不幸的是,我 现在没有权限访问 XDS110 调试器。

    我会将 SDK 降级到 v8.40 再试一次、看看会发生什么情况

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

    我 现在非常确定它与 SDK v9.10 有关系。

    我 有一个通过 SDK v8.40 创建的旧“on_off_switch"Zigbee 工程“ 工程、该工程可以成功下载到目标。  

    我尽量使用较旧的 SDK 版本创建一个新工程、但 IDK 它会不断为较新的 SDK v9.10 生成示例代码。 我更改了工程属性中的 SDK 版本、但肯定会收到错误消息“wakeSem"符号“符号未定义(链接器错误)。 由于示例代码发生了更改、因此不要进行编译是有意义的。

    现在我遇到了一个较新版本的 SDK 无法将代码下载到目标、也无法使用较旧的 SDK 版本的问题。

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

    更新:

    我创建了一个新项目、该项目是通过 SimpleLink F3 SDK v9.10 创建的、但它没有闪存、如原始文章中所示。

    我使用 v8.40 SDK 版本中的代码示例进行了更改、但 没有将其刷写到目标中(得到了相同的错误)

    我将 SDK 从工程属性更改回 v8.40、并成功刷写了。   

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

    更新 2:可成功刷写 TI-RTOS 版本的 ZigBee 基础示例、但 RTOS 版本未刷写。 仍然在尝试理解原因

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

    您能否尝试在 v8.40 和 v9.10 之间切换以下内容、以了解其中任何一项是否会改变行为?

    • lpf3_zigbee freertos.cmd(命令链接器文件)
    • TI Clang 编译器(工程属性->常规设置)

    此致、
    Ryan