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.

[参考译文] RTOS/CC2640R2F:需要有关如何写入 CCFG 的示例

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/638640/rtos-cc2640r2f-need-example-of-how-to-write-to-the-ccfg

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

工具/软件:TI-RTOS

我想更改 CCFG 中的 BL_CONFIG 寄存器值。 我了解要更改的值、偏移等、我在 swcu117h.pdf 第9.1.1.13节中看到了这一点。 但是、我如何将这些值实际写入闪存寄存器? 我找不到有关如何将这些值实际白光到 CCFG 的任何示例。 是否有人可以向我提供一个代码片段来说明它们是如何编写的?

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

    可以在 ccfg.c 中修改这些值、也可以在 BLE 示例应用(应用项目)的 app_ble_ccfg.c 文件中设置覆盖项。

    当您说"更改 BL_CONFIG 寄存器值"时、您能更具体吗? 您是在运行时还是在闪存映像时尝试将1s 更改为0s?

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

    我想刷写图像、以便在复位期间将某个引脚设置为高电平时、它进入 BL 后门。 现在、我看到我需要使这些#defines。 这就是我在 ccfg.c 文件中添加到 pinInterrupt 版本的内容:

    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5 //启用 ROM 引导加载程序
    #define SET_CCFG_BL_CONFIG_BL_LEVEL 0x1 //低电平有效以打开引导加载程序后门
    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 13 //(DI13)引导加载程序后门的 DIO 编号
    #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5 //启用引导加载程序后门

    我使用的是 LAUNCHXL-CC2640R2开发板。  我在云中使用 CCS。

    现在、我希望如果我按下 DI13 (板上的按钮之一)、程序将不会启动、而是进入引导加载程序。 这种情况并非如此、无论 DI13在我复位时是否按下、程序仍会启动、演示工作正常。

    我在这里缺少什么吗? 这是否应根据 DI13的状态进入引导加载程序? 或者、我还需要做些什么来实现这一点吗?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍在尝试让器件进入后门模式、以便可以通过 UART 对其执行" ping "操作。 我已修改 pinInterrupt 示例 ccfg.c 以包括上一帖子中列出的#defines。

    在这些定义到位的情况下、我认为如果我在复位 CC2640R2 Launchpad 电路板时按下 CC2640R2 Launchpad 电路板上的 DI13按钮、pinInterrupt 程序不应启动、而应进入引导加载程序模式。 在我的情况下、无论 DI13引脚在上电期间处于何种状态、引脚中断程序始终运行。

    我的回答是否正确? 我是否需要这样做才能在引导加载程序中启动它? 或者、是否还有其他我缺少的详细信息?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我弄清楚了为什么我无法使器件进入引导加载程序模式。 希望此帖子能帮助他人。 这实际上是应该在文档中指出的。

    启用引导加载程序后门功能的4个设置必须在项目中 ccfg.c 文件中的"#include DEVICE_family_path (startup_files/ccfg.c)"行之前声明。 这是因为这些也是在 simplelink_*/ccfg.c 文件中定义的。 如果您在 simplelink 版本之前的文件中定义它、您的将优先。 现在很容易看到、但不是很容易找到。

    这里是我的整个 ccfg.c 文件。 如果在按下 RESET 时按下 LAUNCHXL-CC2640R2板上的 DI013按钮、应用程序将不会启动、它将进入引导加载程序模式。

    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE     0xC5   //启用 ROM 引导加载程序

    #define SET_CCFG_BL_CONFIG_BL_LEVEL          0x0     //低电平有效以打开引导装载程序后门

    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER       13   //引导加载程序后门的 DIO 编号

    #define SET_CCFG_BL_CONFIG_BL_ENABLE         0xC5   //启用引导加载程序后门

    #ifdef device_family

      undef device_family_path

      #define DEVICE_family_path (cc26x0r2)

      #include device_ffamily_path (startup_files/ccfg.c)

    其他

      错误"您必须在项目级别将 DEVICE_family 定义为 cc26x0、cc26x0r2、cc13x0等的其中一个。"

    #endif

x 出现错误。请重试或与管理员联系。