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:是否可以使用外部文件设置器件信息?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1477519/cc2340r5-is-there-a-way-to-set-device-info-using-external-file

器件型号:CC2340R5

工具与软件:

您好!

我将使用 Jenkins 生成发布固件、我希望为每个构建提供一个特殊版本。

目前、我使用 const 字符串编写固件版本、并在 app_dev_info.c -> DevInfo_start 函数中设置它、如下所示。

DevInfo_SetParameter (DevInfo_firmware_REV、strlen (firmware_ver)、(void *) firm_ver);

我的目标是 使用 Jenkins 将固件版本写入文件 version.txt、然后构建蓝牙固件、 从 version.txt 读取版本、并将其设置为蓝牙设备信息。  

是否可以将外部文件编译到应用程序中、然后我可以使用值设置固件版本?

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

    您好 Xuefeng:

    感谢您的咨询。 我正在考虑使用编译后处理步骤来修改输出二进制文件、并使用与 imgtool 类似的方法。 您能否介绍一下 imgtool (Inside SDK:\tools\common\mcuboot)在 OAD 示例中用于 OAD 映像创建的方式? (SDK 内部:\examples\rtos\LP_EM_CC2340R53\ble5stack\basic_ble_oad_dual_image)。

    BR、

    David。

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

    尊敬的 David:

    这可以更改固件的标题、但器件信息固件版本不会更改。 下面是一张图片、我需要标记的服务更改作为标题、如果标题更改为 V2、 "固件版本"也应该为 V2。

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

    您好 Xuefeng:

    如您所述、标头会被修改、而此信息将由 MCUBoot 读取。 同样、应用可以从闪存读取信息并修改固件版本字符串。

    请告诉我您的想法。

    BR、

    David。

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

    尊敬的 David:

    [报价用户 id="575559" url="~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1477519/cc2340r5-is-there-a-way-to-set-device-info-using-external-file "]

    我的目标是 使用 Jenkins 将固件版本写入文件 version.txt、然后构建蓝牙固件、 从 version.txt 读取版本、并将其设置为蓝牙设备信息。  

    [报价]

    我的意思是、我应该 一次修改就填充标头版本和固件版本字符串、我会在文件中写入版本信息、我需要标头和固件版本都读取版本文件才能获取版本。  

    使用命令编译时、如何读取和填充这两个部分?

    BR

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

    尊敬的 David:

    [报价 userid="575772" url="~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1477519/cc2340r5-is-there-a-way-to-set-device-info-using-external-file/5680372 #5680372"]您的应用程序可以用同样的方法从闪存读取信息并修改固件版本字符串。[/QUOT]

    如何阅读我修改的标题?

    我的项目使用了 mcuboot、persistent 应用和片上 OAD-on-chip 应用。 我需要读取片上 OAD-on-chip 应用中的标题。

    BR

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

    您好 Xuefeng:

    感谢您的咨询。 我建议看看 OAD 示例、例如 basic_ble_oad_dual_image。 您可以首先查看定义了主 OAD 状态机(oadStateMachine)的 oad_profile.c 文件。 启动新的 OAD 进程(状态为 oadEventHandleStateIdle)时、程序必须验证头(使用 oadImgIdentifyWrite ()函数)。 运行此验证的主函数是 Update_Check 3052Header ()(在 sw_update.c 文件中),您可以在其中查看标题值的读取方式。 在这种情况下、您甚至可以在写入闪存之前获取信息。

    BR、

    David。

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

    谢谢 David。

    我尝试了关注 mcuboot context_boot_go 函数、但遇到了一些错误。

    我会尝试你的建议。

    BR