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.

[参考译文] LAUNCHXL-CC1352R1:OAD 示例、CAN#39;t 使其正常工作

Guru**** 2538930 points
Other Parts Discussed in Thread: UNIFLASH, CC2652RSIP, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/996453/launchxl-cc1352r1-oad-example-can-t-get-it-working

器件型号:LAUNCHXL-CC1352R1
主题中讨论的其他器件:UNIFLASHCC2652RSIPSysConfig

无法找到有关如何开始使用的详细说明、

这种情况:

http://software-dl.ti.com/simplelink/esd/simplelink_cc13x2_26x2_sdk/5.10.00.48/exports/docs/thread/html/thread-oad/native-oad.html

信息量很大、但不会说"如何"开始..

我所做的:

-打开门锁安全示例(GCC)。

-构建

-启动调试器

由于没有"发生"、我在串行端口上也没有看到任何内容、我更改了 LED 初始化并单步执行。

在 BIOS_start()之后,它们打开,但进一步步进。 它以某种方式"崩溃"

那么、通过 CCS 对其进行"闪存"是对的吗?

或者我们是否需要以某种方式刷写_oad.bin?

我不知道... 希望为我的所有项目/器件启用 OAD!!

通常我会使用 CC2652,但出于测试目的,我目前只使用 cc1352 Launchpad:)

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

    您好!

    在 Uniflash 中、尝试同时刷写 BIM 和 OAD 应用程序库:

    • BIM:BIM_offchip_CC1352R1_LAUNCHXL_nortos_ccs.hex
      • 此处投影: C:\ti\simplelink_cc13x2_26x2_sdk_5_10_00_48_s\examples\nortos\CC1352R1_LAUNCHXL_bim\bim_offchip
    • OAD 应用程序库:doorlock_oad_secure_CC1352R1_LAUNCHXL_tirtos_gcc_oad.bin

    这些可能也会有所帮助:

    谢谢、
    Toby

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

    谢谢 Toby!

    稍后使用 CC2652 Launchpad 进行了多次 OAD 更新。

    完成初始设置后、只需尝试使用"AppType"/"imgId"更改为自定义字符串即可。 与示例中的平台类型不同..

    需要修改 ttoad-server 以使用此属性而不是仅使用平台类型。 注册设备并读取固件文件。 工作正常、但此后无法使任何更新继续工作、原因是 BIM 未使用我修改的 imgId 字符串。

    因此、我需要修改 BIM 和示例应用程序、以使用我的自定义 imgId 字符串? 然后使用 Uniflash 进行闪存?

    或者、我是否需要以某种方式将其嵌入到示例应用中、例如 bim_debug_img.c/.h。

    如果是、是否有逐步指导构建并包含此内容?

    谢谢!!

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

    感谢您的确认!

    是的、BIM 应在启用 OAD 的器件中保持持久性(请参阅 imgIDCheck 使用 const uint8_t OAD_IMG_ID[OAD_IMG_ID_LEN]= OAD_IMG_ID_VAL;)

    启用 OAD 的项目和 BIM 都为 OAD_IMG_ID_VAL 共享相同的值。

    1.是否要将其更改为自定义字符串一次,设备将始终使用该自定义字符串进行映像验证?
    2.或者您是否正在寻找一种动态使用不同 imgId 值的方法?

    如果它为1。 ,则最简单的方法是在工厂编程期间同步 OAD_IMG_ID_VAL。

    如果为2、则可能会对 BIM 和应用程序映像进行一些更改。 例如在闪存中具有 OAD_IMG_ID 的段。 可以根据用例更改此区域。

    在这两种情况下、BIM 和应用程序之间必须存在"共享"的内容。 类似如下:

    -一个已知的共享值(就像我们当前使用常量 OAD_IMG_ID_VAL 的值)

    -已知的共享闪存地址位置(包含用于映像验证的自定义字符串)

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

    1)我想。

    我将为每个“设备类型”提供一个常量字符串。

    因此、我需要为每个器件使用一个带有另一个字符串的"BIM"。 但这很好! 尝试一下

    我不确定回退情况。 当前有此嵌入式映像(使用旧的"imgID")..

    您是否有更多信息介绍如何生成该信息? 可能会自动? 我找到的唯一注释位于源文件本身中。

    谢谢 Toby!

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

    是的,这是正确的--使用当前实施,每个自定义 imgID 验证字符串都需要单独的 BIM。

    [引用 userid="443300" URL"~/support/wireless-connectivity/zigbee-and-thread/f/zigbee-thread-forum/996453/launchxl-cc1352r1-oad-example-can-t-get-it-working/3687361 #3687361"]

    我不确定回退情况。 当前有此嵌入式映像(使用旧的"imgID")..

    您是否有更多信息介绍如何生成该信息? 可能会自动? 我找到的唯一注释位于源文件本身中。

    [/报价]

    很抱歉,我没有完全理解这点--你能澄清一下你在这里的意思吗?

    OAD_IMAGE_TOOL 脚本将转换十六进制文件(使用 imgID 字符串构建)。 然后、生成的.bin 文件可以无线发送到需要该 imgID 字符串的器件。

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

    我对这里的这两个文件有点困惑:

    BIM_OAD_DEBUG_..... C/h

    这些是什么?

    为什么以及何时需要它们?

    对我来说、哪些不是很清楚... "回退映像"如何工作?

    但回退映像是什么?

    从“出厂映像”开始.. 外部闪存为空?

    OAD 更新:EXT-FLASH 包含新映像

    BIM 闪存新映像:EXT-FLASH 和 INT-FLASH 现在相同?

    还是像... 正在检查外部闪存... 无效.. 好的、只需坚持使用以前使用的内部版本? =)

    到目前为止,非常感谢!!

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

    另一个开放式问题、对我们来说非常重要:

    如何使用 BIM 和应用生成能够通过串行引导加载程序"刷写"的映像?

    原因并非所有产品都具有可轻松连接的 JTAG 接口。 )

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="443300" URL"~/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/996453/launchxl-cc1352r1-oad-example-can-t-get-it-working/3691518 #3691518"]如何使用 BIM 和应用程序生成能够通过串行引导加载程序"刷写"的映像?[/quot]

    这里有一些有关 BIM.HEX 和 app.bin 的说明、用于生成可与串行引导加载程序一同使用的.hex:

    https://dev.ti.com/tirex/explore/node?node=AIixxGE2y6tnPJ7cm65SFQ__pTTHBmu__LATEST

    这可与 https://www.ti.com/lit/pdf/swra466第4节中描述的工具结合使用 。

    我主要使用的是 LaunchPad,所以也许我认为 JTAG 存在是理所当然的--我将采取一个行动项目,在一个容易找到的地方(例如,Thread 用户指南中的 OAD 部分)找到一个很好的记录方法。

    [引用 userid="443300" URL"~/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/996453/launchxl-cc1352r1-oad-example-can-t-get-it-working/3690384 #3690384"]

    BIM_OAD_DEBUG_..... C/h

    这些是什么?

    为什么以及何时需要它们?

    [/报价]

    最初的目标是提供一种简单的方法来调试一个启用了 OAD 的项目、而无需担心 BIM。

    阵列 bim_oad_debug_image_bin 实际上是一个构建 BIM 的副本、它只需跳转到应用程序映像(无任何检查或任何检查)。

    一旦该工程准备好生产、您可以将其从工程中排除、因为将加载另一个实际 BIM.HEX。

    [引用 userid="443300" URL"~/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/996453/launchxl-cc1352r1-oad-example-can-t-get-it-working/3690384 #3690384"]

    对我来说、哪些不是很清楚... "回退映像"如何工作?

    但回退映像是什么?

    从“出厂映像”开始.. 外部闪存为空?

    OAD 更新:EXT-FLASH 包含新映像

    BIM 闪存新映像:EXT-FLASH 和 INT-FLASH 现在相同?

    还是像... 正在检查外部闪存... 无效.. 好的、只需坚持使用以前使用的内部版本? =)

    [/报价]

    理解----感谢澄清。

    这在函数 BIM_checkImages()中的 BIM 项目中处理。

    总之:

    1. 检查外部闪存中是否存在有效映像。 如果没有、请执行下一步。 如果是:
      1. 元数据表示信息、例如、此图像之前是否加载过。
      2. 如果这是第一次将此映像加载到内部闪存中、则我们将写入元数据、该映像加载到内部闪存中。
      3. 仅当之前未加载映像时才将其加载到内部闪存。
    2. 检查内部闪存中是否有有效的映像--如果是,跳转至该映像并运行。 如果没有、请执行下一步。
    3. 检查是否存在有效的工厂映像(使用元数据、例如 EFL_ADDR_meta_FACT_IMG)。 如果是、请跳转至该图像并运行。 如果没有、请执行下一步。
    4. 未找到应用程序映像、指示 LED 错误(红色亮起)、然后旋转。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    最后一点、我想知道现在(尚未测试)。 我阅读了有关 CCFG 的内容、该内容被移至"正常"之外的另一个闪存部分。 这对串行引导加载程序有何影响? 使用它的方法。。。 使能和 DIO?! )

    除此之外-太棒了、现在所有的东西都放在一起了。 最后要检查的是串行引导加载程序。 我准备好了! 太棒了、非常感谢您的帮助!

    未查看 BLE 文档、感谢您提供链接!

    已删除这些调试 bim 文件

    总之、它非常棒! 当然、这里没有文档。 但它仍然是"beta"、对吧? =)

    在一切正常工作并在我的办公桌上进行了三次以上的测试之后,我将尝试通过这一方式发布我的“方式”;)

    希望这也能帮助其他人。

    必须接触多个部件...

    ttoad 服务器(支持 CC2652RSIP、支持自定义 IMG_ID、..)

    BIM (添加了新的闪存类型+ IMG_ID)

    可能是另一个操作项目:IMG_ID 之类的信息应该在项目中定义、而不是像在共享文件中定义。 或者只需将整个项目复制到新创建的项目目录。

    花了几个小时搜索奇怪的行为、后来想知道为什么 会有另一个 IMG_ID strin g、然后是预期的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="443300" URL"~/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/996453/launchxl-cc1352r1-oad-example-can-t-get-it-working/3693420 #3693420">最后一件事、我想知道、我现在还在想(尚未经过测试)。 我阅读了有关 CCFG 的内容、该内容被移至"正常"之外的另一个闪存部分。 这对串行引导加载程序有何影响? 使用它的方法。。。 使能和 DIO?! :)[/报价]

    CCFG 应该位于最后一个闪存页面中。

    差异如下:

    对于 OAD 项目、CCFG 位于 BIM 项目( /Application/ccfg_app.c)。
    对于非 OAD 项目、CCFG 位于由 syscfg 生成的文件( /generated Source/sysconfig/ti_devices_config.c)。

    在任一种情况下、都将使用相应 CCFG 中的引导加载程序设置。

    感谢您在此处提供的其他反馈!