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.

unresolved symbol PWMCC26XX_fxnTable, first referenced in <whole-program>

Other Parts Discussed in Thread: CC2650, SYSBIOS

I'm trying my hardest to implement some PWM using the instructions that are in the forum, but I keep running into little issues like this which I can never seem to find the source of.

The only mention on PWMCC26XX_fxnTable is in my CC2650_LAUNCHXL.c file. 

extern const PWM_FxnTable PWMCC26XX_fxnTable;

//PWM configuration (used as PWM_Handle by driver and application)
const PWM_Config PWM_config[CC2650_PWMCOUNT+1] = {
  { &PWMCC26XX_fxnTable, &pwmCC26xxObjects[0], &pwmCC26xxHWAttrs[0] },
//  { &PWMCC26XX_fxnTable, &pwmCC26xxObjects[1], &pwmCC26xxHWAttrs[1] },
//  { &PWMCC26XX_fxnTable, &pwmCC26xxObjects[2], &pwmCC26xxHWAttrs[2] },
//  { &PWMCC26XX_fxnTable, &pwmCC26xxObjects[3], &pwmCC26xxHWAttrs[3] },
//  { &PWMCC26XX_fxnTable, &pwmCC26xxObjects[4], &pwmCC26xxHWAttrs[4] },
//  { &PWMCC26XX_fxnTable, &pwmCC26xxObjects[5], &pwmCC26xxHWAttrs[5] },
//  { &PWMCC26XX_fxnTable, &pwmCC26xxObjects[6], &pwmCC26xxHWAttrs[6] },
//  { &PWMCC26XX_fxnTable, &pwmCC26xxObjects[7], &pwmCC26xxHWAttrs[7] },
  { NULL,               NULL,                 NULL                 }
};

Within my .c file I have included the following:

#include <ti/drivers/PWM.h>
#include <ti/drivers/pwm/PWMTimerCC26XX.h>
#include <ti/drivers/timer/GPTimerCC26XX.h>

I also have added virtual folders in the 'Drivers' folder of my project, containing the files.

I notice that it doesn't strictly say the problem is in the board .c file, so I'm not really sure what's going on. Any ideas anyone?

  • Hi Craig,

    I think your problem is due to a typo in the function table name.  Looking at board files from the latest release, the correct function table name is PWMTimerCC26XX_fxnTable (your code is missing the word 'Timer' in the name).  So your code should look like the following:

    extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
    
    /* PWM configuration (used as PWM_Handle by driver and application) */
    const PWM_Config PWM_config[CC2650_PWMCOUNT+1] = {
        { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
        { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
    ...
    };

    Can you make these corrections in your board file & give it a try?

    Regards,

    -- Emmanuel

  • I hadn't noticed that there. But I'm now getting the issue:

    unresolved symbol ti_sysbios_family_arm_lm4_Timer_getAvailMask__E, first referenced in C:/ti/tirtos_cc13xx_cc26xx_2_18_00_03/products/tidrivers_cc13xx_cc26xx_2_16_01_13/packages/ti/drivers/lib/drivers_cc26xxware.aem3<PWMTimerCC26XX.oem3>

    Edit: Strangely that error has gone, but I now have these!

    #10010 errors encountered during linking; "project_zero_app_cc2650launchxl.out" not built project_zero_app_cc2650launchxl C/C++ Problem
    <a href="file:/c:/ti/ccsv6/tools/compiler/dmed/HTML/10234.html">#10234-D</a> unresolved symbols remain project_zero_app_cc2650launchxl C/C++ Problem
    Field 'lo' could not be resolved PWMTimerCC26XX.c /project_zero_app_cc2650launchxl/Drivers/PWM line 334 Semantic Error
    Field 'lo' could not be resolved PWMTimerCC26XX.c /project_zero_app_cc2650launchxl/Drivers/PWM line 337 Semantic Error
    Field 'lo' could not be resolved PWMTimerCC26XX.c /project_zero_app_cc2650launchxl/Drivers/PWM line 367 Semantic Error
    gmake: *** [project_zero_app_cc2650launchxl.out] Error 1 project_zero_app_cc2650launchxl C/C++ Problem
    gmake: Target 'all' not remade because of errors. project_zero_app_cc2650launchxl C/C++ Problem
    Type 'Types_FreqHz' could not be resolved PWMTimerCC26XX.c /project_zero_app_cc2650launchxl/Drivers/PWM line 326 Semantic Error
    Type 'Types_FreqHz' could not be resolved PWMTimerCC26XX.c /project_zero_app_cc2650launchxl/Drivers/PWM line 351 Semantic Error
    unresolved symbol ti_sysbios_family_arm_lm4_Timer_getAvailMask__E, first referenced in C:/ti/tirtos_cc13xx_cc26xx_2_18_00_03/products/tidrivers_cc13xx_cc26xx_2_16_01_13/packages/ti/drivers/lib/drivers_cc26xxware.aem3<PWMTimerCC26XX.oem3> project_zero_app_cc2650launchxl C/C++ Problem
    unresolved symbol ti_sysbios_family_arm_lm4_Timer_setAvailMask__E, first referenced in C:/ti/tirtos_cc13xx_cc26xx_2_18_00_03/products/tidrivers_cc13xx_cc26xx_2_16_01_13/packages/ti/drivers/lib/drivers_cc26xxware.aem3<PWMTimerCC26XX.oem3> project_zero_app_cc2650launchxl C/C++ Problem

  • Hi Craig,

    Thanks for posting the error above. Unfortunately, the PWM driver is not supported for CC13xx/CC26xx devices in the TI-RTOS version you are using. This was a preliminary driver which was never intended to be used by customers.

    An official (& re-designed) PWM driver for CC13xx/CC26xx devices was added to the TI-RTOS 2.20 release. Not sure how feasible it may be for you, but if you want to use PWM I would recommend you download & use the latest TI-RTOS release.

    Let me know if this helps,
    -- Emmanuel
  • Hi Emmanuel,

    I am aware that the TI-RTOS drivers that come with the BLE stack do not support PWM, however there is a post detailing porting and us of the RTOS 2.20 drivers to a BLE simplelink project, and these are the drivers I am now using.

    Seems like a few of those errors may have been because I compiled while looking at some of the excluded c files. The only one two that are there after a rebuild are:

    unresolved symbol ti_sysbios_family_arm_lm4_Timer_getAvailMask__E, first referenced in C:/ti/tirtos_cc13xx_cc26xx_2_18_00_03/products/tidrivers_cc13xx_cc26xx_2_16_01_13/packages/ti/drivers/lib/drivers_cc26xxware.aem3<PWMTimerCC26XX.oem3> project_zero_app_cc2650launchxl C/C++ Problem
    unresolved symbol ti_sysbios_family_arm_lm4_Timer_setAvailMask__E, first referenced in C:/ti/tirtos_cc13xx_cc26xx_2_18_00_03/products/tidrivers_cc13xx_cc26xx_2_16_01_13/packages/ti/drivers/lib/drivers_cc26xxware.aem3<PWMTimerCC26XX.oem3> project_zero_app_cc2650launchxl C/C++ Problem

  • Managed to solve the problem with this thread here: 

    In case anyone finds this in future:

    For me (using project zero) I had to place this file in my app_ble_uartlog.cfg file;

    xdc.useModule('ti.sysbios.family.arm.lm4.Timer');

    That seemed to remove the error. In addition to the modification Emmanuel suggested (copying the RTOS board files into your project also fixes this). If you get errors it's likely due to not have the ADC, PWM, or Timer driver present in your project or your modified RTOS drivers folder.