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-CC2650:CC2650定制板无法使用 SmartRF 闪存编程器闪存十六进制文件

Guru**** 2610485 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/632664/launchxl-cc2650-cc2650-custom-board-cannot-flash-hex-file-using-smartrf-flash-programmer

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650

大家好、我要创建 CC2650定制板、我尝试在第一个闪存上对 Project Zero 进行示例编程 CC2650成功、但第二个闪存 CC2650未检测到、无法再次闪存、我的定制板有什么问题?

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

    /*********
    *文件名:ccfg.c
    *修订日期:$Date:2016-03-14 10:46:32 +0100 (MA、2016年3月14日)$
    *修订版:$修订 版:16862美元
    *
    *说明:CC26xx 器件系列的客户配置(硬件版本2)。
    *
    *版权所有(C) 2014德州仪器(TI)公司- http://www.ti.com/
    *
    *
    *以源代码和二进制形式重新分发和使用、有无
    *如果满足以下条件、则允许进行修改
    符合*:
    *
    *源代码的重新分发必须保留上述版权
    *注意、此条件列表和以下免责声明。
    *
    *二进制形式的再发行必须复制上述版权
    *请注意、中的此条件列表和以下免责声明
    *随分发提供的文档和/或其他材料。
    *
    *德州仪器公司的名称和名称均不相同
    *其贡献者可用于认可或推广衍生产品
    *未经特定的事先书面许可。
    *
    *本软件由版权所有者和贡献者提供
    *"按原样"以及任何明示或暗示的保证、包括但不包括
    *仅限于对适销性和适用性的暗示保证
    *一项特定目的不予承认。 在任何情况下、版权均不得
    *所有者或贡献者应对任何直接、间接、偶然或
    *特殊、惩戒性或后果性损害(包括但不包括)
    *仅限于采购替代货物或服务;丧失使用、
    *数据或利润;或业务中断)
    *责任理论、无论是合同责任、严格责任还是侵权行为
    *(包括疏忽或其他)因使用而以任何方式产生
    *、即使被告知可能会发生此类损坏。
    *
    秘书长的报告 /

    #include
    #include
    #include
    #include

    //
    //
    //简介
    //
    //此文件包含引导 ROM、启动代码和软件无线电使用的字段
    //堆栈来配置芯片行为。
    //
    //字段在中的 hw_ccfg.h 和 CCFG.html 中有详细说明
    // DriverLib 文档(doc_overview.html -> CPU 域内存映射-> CCFG)。
    //
    //

    //
    //
    //设置各个位字段的值。
    //
    //

    //##############################
    //备选直流/直流设置
    //##############################

    #ifndef SET_CCFG_Size_and_DIS_FLAGS_DIS_ALT_DCDC_Setting
    #define SET_CCFG_SIZE 和 DIS_FLAGS_DIS_ALT_DCDC_Setting 0x0 //启用备用直流/直流设置
    //#define SET_CCFG_SIZE 和 DIS_FLAGS_DIS_ALT_DCDC_Setting 0x1 //禁用备用直流/直流设置
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_Vmin
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_Vmin 0x8 // 2.25V
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER _EN
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER EN 0x0 //禁用
    //#define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER _EN 0x1 //启用
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_ALT_DCDC_IPEAK
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_IPEAK 0x2 // 39mA
    #endif

    //##############################
    // XOSC 覆盖设置
    //##############################

    #ifndef SET_CCFG_Size_and_DIS_FLAGS_DIS_XOSC_OVR
    //#define SET_CCFG_SIZE 和 DIS_FLAGS_DIS_XOSC_OVR 0x0 //启用覆盖
    #define SET_CCFG_SIZE 和 DIS_FLAGS_DIS_XOSC_OVR 0x1 //禁用覆盖
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_DELTA IBIAS_INIT
    #define SET_CCFG_MODE_CONF_1_DELTA BIAS_INIT 0x0 // Delta = 0
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_DELTA IBIAS_OFFSET
    #define SET_CCFG_MODE_CONF_1_DEAL_BIAS_OFFSET 0x0 //增量= 0
    #endif

    #ifndef SET_CCFG_MODE_CONF_1_XOSC_MAX_START
    #define SET_CCFG_MODE_CONF_1_XOSC_MAX_START 0x10 // 1600us
    #endif

    //##############################
    //电源设置
    //##############################

    #ifndef SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_Delta
    #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_Delta 0xF //有符号增量值+1以应用于 VDDR_TRIM_SLEEP 目标(0xF=-1=DEFAULT=NO RE补偿)
    #endif

    #ifndef SET_CCFG_MODE_CONF_DCDC_REGLEARGE
    #define SET_CCFG_MODE_CONF_DCDC_RELEGIN 0x0 //在断电期间使用直流/直流
    //#define SET_CCFG_MODE_CONF_DCDC_RELEGIN 0x1 //在断电期间不要使用 DC/DC
    #endif

    #ifndef SET_CCFG_MODE_CONF_DCDC_ACTIVE
    #define SET_CCFG_MODE_CONF_DCDC_ACTIVE 0x0 //在工作模式期间使用直流/直流
    //#define SET_CCFG_MODE_CONF_DCDC_ACTIVE 0x1 //在工作模式下不使用直流/直流
    #endif

    #ifndef SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL
    //#define SET_CCFG_MODE_CONF_VDDS_BOD_LEV0 // VDDS BOD 电平为2.0V
    #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL 0x1 // VDDS BOD 电平为1.8V (对于外部稳压器模式为1.65V)
    #endif

    #ifndef SET_CCFG_MODE_CONF_VDDR_CAP
    #define SET_CCFG_MODE_CONF_VDDR_CAP 0x3A //无符号8位整数、表示 VDDR 上的最小去耦电容、单位为100nF
    #endif

    #ifndef SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC
    #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC 0x1 //禁用 VDDR 睡眠调整上的温度补偿(默认)
    //#define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC 0x0 //启用 VDDR 睡眠调整上的温度补偿
    #endif

    //##############################
    //时钟设置
    //##############################

    #ifndef SET_CCFG_MODE_CONF_SCLK_LF_OPTION
    //#define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x0 //来自高频 XOSC 的 LF 时钟
    //#define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x1 //外部 LF 时钟
    #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 //应用电容阵列增量
    #define SET_CCFG_MODE_CONF_XOSC_CAP_MOD 0x1 //不应用电容阵列增量
    #endif

    #ifndef SET_CCFG_MODE_CONF_XOSC_CAPARRAY_Delta
    #define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_Delta 0xFF //有符号8位值,直接修改调整后的 XOSC 电容阵列值
    #endif

    #ifndef SET_CCFG_EXT_LF_CLK_DIO
    #define SET_CCFG_EXT_LF_CLK_DIO 0x01 // DIO 编号(如果使用外部 LF 时钟)
    #endif

    #ifndef SET_CCFG_EXT_LF_CLK_RTC_Increment
    #define SET_CCFG_EXT_LF_CLK_RTC_Increment 0x800000 // RTC 增量、表示外部 LF 时钟频率
    #endif

    //##############################
    //特殊 HF 时钟源设置
    //##############################
    #ifndef SET_CCFG_MODE_CONF_XOSC_FREQ
    //#define SET_CCFG_MODE_CONF_XOSC_FREQ 0x1 //使用 HPOSC 作为 HF 源(如果在 HPOSC 芯片上执行、否则使用默认值(=0x3))
    //#define SET_CCFG_MODE_CONF_XOSC_FREQ 0x2 // HF 源为48MHz xtal
    #define SET_CCFG_MODE_CONF_XOSC_FREQ 0x3 // HF 源是24MHz xtal (默认值)
    #endif

    //##############################
    //引导加载程序设置
    //##############################

    #ifndef SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE
    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0x00 //禁用 ROM 引导加载程序
    //#define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5 //启用 ROM 引导加载程序
    #endif

    #ifndef SET_CCFG_BL_CONFIG_BL_LEVEL
    //#define SET_CCFG_BL_CONFIG_BL_LEVEL 0x0 //低电平有效以打开引导加载程序后门
    #define SET_CCFG_BL_CONFIG_BL_LEVEL 0x1 //高电平有效以打开引导加载程序后门
    #endif

    #ifndef SET_CCFG_BL_CONFIG_BL_PIN_NUMBER
    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0xFF //引导加载程序后门的 DIO 编号
    #endif

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

    //##############################
    //调试访问设置
    //##############################

    #ifndef SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE
    #define SET_CCFG_CCFG_TI_OPTIONS TI_FA_ENABLE 0x00 //禁用 TI FA 选项解锁。
    //#define SET_CCFG_CCFG_TI_OPTIONS TI_FA_ENABLE 0xC5 //使用解锁代码启用 TI FA 选项解锁
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE
    //#define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0x00 //访问被禁用
    #define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0xC5 //访问被启用(如果在 FCFG 中也被启用)
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE 0x00 //禁用访问
    //#define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE 0xC5 //如果在 FCFG 中也启用了访问功能
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE
    //#define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0x00 //访问被禁用
    #define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0xC5 //如果在 FCFG 中也启用了访问功能
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0x00 //访问被禁用
    //#define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0xC5 //如果在 FCFG 中也启用了访问功能
    #endif

    #ifndef SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0x00 //访问被禁用
    //#define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0xC5 //如果在 FCFG 中也启用了访问功能
    #endif

    #ifndef SET_CCFG_CCFG_TAP_1_WuC_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE 0x00 //禁用访问
    //#define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE 0xC5 //如果在 FCFG 中也启用了访问功能
    #endif

    //##############################
    //备选 IEEE 802.15.4 MAC 地址
    //##############################
    #ifndef SET_CCFG_IEEE_MAC_0
    #define SET_CCFG_IEEE_MAC_0 0xFFFFFFFF //位[31:0]
    #endif

    #ifndef SET_CCFG_IEEE_MAC_1
    #define SET_CCFG_IEEE_MAC_1 0xFFFFFFFF //位[63:32]
    #endif

    //##############################
    //备用 BLE 地址
    //##############################
    #ifndef SET_CCFG_IEEE_BLE_0
    #define SET_CCFG_IEEE_BLE_0 0xFFFFFFFF //位[31:0]
    #endif

    #ifndef SET_CCFG_IEEE_BLE_1
    #define SET_CCFG_IEEE_BLE_1 0xFFFFFFFF //位[63:32]
    #endif

    //##############################
    //闪存擦除设置
    //##############################

    #ifndef SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N
    //#define SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N 0x0 //启动期间检测到的任何芯片擦除请求都将被忽略
    #define SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N 0x1 //启动期间检测到的任何芯片擦除请求都将由启动 FW 执行
    #endif

    #ifndef SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N
    //#define SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N 0x0 //禁用引导加载程序组擦除功能
    #define SET_CCFG_ERASE_CONF_BANK_ERASE_DIS_N 0x1 //启用引导加载程序组擦除功能
    #endif

    //##############################
    //闪存映像有效
    //##############################
    #ifndef SET_CCFG_IMAGE_VALID CONF_IMAGE_VALID
    #define SET_CCFG_IMAGE_VALID CONF_IMAGE_VALID 0x00000000 //闪存映像有效
    //#define SET_CCFG_IMAGE_VALID CONF_IMAGE_VALID //闪存映像无效,请调用 bootloader
    #endif

    //##############################
    //闪存扇区写保护
    //##############################
    #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

    //##############################
    //在高速缓存或 GPRAM 之间进行选择
    //##############################
    #ifndef SET_CCFG_Size_and_DIS_FLAGS_DIS_GPRAM
    //#define SET_CCFG_SIZE 与 DIS_FLAGS_DIS_GPRAM 0x0 //缓存被禁用,GPRAM 在0x11000000-0x11001FFF 处可用
    #define SET_CCFG_SIZE 和 DIS_FLAGS_DIS_GPRAM 0x1 //启用高速缓存和禁用 GPRAM (不可用)
    #endif

    //##############################
    //选择 TCXO
    //##############################
    #ifndef SET_CCFG_Size_and_DIS_FLAGS_DIS_TCXO
    #define SET_CCFG_SIZE 和 DIS_FLAGS_DIS_TCXO 0x1 //禁用 TCXO
    //#define SET_CCFG_SIZE 和 DIS_FLAGS_DIS_TCXO 0x0 //启用 TXCO
    #endif

    //
    //
    //不应修改的 CCFG 值。
    //
    //
    #define SET_CCFG_SIZE 和 DIS_FLAGS_SIZE = CCFG 0x0058
    #define SET_CCFG_SIZE 和 DIS_FLAGS_DISABLE_FLAGS (CCFG_SIZE 和 DIS_FLAGS_DISABLE_FLAGS_M >> CCFG_SIZE 和 DIS_FLAGS_DISABLE_FLAGS_S)

    #define SET_CCFG_MODE_CONF_VDDR_EXT_LOAD 0x1
    #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

    //
    //
    //将位字段连接到字。
    //请勿编辑!
    //
    //
    #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_EMING_S)|~CCFG_EXT_LF_CLK_RTC_EMING_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_DIATE_EN << CCFG_MODE_CONF_1_ALT_DCDC_DIATE_EN_S))|~CCFG_MODE_CONF_1_ALT_DCDC_DIATE_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_DET_BIAS_INIT << CCFG_MODE_CONF_1_DET_BIAS_INIT_S))|~CCFG_MODE_CONF_1_DET_BIAS_INIT_M)&\
    (((uint32_t)(SET_CCFG_MODE_CONF_1_DELT_IBIBIAS_OFFSET << CCFG_MODE_CONF_1_DET_BIAS_OFFSET_S)|~CCFG_MODE_CONF_1_DET_BIAS_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 和 DIS_FLAGS (\
    (((uint32_t)(SET_CCFG_SIZE_AND_DIS_FLAGS_SIZE_OD_CCFG << CCFG_SIZE_AND_DIS_FLAGS_SIZE_OL_CCFG_S))|~CCFG_SIZE_AND_DIS_FLAGS_SIZE_OD_CCFG_M)&\
    (((uint32_t)(SET_CCFG_SIZE_AND_DIS_FLAGS_DISABLE_FLAGS << CCFG_SIZE_AND_DIS_FLAGS_DISABLE_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_DET_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)|~CCFG_MODE_CONF_VDDR_TRIM_SLEEP_DELTA)和\
    (((uint32_t)(SET_CCFG_MODE_CONF_DCDC_RELEG</CCFG_MODE_CONF_DCDC_RELEGE_S)|~CCFG_MODE_CONF_DCDC_REGIT_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_LEV<< 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_Δ 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))|~CCFG_ERASE_CONF_CHIPLE_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_TI_OPTIONS_TI_FA_ENABLE_S)|~CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE_M))

    #define DEFAULT_CCFG_CCFG_TAP_0 (\
    (((uint32_t)(SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE << CCFG_TAP_0_CPU_DAP_ENABLE_S)|~CCFG_CCFG_TAP_0_CPU_DAP_ENABLE_M)和\
    (((uint32_t)(SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE << CCFG_TAP_0_PRCM_TAP_ENABLE_S)|~CCFG_CCFG_TAP_0_PRCM_TAP_ENABLE_M)和\
    (((uint32_t)(SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE << CCFG_TAP_0_TEST_TAP_ENABLE_S))|~CCFG_CCFG_TAP_0_TAP_TAP_ENABLE_M)

    #define DEFAULT_CCFG_CCFG_TAP_DAP_1 (\
    (((uint32_t)(SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE << CCFG_TAP_1_PBIST2_TAP_ENABLE_S)|~CCFG_CCFG_TAP_1_PBIST2_TAP_ENABLE_M)和\
    (((uint32_t)(SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE << CCFG_CCFG_TAP_1_PBIST1_TAP_ENABLE_S))|~CCFG_CCFG_TAP_1_PBIST1_ENABLE_M)和\
    (((uint32_t)(SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE << CCFG_TAP_1_WUC_TAP_1_ENABLE_S))|~CCFG_CCFG_TAP_1_WUC_TAP_1_WUC_TAP_ENABLE_M)

    #define DEFAULT_CCFG_IMAGE_VALAR_CONF (\
    (((uint32_t)(SET_CCFG_IMAGE_VALLED_CONF_IMAGE_VALID << CCFG_IMAGE_VALLED_CONF_IMAGE_VALLE_S)|~CCFG_IMAGE_VALLED_CONF_IMAGE_VALLE_M))

    #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

    //
    //
    //锁定页面中的客户配置区域
    //
    //
    #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 =
    其他
    const ccfg_t __ccfg __attribute__((section(".ccfg"))__attribute__((已用))=
    #endif
    {//映射到地址
    default_CCFG_EXT_LF_CLK,// 0x50003FA8 (0x50003xxx 映射到最后一个
    default_CCFG_MODE_CONF_1、//闪存中的0x50003FAC 扇区。
    DEFAULT_CCFG_SIZE 和 DIS_FLAGS,// 0x50003FB0与闪存大小无关)
    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_VALICE_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
    };

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

    如果您的浏览器插件已连接到电路板、则 SmartRF 闪存编程器将无法对其进行编程。 尝试关闭浏览器或重新启动 PC。

    为什么要附加 ccfg.c? 您是否进行了任何更改?

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您回答我的问题、我附加了 ccfg.c 文件、因为我创建了 CC2650定制板、所以我问我的 ccfg.c 文件是否有任何问题?

    当我插入时、XDS110调试器始终闪烁两次、器件始终无法检测到、因此我必须执行强制批量擦除、以便 SmartRF 闪存编程器能够检测到器件

    谢谢、
    Usman