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-CC26X2R1: Enable Bootloader Backdoor with system config

Part Number: LAUNCHXL-CC26X2R1
Other Parts Discussed in Thread: SYSCONFIG, CC2652R

In the older sdk (3.20) I config the file ccfg_app_ble_rcosc_agama.c to enable Bootloader in the Bootloader settings area.

In the new sdk (4.2) I cant find this file and I changed with system config the configuration to enable the bootloader.

There is ccfg.c, But I changed it and the bootloader is not working.

Please advice how to enable the bootloader in SDK 4.20. Thanks.

  • To modify bootloader settings, go to "TI Devices -> Device Configuration" in syscfg. The changes you do here will end in ti-devices-config.c. You can find more information on which files syscfg generates my looking at this syscfg module: http://dev.ti.com/tirex/explore/node?node=AIouI6g4ejAMCyOe10iMKQ__pTTHBmu__LATEST

  • Attached is the sysconfig generated files and the config file itself,

    I made some changes like the btn and the led IO's and its working find, But although I have configured correctly the bootloader its still not working.

    (again its the same board and system that bootloader works on sdk 3.20)

    S.rar

  • I had test bootloader with SDK 4.10 and LAUNCHXL-CC26X2R. I am sure it works well on SDK 4.10. I can test it again on SDK 4.20 to help verifying this again.

  • I can confirm serial bootloader works in SDK 4.20. I check your attached S.rar and I don't see ti_devices_config.c inside to check if your sysconfig generates correct bootloader setting. I attach my ti_devices_config.c for your reference.

    /*
     *  ======== ti_devices_config.c ========
     *  Customer Configuration for CC26XX and CC13XX devices.
     *
     *  DO NOT EDIT - This file is generated by the SysConfig tool.
     *
     */
    
    //#####################################
    // Force VDDR high setting (Higher output power but also higher power consumption)
    // This is also called "boost mode"
    //#####################################
    
    // Use default VDDR trim
    #define CCFG_FORCE_VDDR_HH                              0x0        
    
    
    //#####################################
    // Power settings
    //#####################################
    
    // Use the DC/DC during recharge in powerdown
    #define SET_CCFG_MODE_CONF_DCDC_RECHARGE                0x0
    
    // Use the DC/DC during active mode
    #define SET_CCFG_MODE_CONF_DCDC_ACTIVE                  0x0
    
    
    //#####################################
    // Clock settings
    //#####################################
    
    // LF XOSC
    #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION               0x2
    
    // Don't apply cap-array delta
    #define SET_CCFG_MODE_CONF_XOSC_CAP_MOD                 0x1
    
    //#####################################
    // Special HF clock source setting
    //#####################################
    
    // HF source is a 48 MHz xtal
    #define SET_CCFG_MODE_CONF_XOSC_FREQ                    0x2    
    
    //#####################################
    // Bootloader settings
    //#####################################
    
    // Enable ROM boot loader
    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE            0xC5
    
    // Enabled boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_ENABLE                    0xC5
    
    // DIO number for boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER                0xb
    
    // Active low to open boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_LEVEL                     0x0
    
    
    //#####################################
    // Debug access settings
    //#####################################
    
    // Disable unlocking of TI FA option.
    #define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE           0x00
    
    // Access enabled if also enabled in FCFG
    #define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE          0xC5
    
    // Access enabled if also enabled in FCFG
    #define SET_CCFG_CCFG_TAP_DAP_0_PWRPROF_TAP_ENABLE      0xC5
    
    // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE         0x00
    
    // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE       0x00
    
    // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE       0x00
    
    // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_1_AON_TAP_ENABLE          0x00
    
    
    //#####################################
    // Select between cache or GPRAM
    //#####################################
    // Cache is enabled and GPRAM is disabled (unavailable)
    #define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM           0x1
    
    
    
    /*
     *  ======== Include Base Settings for device ========
     */
    
    #include <ti/devices/DeviceFamily.h>
    #include DeviceFamily_constructPath(startup_files/ccfg.c)
    

  • No ti_devices_config.c file cant be found not in the file system or in any of the project includes,

    (searched in all samples: C:\ti\simplelink_cc13x2_26x2_sdk_4_20_00_35\examples\rtos\CC26X2R1_LAUNCHXL\ble5stack)

    I'm using IAR and I found this text in "project_zero.syscfg":

    /* ======== Device ======== */
    // Temporarily disable ti_devices_config.c generation
    var device = scripting.addModule("ti/devices/CCFG");
    device.enableCodeGeneration = false;

  • Do you use sysconfig to config bootloader first?

  • Yes here are the steps:

    I started a new project from the samples (using IAR) and then just edited the syscfg file with system config.

    system config showing error "Setting up SysConfig... Cannot specify --board without --product"

    so I opened code composer, imported the same sample project, just opened the syscfg file with ccs system config, save it and copied it to the IAR project.

    now the system config app can open the syscfg file from the IAR project, and now I'm editing the file and made changes.

    changed some IO and BEL configuration works but cant change the bootloader settings.

    So it's because the configuration of the CCFG module I just dont know what to change to make it work. 

  • I found it,

    on the syscfg file change this to true:

    CCFG.enableCodeGeneration     = true;

    now system config will create new file in the project folder name: ti_devices_config.c

    add this file to the project files in IAR. Its adds defines to the CCFG.c file basic configuration will be overwritten.

    please TI, it's took long enough to learn how to work with your mcu's dont make so many changes :\

  • Maybe try to use CCS instead of IAR and it might make your developing life on CC2652R easier.

  • Hi Netanel,

    Seems like you use the project_zero syscfg as your base and in that case I can understand the confusion as for enabling CCFG generation. Project zero is an OAD application project, as such it does not feature a CCFG section (as this is part of the bootloader image). This means that CCFG generation is explicitly turned of, as the application should not contain it.

    This also means that in a OAD project, to enable the Serial Bootloader in the CCFG, you would need to do this in the bootloader application project as this is the project owning the CCFG section of the device. If your project is not an OAD one, then I suggest you use one of the "non OAD" BLE projects sysconfig files as a base.