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.

CC2650 CCFG

Hi,

1. The Customer Configuration registers (CCFG) are located at CCFG_BASE 0x50003000.
2. The user is given a way to overwrite these values via ccfg_appBLE.c (ccfg.c).
    In fact, the User MUST overwrite these values for production release.

3. Why the ccfg.c must be manually located at the FLASH section ".ccfg" ?
    Why can't it be like any other 'const' variable ?

4. Where is the code that copies the ".ccfg" section from Flash to hardware registers (0x50003000)?
    These values MUST be written to hardware very early at power-up.

Thanks,
Shlomi.S

  • Hi Shlomi,

    FCFG1_BASE cannot be changed because the information in ccfg area is referenced by ROM code as well.

    - Cetri
  • Shlomi,

    CCFG is always put at the last page of flash which is aliased to 0x50003000. Since boot ROM uses some of these fields to lock down debug access and flash erase/write to configured pages it needs to be in a fixed location.

    Our example projects are also delivered with a precompiled driverLib which looks for the data in this address to configure the device.

    The CCFG area is a .const area like any other but in a named section that is linked in at the end of flash. The data is written in as part of the application image.

    :.svend
  • Hi svend,

    1. The CCFG at 0x50003000 is a "normal" block of registers; much like the UART registers.

    2. These 0x50003000 registers are read and written directly within several places in code (i.e driverlib\osc.c).
        These registers are accessible to all and at any time.

    3. Once the CCFG registers at 0x50003000 have initialized with the ".ccfg" section, they are fully operational.
        Any code can access them directly to read and to write.

    4. So what is the reason for placing them in absolute address at Flash ?
        (..wasting a 4K of good Flash for 84 bytes).

    Thanks,
    Shlomi.S

  • Hi Shlomi

    The remaining space in the last sector of flash is not wasted and can be used by the linker. Please see Section 3.10 "Flash" in the BLE SW Developer's Guide (SWRU393). Specifically, the CCFG is described in Section 3.10.5 "Customer Configuration Area (CCA)".

    Best wishes