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.

[参考译文] CC2640R2F:IMAGE_VALID_CONF (和 resetVectorAddress)必须是0x80的倍数

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1491712/cc2640r2f-image_valid_conf-and-resetvectoraddress-has-to-be-multiple-of-0x80

器件型号:CC2640R2F
主题中讨论的其他器件:LAUNCHXL-CC2640R2

工具与软件:

继续回答该问题、我在使用 LAUNCHXL-CC2640R2进行开发期间也会遇到此类问题。 如果我将 IMAGE_VALID_CONF (和 resetVectorAddress)设置为0x70、器件将在刷写新映像时成功引导、但在所有后续系统复位中引导失败。 我在反汇编中进行了深入研究,发现在这个 IsAppImageValid()函数中启动过程将失败。 具体来说、行"TST.w R5、#0x7f"测试 IMAGE_VALID_CONF 寄存器的值是0x80的倍数。 否则、应用映像将被视为无效。 我想知道这项规定的目的是什么?   技术参考手册中也未对这一点做任何说明。

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

    您好、信阳、

    感谢您的咨询。 我们会尽快答复您的问题。

    BR、

    David。

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

    您好!

    感谢您联系我们! 您如何刷写器件? 您能否还提供您使用的 SDK 版本?

    我还建议查看我们的 SimpleLink Academy 培训: BLE 增强 OAD

    此致、

    Tarek

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

    尊敬的 Tarek:

    我正在使用 Code Composer Studio 中的"Run - Flash Project"按钮使器件闪烁。 我将使用的工具链版本如下所示

    CCS 20.1.0

    CC2640R2 SDK 5.30.01.11

    TI CGT ARM 20.2.7.LTS

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

    您好!

    感谢您的支持! 通过查看此 值、我发现 IMAGE_VALID_CONF 寄存器的值必须为0x00000000、以便使引导序列能够将控制权转移到闪存映像。 我附上了 技术参考手册中该部分的屏幕截图 、确认了这一点。 我还提供了该手册的链接。

    我希望这对您有所帮助!

    此致、

    Tarek

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

    尊敬的 Tarek:

    感谢您的答复。

    在您附加的屏幕截图中、它还显示"对于 CC2640R2:此字段必须包含闪存矢量表的起始地址值、以便使引导序列可以将控制传输到闪存映像。" 您可以参考 blestack 下的 secure_fw 示例。

    为了更清楚一些事项、

    1. 上面提到的 IsAppImageValid()函数是 TI 在 ROM 中提供的启动代码的一部分。

    我链接的原始问题提到、IMAGE_VALID_CONF 需要是0x100的倍数才能使器件引导至应用程序映像、从而验证了我的结果、因为0x100 = 2 * 0x80。 TI 未回答该问题。 基本上、我再次提出了这个问题、希望能够从 TI 工程师那里获得答案。

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

    您好!

    我为误解道歉! 是的、您的确正确、IMAGE_VALID_CONF 应该是0x80的倍数。 这也是另一个验证您的调查结果的 E2E 主题: https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/804533/cc2640r2f-follow-up-of-cc2640r2f-shall-the-image_valid_conf-value-be-used-to-start-an-application-at-an-address-different-from-0x0

    我认为这只是为了调整。

    此致、

    Tarek

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

    你好、Tarek。

    您链接的 E2E 主题与我上面链接的主题相同。  

    原始问题:

    CC2640R2F:后继:CC2640R2F:是否应使用 IMAGE_VALID_CONF 值以不同的地址启动应用程序...

    您能否详细说明这提供了哪种对齐?为什么? 最好在技术参考手册中记录这一要求。

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

    您好、信阳、

    我很抱歉所有的困惑和误解! 在与硬件团队交谈后、我们意识到这是在设计过程中做出的决定。 为了适应矢量表的大小、并使用一些填充、以具有一个诸如0x80的舍入数。 我假设 ARM 文档也会讨论此决定。 我希望这能解答您的问题!

    此致、

    Tarek

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

    尊敬的 Tarek:

    我在 Cortex M3 文档中 查找并确实找到了此要求。 感谢您指出这一点。