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/CC2650MODA: Simple_Peripheral application launch halted: NOROM_SetupTrimDevice() at chipinfo.c 0x000093E4

Part Number: CC2650MODA
Other Parts Discussed in Thread: LAUNCHXL-CC2640R2, CC2650, BLE-STACK, CC2640,

Tool/software: TI-RTOS

I'm using your LaunchXL-cc2640R2 to test and develop on. Launching and debugging works fine on that device onboard.

But when i plug the debug cable into your cc2650 boosterPack, the module application doesn't launch.

The booster pack module does successfully program and launch the debug session, though.  When i pause the debug session, the call stack is stuck reading: NOROM_SetupTrimDevice() at chipinfo.c 0x000093E4

  • Hi Anthony,
    What SDK version are you using on CC2650? Please note that the CC2640R2 SDK does not work on the CC2650 since it does not have the BLE-Stack in ROM.
  • I was not able to locate the CC2650 sdk in the resource explorer; only the CC2640R2.

    So that's the sdk I'm using rev 2.40.0.32

    I was reading through some other posts on this forum and was given to understand the 2 modules were interchangeable.  I assumed that was why there wasn't a resource download for it.

    After your response I revisited the Resource Explorer and needed updated before I could connect to the cloud.  Still I don't see an sdk for the CC2650.

    what should I be using?

  • Hi Anthony,
    CC2640 and CC2650 was (and is interchangeable). However, the CC2640R2 has updated ROM and deviates from the family in that sense. The CC2640R2 is also part of the unified simplelink platform whilst CC2650/CC2640 aren't, which is why you wont find the resources you are looking for in Resource Explorer.

    For CC2650 SDK, please refer to www.ti.com/.../BLE-STACK where you will find BLEv2.2.2 (Released 28-MAR-2018)
  • Thank you for the link.

    i think i've successfully migrated my code to this library package. But I'm still having trouble getting all of the various libraries/project configurations setup correctly.

    My project builds, but fails during linking. This is the error I'm seeing:

    simple_peripheral_cc2650lp_app unresolved symbol GPIOCC26XX_config, first referenced in C:/ti/tirtos_cc13xx_cc26xx_2_21_01_08/products/tidrivers_cc13xx_cc26xx_2_21_01_01/packages/ti/drivers/lib/drivers_cc26xxware.aem3<GPIOCC26XX.oem3> C/C++ Problem


    I've tried including the gpio library by both of the following methods and I still get the same error.

    #include <ti/drivers/GPIO.h>
    #include <ti/drivers/gpio/GPIOCC26XX.h>
  • Hello Anthony,
    Please review your board file and make sure it is based on the same structure as in BLEv2.2.2 (Released 28-MAR-2018).
  • I'm not exactly sure what you mean by this.

    I was able to resolve the linker issues, but still am not able to use the uart library as before.

    By setting breakpoints, I was able to identify where the processor is getting hung up though.

    The problem occurs upon calling Uart_Open; which subsequently calls

    UARTCC26XX_open,

    UARTCC26XX_initIO,

    PIN_open,

    Semaphore_pend

    Semaphore_pend never returns from there.

    I was thinking maybe the pin initialization for CC2650MODA board definitions were causing a conflict but the same occurs even if I comment out


    PIN_init(BoardGpioInitTable) from main()

  • Hello Anthony,

    Can you check that you board file follow the format of the board files in the 2.2.2 sdk:

    C:\ti\simplelink\ble_sdk_2_02_02_25\src\boards\CC2650_LAUNCHXL

    Specifically the UART section  ( and all other for that sake):

    /*
     *  ============================= UART begin ===================================
     */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(UART_config, ".const:UART_config")
    #pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
    #endif
    
    /* Include drivers */
    #include <ti/drivers/UART.h>
    #include <ti/drivers/uart/UARTCC26XX.h>
    
    /* UART objects */
    UARTCC26XX_Object uartCC26XXObjects[CC2650_LAUNCHXL_UARTCOUNT];
    
    /* UART hardware parameter structure, also used to assign UART pins */
    const UARTCC26XX_HWAttrsV2 uartCC26XXHWAttrs[CC2650_LAUNCHXL_UARTCOUNT] = {
        {
            .baseAddr       = UART0_BASE,
            .powerMngrId    = PowerCC26XX_PERIPH_UART0,
            .intNum         = INT_UART0_COMB,
            .intPriority    = ~0,
            .swiPriority    = 0,
            .txPin          = Board_UART_TX,
            .rxPin          = Board_UART_RX,
            .ctsPin         = PIN_UNASSIGNED,
            .rtsPin         = PIN_UNASSIGNED
        }
    };
    
    /* UART configuration structure */
    const UART_Config UART_config[] = {
        {
            .fxnTablePtr = &UARTCC26XX_fxnTable,
            .object      = &uartCC26XXObjects[0],
            .hwAttrs     = &uartCC26XXHWAttrs[0]
        },
        {NULL, NULL, NULL}
    };
    /*
     *  ============================= UART end =====================================

  • I figured out the problem with the semaphore.

    I needed to replace the project symbol definition CC2650_LAUNCHXL with BOOSTXL_CC2650MA.

    Doing this removed a pin that was a problem for initialization related to the external flash SPI_CS.

    That pin definition was causing PIN_init to return an error before the semaphore handle was created.

  • Thanks for sharing the info.