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.

[参考译文] CC1310:代码仅在调试中运行

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1124682/cc1310-code-only-running-in-debug

器件型号:CC1310

我开发了一个定制板、将 CC1310F128RGZ 和 CC1312用作调试器和编程器。 我正在使用"empty"项目执行一些初始测试、但我遇到了一个问题、即代码似乎仅在调试模式下运行、并通过具有断点的代码手动步进(F6)。 如果我移除断点并继续调试、代码将不会运行。 即使退出调试、代码看起来也不会运行。
我已将 LF XTAL 设置为#define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x3// LF RCOSC、这似乎不能解决问题。  

此外、我的定制电路板还参考 C1310 LP 原理图和 PCB 设计指南进行构建。 下面是定制板的原理图

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

    您好、Corey、

    您能更详细地解释一下您的设置吗? 当您说使用"CC1312作为调试器和编程器"时、您是指 CC1312 Launchpad 上的 XDS110 (https://www.ti.com/tool/LAUNCHXL-CC1312R1)?)

    您能否解释一下您在说代码未运行时观察到的情况? 如果您恢复 CPU 并稍后停止 CPU、它是否会在恢复 CPU 的位置停止?

    谢谢、
    尼古拉伊

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

    是的、很抱歉缺少详细信息。 我在  CC1312 Launchpad 上使用 XDS110 (断开所有 跳线 P4的连接) 并使用 JTAG  

    我的示例代码是打开和关闭 DIO_24、这会导致 LED 闪烁。 我已经执行 了一些额外的测试并更改了一些设置(将 CCS 目标配置 JTAG/SDW/cJTAG 模式从2引脚更改为4引脚标准)、现在代码 将运行(闪烁 LED)、同时进行调试、如果我只加载程序、现在也将运行(闪烁 LED)。 但是、如果我切断电源并 重新为目标板供电、代码将不会运行(闪烁 LED)。 因此、似乎我获得了更好的结果、但代码在下电上电后似乎不会运行(闪烁 LED)。 下面是代码。 我还包含了被引用的 ccfg.c 文件 (默认)  

    示例代码

    /*
     * Copyright (c) 2015-2019, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    /*
     *  ======== empty.c ========
     */
    
    /* For usleep() */
    #include <unistd.h>
    #include <stdint.h>
    #include <stddef.h>
    
    /* Driver Header files */
    #include <ti/drivers/GPIO.h>
    // #include <ti/drivers/I2C.h>
    // #include <ti/drivers/SPI.h>
    // #include <ti/drivers/UART.h>
    // #include <ti/drivers/Watchdog.h>
    
    /* Board Header file */
    #include "Board.h"
    #include <ti/drivers/PIN.h>
    
    /* Pin driver handles */
    
    static PIN_Handle ledPinHandle;
    
    /* Global memory storage for a PIN_Config table */
    static PIN_State buttonPinState;
    static PIN_State ledPinState;
    
    #define RLED IOID_24
    #define EN_A IOID_19
    #define PWM_A IOID_18
    #define EN_B IOID_20
    #define PWM_B IOID_21
    
    /*
     * Initial LED pin configuration table
     *   - LEDs Board_PIN_LED0 is on.
     *   - LEDs Board_PIN_LED1 is off.
     */
    PIN_Config ledPinTable[] = {
        RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    
        EN_A | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        PWM_A | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        EN_B | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        PWM_B | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    
        PIN_TERMINATE
    };
    
    /*
     *  ======== mainThread ========
     */
    void *mainThread(void *arg0)
    {
        /* 1 second delay */
        uint32_t time = 1;
    
        ledPinHandle = PIN_open(&ledPinState, ledPinTable);
        if(!ledPinHandle) {
            /* Error initializing board LED pins */
            while(1);
        }
    
        /* Turn off user LED */
    
        PIN_setOutputValue(ledPinHandle, RLED, 0);
    
    
    
        while (1) {
            PIN_setOutputValue(ledPinHandle, RLED, 0);
    
            sleep(time);
    
           PIN_setOutputValue(ledPinHandle, RLED, 1);
    
            sleep(time);
        }
    }
    

    ccfg.c

    /******************************************************************************
    *  Filename:       ccfg.c
    *  Revised:        $Date: 2017-08-08 15:34:36 +0200 (Tue, 08 Aug 2017) $
    *  Revision:       $Revision: 17873 $
    *
    *  Description:    Customer Configuration for CC13x0 device family (HW rev 2).
    *
    *  Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
    *
    *
    *  Redistribution and use in source and binary forms, with or without
    *  modification, are permitted provided that the following conditions
    *  are met:
    *
    *    Redistributions of source code must retain the above copyright
    *    notice, this list of conditions and the following disclaimer.
    *
    *    Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in the
    *    documentation and/or other materials provided with the distribution.
    *
    *    Neither the name of Texas Instruments Incorporated nor the names of
    *    its contributors may be used to endorse or promote products derived
    *    from this software without specific prior written permission.
    *
    *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    *
    ******************************************************************************/
    
    #ifndef __CCFC_C__
    #define __CCFC_C__
    
    #include <stdint.h>
    #include "../inc/hw_types.h"
    #include "../inc/hw_ccfg.h"
    #include "../inc/hw_ccfg_simple_struct.h"
    
    //*****************************************************************************
    //
    // Introduction
    //
    // This file contains fields used by Boot ROM, startup code, and SW radio 
    // stacks to configure chip behavior.
    //
    // Fields are documented in more details in hw_ccfg.h and CCFG.html in 
    // DriverLib documentation (doc_overview.html -> CPU Domain Memory Map -> CCFG).
    //
    // PLEASE NOTE:
    // It is not recommended to do modifications inside the ccfg.c file.
    // This file is part of the CoreSDK release and future releases may have
    // important modifications and new fields added without notice.
    // The recommended method to modify the CCFG settings is to have a separate
    // <customer_ccfg>.c file that defines the specific CCFG values to be
    // overridden and then include the TI provided ccfg.c at the very end,
    // giving default values for non-overriden settings.
    //
    // Example:
    // #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE  0xC5 // Enable ROM boot loader
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION     0x3  // LF RCOSC
    // //---- Use default values for all others ----
    // #include "<project-path>/source/ti/devices/<device>/startup_files/ccfg.c"
    // 
    //*****************************************************************************
    
    //*****************************************************************************
    //
    // Internal settings, forcing several bit-fields to be set to a specific value.
    //
    //*****************************************************************************
    
    //#####################################
    // Force VDDR high setting (Higher output power but also higher power consumption)
    //#####################################
    
    #ifndef CCFG_FORCE_VDDR_HH
    #define CCFG_FORCE_VDDR_HH                              0x0        // Use default VDDR trim
    // #define CCFG_FORCE_VDDR_HH                           0x1        // Force VDDR voltage to the factory HH setting (FCFG1..VDDR_TRIM_HH)
    #endif
    
    //*****************************************************************************
    //
    // Set the values of the individual bit fields.
    //
    //*****************************************************************************
    
    //#####################################
    // Alternative DC/DC settings
    //#####################################
    
    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING    0x0    // Alternative DC/DC setting enabled
    // #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING 0x1    // Alternative DC/DC setting disabled
    #endif
    
    #if ( CCFG_FORCE_VDDR_HH )
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_VMIN                  0xC    // Special VMIN level (2.5V) when forced VDDR HH voltage
    #else
    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_VMIN
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_VMIN                  0x8    // 2.25V
    #endif
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN
    // #define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN          0x0    // Disable
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN             0x1    // Enable
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_IPEAK
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_IPEAK                 0x0    // 31mA
    #endif
    
    //#####################################
    // XOSC override settings
    //#####################################
    
    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR
    // #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR     0x0        // Enable override
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR        0x1        // Disable override
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_1_DELTA_IBIAS_INIT
    #define SET_CCFG_MODE_CONF_1_DELTA_IBIAS_INIT           0x0        // Delta = 0
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET
    #define SET_CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET         0x0        // Delta = 0
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_1_XOSC_MAX_START
    #define SET_CCFG_MODE_CONF_1_XOSC_MAX_START             0x10       // 1600us
    #endif
    
    //#####################################
    // Power settings
    //#####################################
    
    #ifndef SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA
    #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA        0xF        // Signed delta value +1 to apply to the VDDR_TRIM_SLEEP target (0xF=-1=default=no compensation)
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_DCDC_RECHARGE
    #define SET_CCFG_MODE_CONF_DCDC_RECHARGE                0x0        // Use the DC/DC during recharge in powerdown
    // #define SET_CCFG_MODE_CONF_DCDC_RECHARGE             0x1        // Do not use the DC/DC during recharge in powerdown
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_DCDC_ACTIVE
    #define SET_CCFG_MODE_CONF_DCDC_ACTIVE                  0x0        // Use the DC/DC during active mode
    // #define SET_CCFG_MODE_CONF_DCDC_ACTIVE               0x1        // Do not use the DC/DC during active mode
    #endif
    
    #if ( CCFG_FORCE_VDDR_HH )
    #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL               0x1        // Special setting to enable forced VDDR HH voltage
    #else
    #ifndef SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL
    // #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL            0x0        // VDDS BOD level is 2.0V
    #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL               0x1        // VDDS BOD level is 1.8V (or 1.65V for external regulator mode)
    #endif
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_VDDR_CAP
    #define SET_CCFG_MODE_CONF_VDDR_CAP                     0x3A       // Unsigned 8-bit integer representing the min. decoupling capacitance on VDDR in units of 100nF
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC
    #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC           0x1        // Temperature compensation on VDDR sleep trim disabled (default)
    // #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC        0x0        // Temperature compensation on VDDR sleep trim enabled
    #endif
    
    //#####################################
    // Clock settings
    //#####################################
    
    #ifndef SET_CCFG_MODE_CONF_SCLK_LF_OPTION
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION            0x0        // LF clock derived from High Frequency XOSC
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION            0x1        // External LF clock
    #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION               0x2        // LF XOSC
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION            0x3        // LF RCOSC
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_XOSC_CAP_MOD
    // #define SET_CCFG_MODE_CONF_XOSC_CAP_MOD              0x0        // Apply cap-array delta
    #define SET_CCFG_MODE_CONF_XOSC_CAP_MOD                 0x1        // Don't apply cap-array delta 
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA
    #define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA          0xFF       // Signed 8-bit value, directly modifying trimmed XOSC cap-array value
    #endif
    
    #ifndef SET_CCFG_EXT_LF_CLK_DIO
    #define SET_CCFG_EXT_LF_CLK_DIO                         0x01       // DIO number if using external LF clock
    #endif
    
    #ifndef SET_CCFG_EXT_LF_CLK_RTC_INCREMENT
    #define SET_CCFG_EXT_LF_CLK_RTC_INCREMENT               0x800000   // RTC increment representing the external LF clock frequency
    #endif
    
    //#####################################
    // Special HF clock source setting
    //#####################################
    #ifndef SET_CCFG_MODE_CONF_XOSC_FREQ
    // #define SET_CCFG_MODE_CONF_XOSC_FREQ                 0x1        // Use HPOSC as HF source (Unavailable on CC13xx chips)
    // #define SET_CCFG_MODE_CONF_XOSC_FREQ                 0x2        // HF source is a 48 MHz xtal
    #define SET_CCFG_MODE_CONF_XOSC_FREQ                    0x3        // HF source is a 24 MHz xtal (default)
    #endif
    
    //#####################################
    // Bootloader settings
    //#####################################
    
    #ifndef SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE
    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE            0x00       // Disable ROM boot loader
    // #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE         0xC5       // Enable ROM boot loader
    #endif
    
    #ifndef SET_CCFG_BL_CONFIG_BL_LEVEL
    // #define SET_CCFG_BL_CONFIG_BL_LEVEL                  0x0        // Active low to open boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_LEVEL                     0x1        // Active high to open boot loader backdoor
    #endif
    
    #ifndef SET_CCFG_BL_CONFIG_BL_PIN_NUMBER
    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER                0xFF       // DIO number for boot loader backdoor
    #endif
    
    #ifndef SET_CCFG_BL_CONFIG_BL_ENABLE
    // #define SET_CCFG_BL_CONFIG_BL_ENABLE                 0xC5       // Enabled boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_ENABLE                    0xFF       // Disabled boot loader backdoor
    #endif
    
    //#####################################
    // Debug access settings
    //#####################################
    
    #ifndef SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE
    #define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE           0x00       // Disable unlocking of TI FA option
    // #define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE        0xC5       // Enable unlocking of TI FA option with the unlock code
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE
    // #define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE       0x00       // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE          0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE         0x00       // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE      0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE
    // #define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE      0x00       // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE         0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE       0x00       // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE    0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE       0x00       // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE    0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE          0x00       // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE       0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    //#####################################
    // Alternative IEEE 802.15.4 MAC address
    //#####################################
    #ifndef SET_CCFG_IEEE_MAC_0
    #define SET_CCFG_IEEE_MAC_0                             0xFFFFFFFF // Bits [31:0]
    #endif
    
    #ifndef SET_CCFG_IEEE_MAC_1
    #define SET_CCFG_IEEE_MAC_1                             0xFFFFFFFF // Bits [63:32]
    #endif
    
    //#####################################
    // Alternative BLE address
    //#####################################
    #ifndef SET_CCFG_IEEE_BLE_0
    #define SET_CCFG_IEEE_BLE_0                             0xFFFFFFFF // Bits [31:0]
    #endif
    
    #ifndef SET_CCFG_IEEE_BLE_1
    #define SET_CCFG_IEEE_BLE_1                             0xFFFFFFFF // Bits [63:32]
    #endif
    
    //#####################################
    // Flash erase settings
    //#####################################
    
    #ifndef SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N
    // #define SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N         0x0        // Any chip erase request detected during boot will be ignored
    #define SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N            0x1        // Any chip erase request detected during boot will be performed by the boot FW
    #endif
    
    #ifndef SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N
    // #define SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N         0x0        // Disable the boot loader bank erase function
    #define SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N            0x1        // Enable the boot loader bank erase function
    #endif
    
    //#####################################
    // Flash image valid
    //#####################################
    #ifndef SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID
    #define SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID           0x00000000 // Flash image is valid
    // #define SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID        <non-zero> // Flash image is invalid. ROM boot loader is called.
    #endif
    
    //#####################################
    // Flash sector write protection
    //#####################################
    #ifndef SET_CCFG_CCFG_PROT_31_0
    #define SET_CCFG_CCFG_PROT_31_0                         0xFFFFFFFF
    #endif
    
    #ifndef SET_CCFG_CCFG_PROT_63_32
    #define SET_CCFG_CCFG_PROT_63_32                        0xFFFFFFFF
    #endif
    
    #ifndef SET_CCFG_CCFG_PROT_95_64
    #define SET_CCFG_CCFG_PROT_95_64                        0xFFFFFFFF
    #endif
    
    #ifndef SET_CCFG_CCFG_PROT_127_96
    #define SET_CCFG_CCFG_PROT_127_96                       0xFFFFFFFF
    #endif
    
    //#####################################
    // Select between cache or GPRAM
    //#####################################
    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM
    // #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM        0x0        // Cache is disabled and GPRAM is available at 0x11000000-0x11001FFF
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM           0x1        // Cache is enabled and GPRAM is disabled (unavailable)
    #endif
    
    //#####################################
    // Select TCXO
    //#####################################
    #ifndef SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO            0x1    // Disable TCXO
    // #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO         0x0    // Enable TXCO
    #endif
    
    //*****************************************************************************
    //
    // CCFG values that should not be modified.
    //
    //*****************************************************************************
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_SIZE_OF_CCFG        0x0058
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS       (CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS_M >> CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS_S)
    
    #if ( CCFG_FORCE_VDDR_HH )
    #define SET_CCFG_MODE_CONF_VDDR_EXT_LOAD                0x0        // Special setting to enable forced VDDR HH voltage
    #else
    #define SET_CCFG_MODE_CONF_VDDR_EXT_LOAD                0x1
    #endif
    
    #define SET_CCFG_MODE_CONF_RTC_COMP                     0x1
    #define SET_CCFG_MODE_CONF_HF_COMP                      0x1
    
    #define SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP45              0xFF
    #define SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP25              0xFF
    #define SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP5               0xFF
    #define SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TM15              0xFF
    
    #define SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP125             0xFF
    #define SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP105             0xFF
    #define SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP85              0xFF
    #define SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP65              0xFF
    
    #define SET_CCFG_RTC_OFFSET_RTC_COMP_P0                 0xFFFF
    #define SET_CCFG_RTC_OFFSET_RTC_COMP_P1                 0xFF
    #define SET_CCFG_RTC_OFFSET_RTC_COMP_P2                 0xFF
    
    #define SET_CCFG_FREQ_OFFSET_HF_COMP_P0                 0xFFFF
    #define SET_CCFG_FREQ_OFFSET_HF_COMP_P1                 0xFF
    #define SET_CCFG_FREQ_OFFSET_HF_COMP_P2                 0xFF
    
    //*****************************************************************************
    //
    // Concatenate bit fields to words.
    // DO NOT EDIT!
    //
    //*****************************************************************************
    #define DEFAULT_CCFG_EXT_LF_CLK          ( \
    	 ((((uint32_t)( SET_CCFG_EXT_LF_CLK_DIO                          )) << CCFG_EXT_LF_CLK_DIO_S                          ) | ~CCFG_EXT_LF_CLK_DIO_M                          ) & \
    	 ((((uint32_t)( SET_CCFG_EXT_LF_CLK_RTC_INCREMENT                )) << CCFG_EXT_LF_CLK_RTC_INCREMENT_S                ) | ~CCFG_EXT_LF_CLK_RTC_INCREMENT_M                ) )
    
    #define DEFAULT_CCFG_MODE_CONF_1         ( \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_1_ALT_DCDC_VMIN               )) << CCFG_MODE_CONF_1_ALT_DCDC_VMIN_S               ) | ~CCFG_MODE_CONF_1_ALT_DCDC_VMIN_M               ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN          )) << CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN_S          ) | ~CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN_M          ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_1_ALT_DCDC_IPEAK              )) << CCFG_MODE_CONF_1_ALT_DCDC_IPEAK_S              ) | ~CCFG_MODE_CONF_1_ALT_DCDC_IPEAK_M              ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_1_DELTA_IBIAS_INIT            )) << CCFG_MODE_CONF_1_DELTA_IBIAS_INIT_S            ) | ~CCFG_MODE_CONF_1_DELTA_IBIAS_INIT_M            ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET          )) << CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET_S          ) | ~CCFG_MODE_CONF_1_DELTA_IBIAS_OFFSET_M          ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_1_XOSC_MAX_START              )) << CCFG_MODE_CONF_1_XOSC_MAX_START_S              ) | ~CCFG_MODE_CONF_1_XOSC_MAX_START_M              ) )
    
    #define DEFAULT_CCFG_SIZE_AND_DIS_FLAGS  ( \
    	 ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_SIZE_OF_CCFG         )) << CCFG_SIZE_AND_DIS_FLAGS_SIZE_OF_CCFG_S         ) | ~CCFG_SIZE_AND_DIS_FLAGS_SIZE_OF_CCFG_M         ) & \
    	 ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS        )) << CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS_S        ) | ~CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS_M        ) & \
    	 ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO             )) << CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO_S             ) | ~CCFG_SIZE_AND_DIS_FLAGS_DIS_TCXO_M             ) & \
    	 ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM            )) << CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM_S            ) | ~CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM_M            ) & \
    	 ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING )) << CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING_S ) | ~CCFG_SIZE_AND_DIS_FLAGS_DIS_ALT_DCDC_SETTING_M ) & \
    	 ((((uint32_t)( SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR         )) << CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR_S         ) | ~CCFG_SIZE_AND_DIS_FLAGS_DIS_XOSC_OVR_M         ) )
    
    #define DEFAULT_CCFG_MODE_CONF           ( \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA         )) << CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA_S         ) | ~CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA_M         ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_DCDC_RECHARGE                 )) << CCFG_MODE_CONF_DCDC_RECHARGE_S                 ) | ~CCFG_MODE_CONF_DCDC_RECHARGE_M                 ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_DCDC_ACTIVE                   )) << CCFG_MODE_CONF_DCDC_ACTIVE_S                   ) | ~CCFG_MODE_CONF_DCDC_ACTIVE_M                   ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_VDDR_EXT_LOAD                 )) << CCFG_MODE_CONF_VDDR_EXT_LOAD_S                 ) | ~CCFG_MODE_CONF_VDDR_EXT_LOAD_M                 ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL                )) << CCFG_MODE_CONF_VDDS_BOD_LEVEL_S                ) | ~CCFG_MODE_CONF_VDDS_BOD_LEVEL_M                ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_SCLK_LF_OPTION                )) << CCFG_MODE_CONF_SCLK_LF_OPTION_S                ) | ~CCFG_MODE_CONF_SCLK_LF_OPTION_M                ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC            )) << CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC_S            ) | ~CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC_M            ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_RTC_COMP                      )) << CCFG_MODE_CONF_RTC_COMP_S                      ) | ~CCFG_MODE_CONF_RTC_COMP_M                      ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_XOSC_FREQ                     )) << CCFG_MODE_CONF_XOSC_FREQ_S                     ) | ~CCFG_MODE_CONF_XOSC_FREQ_M                     ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_XOSC_CAP_MOD                  )) << CCFG_MODE_CONF_XOSC_CAP_MOD_S                  ) | ~CCFG_MODE_CONF_XOSC_CAP_MOD_M                  ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_HF_COMP                       )) << CCFG_MODE_CONF_HF_COMP_S                       ) | ~CCFG_MODE_CONF_HF_COMP_M                       ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA           )) << CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA_S           ) | ~CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA_M           ) & \
    	 ((((uint32_t)( SET_CCFG_MODE_CONF_VDDR_CAP                      )) << CCFG_MODE_CONF_VDDR_CAP_S                      ) | ~CCFG_MODE_CONF_VDDR_CAP_M                      ) )
    
    #define DEFAULT_CCFG_VOLT_LOAD_0         ( \
    	 ((((uint32_t)( SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP45               )) << CCFG_VOLT_LOAD_0_VDDR_EXT_TP45_S               ) | ~CCFG_VOLT_LOAD_0_VDDR_EXT_TP45_M               ) & \
    	 ((((uint32_t)( SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP25               )) << CCFG_VOLT_LOAD_0_VDDR_EXT_TP25_S               ) | ~CCFG_VOLT_LOAD_0_VDDR_EXT_TP25_M               ) & \
    	 ((((uint32_t)( SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TP5                )) << CCFG_VOLT_LOAD_0_VDDR_EXT_TP5_S                ) | ~CCFG_VOLT_LOAD_0_VDDR_EXT_TP5_M                ) & \
    	 ((((uint32_t)( SET_CCFG_VOLT_LOAD_0_VDDR_EXT_TM15               )) << CCFG_VOLT_LOAD_0_VDDR_EXT_TM15_S               ) | ~CCFG_VOLT_LOAD_0_VDDR_EXT_TM15_M               ) )
    
    #define DEFAULT_CCFG_VOLT_LOAD_1         ( \
    	 ((((uint32_t)( SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP125              )) << CCFG_VOLT_LOAD_1_VDDR_EXT_TP125_S              ) | ~CCFG_VOLT_LOAD_1_VDDR_EXT_TP125_M              ) & \
    	 ((((uint32_t)( SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP105              )) << CCFG_VOLT_LOAD_1_VDDR_EXT_TP105_S              ) | ~CCFG_VOLT_LOAD_1_VDDR_EXT_TP105_M              ) & \
    	 ((((uint32_t)( SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP85               )) << CCFG_VOLT_LOAD_1_VDDR_EXT_TP85_S               ) | ~CCFG_VOLT_LOAD_1_VDDR_EXT_TP85_M               ) & \
    	 ((((uint32_t)( SET_CCFG_VOLT_LOAD_1_VDDR_EXT_TP65               )) << CCFG_VOLT_LOAD_1_VDDR_EXT_TP65_S               ) | ~CCFG_VOLT_LOAD_1_VDDR_EXT_TP65_M               ) )
    
    #define DEFAULT_CCFG_RTC_OFFSET          ( \
    	 ((((uint32_t)( SET_CCFG_RTC_OFFSET_RTC_COMP_P0                  )) << CCFG_RTC_OFFSET_RTC_COMP_P0_S                  ) | ~CCFG_RTC_OFFSET_RTC_COMP_P0_M                  ) & \
    	 ((((uint32_t)( SET_CCFG_RTC_OFFSET_RTC_COMP_P1                  )) << CCFG_RTC_OFFSET_RTC_COMP_P1_S                  ) | ~CCFG_RTC_OFFSET_RTC_COMP_P1_M                  ) & \
    	 ((((uint32_t)( SET_CCFG_RTC_OFFSET_RTC_COMP_P2                  )) << CCFG_RTC_OFFSET_RTC_COMP_P2_S                  ) | ~CCFG_RTC_OFFSET_RTC_COMP_P2_M                  ) )
    
    #define DEFAULT_CCFG_FREQ_OFFSET         ( \
    	 ((((uint32_t)( SET_CCFG_FREQ_OFFSET_HF_COMP_P0                  )) << CCFG_FREQ_OFFSET_HF_COMP_P0_S                  ) | ~CCFG_FREQ_OFFSET_HF_COMP_P0_M                  ) & \
    	 ((((uint32_t)( SET_CCFG_FREQ_OFFSET_HF_COMP_P1                  )) << CCFG_FREQ_OFFSET_HF_COMP_P1_S                  ) | ~CCFG_FREQ_OFFSET_HF_COMP_P1_M                  ) & \
    	 ((((uint32_t)( SET_CCFG_FREQ_OFFSET_HF_COMP_P2                  )) << CCFG_FREQ_OFFSET_HF_COMP_P2_S                  ) | ~CCFG_FREQ_OFFSET_HF_COMP_P2_M                  ) )
    
    #define DEFAULT_CCFG_IEEE_MAC_0          SET_CCFG_IEEE_MAC_0
    #define DEFAULT_CCFG_IEEE_MAC_1          SET_CCFG_IEEE_MAC_1
    #define DEFAULT_CCFG_IEEE_BLE_0          SET_CCFG_IEEE_BLE_0
    #define DEFAULT_CCFG_IEEE_BLE_1          SET_CCFG_IEEE_BLE_1
    
    #define DEFAULT_CCFG_BL_CONFIG           ( \
    	 ((((uint32_t)( SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE             )) << CCFG_BL_CONFIG_BOOTLOADER_ENABLE_S             ) | ~CCFG_BL_CONFIG_BOOTLOADER_ENABLE_M             ) & \
    	 ((((uint32_t)( SET_CCFG_BL_CONFIG_BL_LEVEL                      )) << CCFG_BL_CONFIG_BL_LEVEL_S                      ) | ~CCFG_BL_CONFIG_BL_LEVEL_M                      ) & \
    	 ((((uint32_t)( SET_CCFG_BL_CONFIG_BL_PIN_NUMBER                 )) << CCFG_BL_CONFIG_BL_PIN_NUMBER_S                 ) | ~CCFG_BL_CONFIG_BL_PIN_NUMBER_M                 ) & \
    	 ((((uint32_t)( SET_CCFG_BL_CONFIG_BL_ENABLE                     )) << CCFG_BL_CONFIG_BL_ENABLE_S                     ) | ~CCFG_BL_CONFIG_BL_ENABLE_M                     ) )
    
    #define DEFAULT_CCFG_ERASE_CONF          ( \
    	 ((((uint32_t)( SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N             )) << CCFG_ERASE_CONF_CHIP_ERASE_DIS_N_S             ) | ~CCFG_ERASE_CONF_CHIP_ERASE_DIS_N_M             ) & \
    	 ((((uint32_t)( SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N             )) << CCFG_ERASE_CONF_BANK_ERASE_DIS_N_S             ) | ~CCFG_ERASE_CONF_BANK_ERASE_DIS_N_M             ) )
    
    #define DEFAULT_CCFG_CCFG_TI_OPTIONS     ( \
    	 ((((uint32_t)( SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE            )) << CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE_S            ) | ~CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE_M            ) )
    
    #define DEFAULT_CCFG_CCFG_TAP_DAP_0      ( \
    	 ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE           )) << CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE_S           ) | ~CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE_M           ) & \
    	 ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE          )) << CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE_S          ) | ~CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE_M          ) & \
    	 ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE          )) << CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE_S          ) | ~CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE_M          ) )
    
    #define DEFAULT_CCFG_CCFG_TAP_DAP_1      ( \
    	 ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE        )) << CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE_S        ) | ~CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE_M        ) & \
    	 ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE        )) << CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE_S        ) | ~CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE_M        ) & \
    	 ((((uint32_t)( SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE           )) << CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE_S           ) | ~CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE_M           ) )
    
    #define DEFAULT_CCFG_IMAGE_VALID_CONF    SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID
    
    #define DEFAULT_CCFG_CCFG_PROT_31_0      SET_CCFG_CCFG_PROT_31_0  
    #define DEFAULT_CCFG_CCFG_PROT_63_32     SET_CCFG_CCFG_PROT_63_32 
    #define DEFAULT_CCFG_CCFG_PROT_95_64     SET_CCFG_CCFG_PROT_95_64 
    #define DEFAULT_CCFG_CCFG_PROT_127_96    SET_CCFG_CCFG_PROT_127_96
    
    //*****************************************************************************
    //
    // Customer Configuration Area in Lock Page
    //
    //*****************************************************************************
    #if defined(__IAR_SYSTEMS_ICC__)
    __root const ccfg_t __ccfg @ ".ccfg" =
    #elif defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(__ccfg, ".ccfg")
    #pragma RETAIN(__ccfg)
    const ccfg_t __ccfg =
    #else
    const ccfg_t __ccfg __attribute__((section(".ccfg"))) __attribute__((used)) =
    #endif
    {                                     // Mapped to address
        DEFAULT_CCFG_EXT_LF_CLK         , // 0x50003FA8 (0x50003xxx maps to last
        DEFAULT_CCFG_MODE_CONF_1        , // 0x50003FAC  sector in FLASH.
        DEFAULT_CCFG_SIZE_AND_DIS_FLAGS , // 0x50003FB0  Independent of FLASH size)
        DEFAULT_CCFG_MODE_CONF          , // 0x50003FB4
        DEFAULT_CCFG_VOLT_LOAD_0        , // 0x50003FB8 
        DEFAULT_CCFG_VOLT_LOAD_1        , // 0x50003FBC
        DEFAULT_CCFG_RTC_OFFSET         , // 0x50003FC0
        DEFAULT_CCFG_FREQ_OFFSET        , // 0x50003FC4
        DEFAULT_CCFG_IEEE_MAC_0         , // 0x50003FC8
        DEFAULT_CCFG_IEEE_MAC_1         , // 0x50003FCC
        DEFAULT_CCFG_IEEE_BLE_0         , // 0x50003FD0
        DEFAULT_CCFG_IEEE_BLE_1         , // 0x50003FD4
        DEFAULT_CCFG_BL_CONFIG          , // 0x50003FD8
        DEFAULT_CCFG_ERASE_CONF         , // 0x50003FDC
        DEFAULT_CCFG_CCFG_TI_OPTIONS    , // 0x50003FE0
        DEFAULT_CCFG_CCFG_TAP_DAP_0     , // 0x50003FE4
        DEFAULT_CCFG_CCFG_TAP_DAP_1     , // 0x50003FE8
        DEFAULT_CCFG_IMAGE_VALID_CONF   , // 0x50003FEC
        DEFAULT_CCFG_CCFG_PROT_31_0     , // 0x50003FF0
        DEFAULT_CCFG_CCFG_PROT_63_32    , // 0x50003FF4
        DEFAULT_CCFG_CCFG_PROT_95_64    , // 0x50003FF8
        DEFAULT_CCFG_CCFG_PROT_127_96   , // 0x50003FFC
    };
    
    #endif // __CCFC_C__
    

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

    您好、Corey、

    感谢您 的详细信息。 我目前不能想到这失败的原因。 您是否有 CC1310 Launchpad、您可以使用它进行测试并查看您是否遇到了相同的问题? 这有助于确定这是硬件还是软件问题。

    谢谢、
    尼古拉伊

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

    是的。 我有一个 CC1310 LaunchPad、我将尝试它并报告

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

    检查 CCFG 与硬件实现之间的直流/直流设置

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

    已使用 cc1310 Launchpad 尝试所有操作。 不起作用、结果与以前相同

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

    2022年8月14日更新:意识到在重新阅读原始问题陈述后、此问题可能比我想象的更细微。  以下内容可能并不相关。   请忽略..

    --------------------------------------------------------------------

    很有趣  我没有外部探头... 我获取了您的代码、对其进行了一些修改、并将其加载到 CC1310 Launchpad 上、并尝试将其指向其他 LED。   在调试模式下或硬复位后似乎对我有效。  在保险丝中显示...实质性更改是更改指向 LED 的内容、可能是使用您的 PIN 表执行 PIN_INIT (修改了 smidge。)   在我硬复位后、LED 闪烁。  看看这是否有用。

    JRW

    ----------------------------------------

    #define CALLSTAT(x) (x=0?printf("ZERO RETURN!\n"):printf("NON-ZERO RETURN!\n"))

    //#define RLED IOID_24
    #define RLED PIN_ID(7)

    void *mainThread(void *arg0)
    {
        /* 1 second delay */
        uint32_t time = 1;

        /* Call driver init functions */
        //GPIO_init();
        PIN_init(ledPinTable);

    .

    .

        while (1) {
    //        sleep(time);
            //GPIO_toggle(Board_GPIO_LED0);
            int qq;
            qq=PIN_setOutputValue(ledPinHandle, RLED, 0);
            CALLSTAT(qq);

            sleep(time);
            qq=PIN_setOutputValue(ledPinHandle, RLED, 1);
           CALLSTAT(qq);

            sleep(time);


        }
    }

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

    您好、Corey、

    我想知道这是否与器件进入待机状态有关。 您是否可以尝试设置限制以防止器件进入待机状态(如下面的第88行)。

    /*
     * Copyright (c) 2015-2019, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    /*
     *  ======== empty.c ========
     */
    
    /* For usleep() */
    #include <unistd.h>
    #include <stdint.h>
    #include <stddef.h>
    
    /* Driver Header files */
    #include <ti/drivers/GPIO.h>
    // #include <ti/drivers/I2C.h>
    // #include <ti/drivers/SPI.h>
    // #include <ti/drivers/UART.h>
    // #include <ti/drivers/Watchdog.h>
    
    /* Board Header file */
    #include "Board.h"
    #include <ti/drivers/PIN.h>
    
    /* Pin driver handles */
    
    static PIN_Handle ledPinHandle;
    
    /* Global memory storage for a PIN_Config table */
    static PIN_State buttonPinState;
    static PIN_State ledPinState;
    
    #define RLED IOID_24
    #define EN_A IOID_19
    #define PWM_A IOID_18
    #define EN_B IOID_20
    #define PWM_B IOID_21
    
    /*
     * Initial LED pin configuration table
     *   - LEDs Board_PIN_LED0 is on.
     *   - LEDs Board_PIN_LED1 is off.
     */
    PIN_Config ledPinTable[] = {
        RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    
        EN_A | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        PWM_A | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        EN_B | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        PWM_B | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    
        PIN_TERMINATE
    };
    
    /*
     *  ======== mainThread ========
     */
    void *mainThread(void *arg0)
    {
        Power_setConstraint(PowerCC26XX_DISALLOW_STANDBY);
        /* 1 second delay */
        uint32_t time = 1;
    
        ledPinHandle = PIN_open(&ledPinState, ledPinTable);
        if(!ledPinHandle) {
            /* Error initializing board LED pins */
            while(1);
        }
    
        /* Turn off user LED */
    
        PIN_setOutputValue(ledPinHandle, RLED, 0);
    
    
    
        while (1) {
            PIN_setOutputValue(ledPinHandle, RLED, 0);
    
            sleep(time);
    
           PIN_setOutputValue(ledPinHandle, RLED, 1);
    
            sleep(time);
        }
    }


    您是否还可以在 CCS 中尝试以下操作(使用 CC1310 Launchpad):

    1. 照常启动调试会话(并验证 LED 是否闪烁)
    2. 断开与目标的连接(但保持调试会话活动)
    3. 使用 launchpad 上的 RESET 按钮重置器件。
      1. 或者、您可以尝试对 CC1310进行下电上电(不要对 XDS110本身进行下电上电)
    4. 连接到目标
    5. 检查 CPU 暂停的位置

    谢谢、
    尼古拉伊

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

    JRW、  

    谢谢、但我在 CC1310 LP 上运行原始代码没有问题。当我尝试在定制 CC1310目标板上运行原始代码时、程序在重启复位后似乎不会"运行"。 因此、我的定制板和 CC1310 LP 之间必须存在一些不同的东西。 原理图看起来 与 CC1310完全相同(除非我缺少任何内容)、因此与 代码/设置相关

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

    Nikolaj、  

    关于 待机、如果是待机设置、如果我要在 CC1310 LP 上运行、我将不会遇到相同的结果、现在我确实遇到了相同的问题。 当在 CC1310 LP 上运行时、在复位下电上电后、一切运行正常 故障排除 这让我想知道它是否与 硬件相关、但我看不到 我的设计和 CC1310 LP 设计之间的区别。 我于2022年3月将我的设计发送回 TI (使用他们 的提交表)、要求对我的设计进行审查、但我没有任何信函。   

    当我使用 CC1310 LP 和我的目标尝试上述步骤时、我在重置设备"错误连接至目标"-路由器子路径后尝试连接时、在下图中看到错误。  

    此外、在 CCXML 文件的目标配置中、JTAG/SWD / cJTAG 模式应设置为什么。 我注意到、如果我在 cJTAG 4引脚上设置了该程序、则在退出调试后会运行、但如果我在 cJTAG 2引脚上设置了该程序、则在退出调试后不会运行。 在这两种情况下、LED 在下电上电或复位后都不闪烁。

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

    不过、您的原理图不等于 CC1310 LP。 看看直流/直流转换器。 CCFG.c 应该对此进行回流焊。  

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

     、  

     是的、您回答正确、我将更新以下值至我的 CCFG.c、以再次选择我不使用直流/直流  

    #define SET_CCFG_MODE_CONF_DCDC_ACTIVE         0x1.     //在激活模式下不要使用 DC/DC

    #define SET_CCFG_MODE_CONF_DCDC_REGLEE        0x1.     //在断电期间不要使用 DC/DC

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

    32.728kHz 或24MHz 晶体是否会导致此类问题。 因为我有一个早期的测试板、它测试了这个代码、并且在复位后正常工作等等 这些电路板具有相同的 CC1310原理图、布局和布线等   绿色板是有效的测试板、红色板是当前有问题的板。 您应该能够看到这些电路板上的 CC1310部分是相同的、并且使用了我之前发送的原理图。  

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

    我在 ccfg.c 中添加了以下行  

    #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION       0x3.      

    我在开机自检时阅读 类似的重置问题开机自检 如果您包含上述选项并且 LED 闪烁、则表示晶体存在潜在问题。 我需要研究的晶体。  

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

    您好、Corey、  

    我很困惑、您的应用程序是否适用于 CC1310 LP?

    下面的语句说明它不适用于 CC1310 LP。

    [引用 userid="491287" URL"~/support/wireless-connectivity/sub-1GHz 组/sub-1GHz / f/sub-1GHz 论坛/1124682/cc1310-code-only-running in-debug/4177372#4177372]"使用 cc1310 Launchpad 尝试了所有操作。 不起作用、结果与之前一样[/报价]

    但下面的语句指出、这在 CC1310 LP 上确实可行:

    [引用 userid="491287" url="~/support/wireless-connectivity/sub-GHz 组/sub-1GHz/f/sub-1GHz 论坛/1124682/cc1310-code-only-run-in-debug/4178574#4178574]]谢谢您,但我没有在我的 CC1310原计划运行之前尝试在 CC1310运行自定义循环[如果我的目标板上运行自定义循环代码]

    问题可能与 LF 晶振有关、但我不知道。 待机模式使用 LF 振荡 器、我要求您尝试禁用待机模式、因为如果 LF 振荡器设置不正确、待机模式可能无法正常工作。   

    [引用 userid="491287" url="~/support/wireless-connectivity/sub-1GHz-group/sub-1GHz/f/sub-1GHz-forum/1124682/cc1310-code-only-running in-debug/4183209#4183209"]我需要研究的晶体。

    此致、
    尼古拉伊

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

    Nikolaj_G、  

    很抱歉造成混淆。 希望这将消除混乱。 当我在 CC1310 LP 上运行我的应用(在 LP 板上使用 cc1310)时 、它可以正常工作(在复位后运行-闪烁 LED)、 但是、如果随后使用 CC1310 LP 作为调试器并在我的定制板上加载相同的代码、则复位后应用程序不会运行。 关于禁用待机模式、我无法使用   Power_setConstraint (PowerCC26XX_disallow_standby)进行编译。 我包含了 Power.h 文件、但我收到错误 "PowerCC26XX_disallow_STANDBy"未定义。 我没有过多地处理电源功能部分、因此无法 解决此编译器问题

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

    您好、Corey、

    感谢您的澄清。

     在 PowerCC26XX.h 中定义了"PowerCC26XX_disallow_STANDBy"、请包含此文件。

    由于您使用的是 CC1312 LP、您是否可以使用能量跟踪来捕获正在运行(绿色板)和不工作(红色板)器件的电流曲线? 这样、我们就可以确定在引导代码或应用程序代码中错误发生的位置。 此 E2E 主题提供了有关如何使用 Energytrace 的详细说明: https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1029931/launchxl-cc1310-does-energytrace-support-launchxl-cc1310 

    您是否还可以尝试反转 LED 逻辑(如下所示)、使 LED 在应用程序开始时亮起。 这样,我们就会知道错误是否发生在第一次 SLEE()函数调用时。

    /*
     * Copyright (c) 2015-2019, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    /*
     *  ======== empty.c ========
     */
    
    /* For usleep() */
    #include <unistd.h>
    #include <stdint.h>
    #include <stddef.h>
    
    /* Driver Header files */
    #include <ti/drivers/GPIO.h>
    // #include <ti/drivers/I2C.h>
    // #include <ti/drivers/SPI.h>
    // #include <ti/drivers/UART.h>
    // #include <ti/drivers/Watchdog.h>
    
    /* Board Header file */
    #include "Board.h"
    #include <ti/drivers/PIN.h>
    
    /* Pin driver handles */
    
    static PIN_Handle ledPinHandle;
    
    /* Global memory storage for a PIN_Config table */
    static PIN_State buttonPinState;
    static PIN_State ledPinState;
    
    #define RLED IOID_24
    #define EN_A IOID_19
    #define PWM_A IOID_18
    #define EN_B IOID_20
    #define PWM_B IOID_21
    
    /*
     * Initial LED pin configuration table
     *   - LEDs Board_PIN_LED0 is on.
     *   - LEDs Board_PIN_LED1 is off.
     */
    PIN_Config ledPinTable[] = {
        RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    
        EN_A | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        PWM_A | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        EN_B | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        PWM_B | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW  | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    
        PIN_TERMINATE
    };
    
    /*
     *  ======== mainThread ========
     */
    void *mainThread(void *arg0)
    {
        Power_setConstraint(PowerCC26XX_DISALLOW_STANDBY);
        /* 1 second delay */
        uint32_t time = 1;
    
        ledPinHandle = PIN_open(&ledPinState, ledPinTable);
        if(!ledPinHandle) {
            /* Error initializing board LED pins */
            while(1);
        }
    
        /* Turn off user LED */
    
        PIN_setOutputValue(ledPinHandle, RLED, 1);
    
    
    
        while (1) {
            PIN_setOutputValue(ledPinHandle, RLED, 1);
    
            sleep(time);
    
           PIN_setOutputValue(ledPinHandle, RLED, 0);
    
            sleep(time);
        }
    }

    谢谢、
    尼古拉伊

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

    Nikolaj、

    感谢您的回答。 我在 代码中添加了 PowerCC26XX_disallow_STANDBY、 并在复位后成功运行代码。 因此、正如我理解的、此参数可防止 MCU 进入待机模式。 因此、我的第一个问题是、为什么应用程序尝试进入待机模式、因此 、   这种情况隔离了 LF 振荡器设置不正确的问题(就像您在先前 的帖子中所说的那样)。 这令人鼓舞的  是、我们正在获得某种设置、但当您说"设置"严格地从硬件角度而言、或者是否有需要配置的其他设置来设置 LF 振荡器。 因此、我的电流板在我的设计中包含一个24MHz 晶体和一个32.728KHz 晶体

    由于我不使用直流/直流电路、因此添加到了 ccfg  
    #define SET_CCFG_MODE_CONF_DCDC_RELEGIN 0x1 //在断电期间不要使用直流/直流
    #define SET_CCFG_MODE_CONF_DCDC_ACTIVE 0x1 //在激活模式下不使用直流/直流

    我正在尝试根据6.6.4技术 参考手册、在复位后确定触发 MCU 进入待机状态的可能原因、  

    以下是 CC26x0和 CC13x0器件进入待机模式的先决条件:  

    •AUX_PD 断电或断电并从系统总线断开
    •申请微型 LDO 为数字器件供电(请参阅图6-2)
    •JTAG_PD 断电
    •SCLK_HF 时钟来自48MHz RC 振荡器
    •SCLK_LF 时钟来自以下时钟源之一:
    –32kHz RC 振荡器
    –32.768kHz 晶体振荡器

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

    您好、Corey、

    很高兴知道我们在这个问题上取得了一些进展。

    当您调用 SLEEP 时、器件进入待机状态。 电源驱动器负责控制这种情况。 有关详细说明、请参阅 电源管理用户指南 https://dev.ti.com/tirex/content/simplelink_cc13x0_sdk_4_20_02_07/docs/tidrivers/Power_Management.pdf 

    我将在这里简单地解释一下。 调用 SLEEP (3600)将阻止呼叫任务。 如果没有其他任务处于就绪状态、则空闲任务将运行。 此任务将调用 Power_IDLE,对于电源驱动程序的默认配置,这将调用 PowerCC26XX_standbyPolicy (),如果满足某些条件,它将进入待机状态。 请参阅 电源管理用户指南中的第4.3节。

    此致、
    尼古拉伊

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

    感谢您向我介绍了该文档, 我已经介绍了它和一个很好的信息, 但我需要澄清的一个部分是,如果我使用命令 Power_setConstraint (PowerCC26XX_disallow_STANDBy), 我没有完全禁用 CC1310进入待机模式、而是选择更轻的电源策略 、因为 CC1310 会查询在下一次计划的处理之前将会出现多少个时钟模块周期、以确定何时退出待机模式、从而为引入更多延迟 唤醒。 我的理解是否正确?

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

    您好、Corey、

    我认为您在电源管理用户指南中提到了此部分、对吧? 第35页顶部(第4.3节)。

    检查 PowerCC26XX_disallow_STANDBY 约束(步骤4)。 如果不允许待机、将调用 Clock_getTicksUntilInterrupt () API、以查询在下一次计划的处理(步骤5)之前将发生多少个时钟模块节拍周期。

    请注意"允许"中的双负值。 如果您使用推荐  Power_setConstraint (PowerCC26XX_disallow_STANDBY)、则将禁止 STANDBY。

    如果您使用 的是 Power_setConstraint (PowerCC26XX_Disallow_STANDBY)、则在释放约束之前、器件将不会进入待机状态。

    此致、
    尼古拉伊

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

    Nikolaj、

    感谢您的澄清、这对我来说现在更有意义了。  我将处理设置和释放功率限制、因为在我的应用中、我的器件需要进入待机状态、 所以我将在我的代码中对此进行处理、以查看执行此操作的正确方法。 我觉得这解决了我原来的问题。  如果 出现有关此主题的其他内容(如果您对此满意)、我可以直接给您留言