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.

Pre-release CC26XX / CC13XX PWM and GPTimer driver

Other Parts Discussed in Thread: CC2650, BLE-STACK, SYSBIOS, CC1310

There have been a lot of requests from customers on how to use the GPTimers to generate PWM outputs on the CC26XX.

With the complexity of the devices and the power management being handled by TI RTOS this can be a bit complex and we have therefore made a PWM driver and a GPTimer driver that is posted to this thread.

These drivers will work with TI RTOS >= 2.13.00.06 and will be officially included in the TI RTOS February release (unfortunately we were to late for the December release).

Features GPTimer driver

  • Support for both split (16+8 bits) and concatenated mode (32-bit) timer usage giving you up to 8 (or 4) timers in total
  • Modes
    • Oneshot mode
    • Periodic mode
    • Edge count - capture and count number of input edges from pins (falling, rising or both)
    • Edge time - capture and store time when input edge occured (falling, rising or both)
    • PWM
  • Set load and match value of timers
  • Built-in power management
  • Interrupt generation for match, capture and timeout
  • Debug stall - halt the timer when the debugger halts

Features PWM driver

  • Generates up to 8x PWM ouputs
  • Configurable period in microseconds, Hertz or raw timer counts
  • Configurable duty cycle in microseconds, fraction of period or raw timer counts
  • Duty and period can be changed at run-time
  • Configurable Idle level (output stops at this level when timer is not running)

None of the timers support DMA at the moment as this requires changes to the current DMA driver.

Usage

  • Add the necessary hardware descriptors, objects and configuration to your board files as shown in Board.c/h.
  • Add a compiler search path to the drivers base or add the drivers to your TI RTOS installation
  • Add the driver source to your workspace
  • Follow the examples included (main_*.c)

Let us know if you have any questions / feedback in this thread and we will try our best to help out!

4760.gptimer_pwm_cc26xx_cc13xx.zip

Update 2015-12-17: Modified timer driver to compile in CCS without enabling C99 mode

Update 2016-02-16 : Needed modification for using PWM/GPTimer driver with TI-RTOS version >=2.15, red font : original content ; green font : updated content 

1. GPTimerCC26XX.h

#include <ti/sysbios/family/arm/cc26xx/Power.h>
#include <ti/sysbios/family/arm/cc26xx/PowerCC2650.h>

to

#include <ti/drivers/Power.h>
#include <ti/drivers/power/PowerCC26XX.h>

2. change Power_SB_DISALLOW to PowerCC26XX_SB_DISALLOW in GPTimerCC26xx.c

3. For board.c, change the following 

{.baseAddr = GPT0_BASE, .intNum = INT_TIMER0A, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0A, },

{.baseAddr = GPT0_BASE, .intNum = INT_TIMER0B, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0B, },

to

{.baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, }, 

{.baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },

4. PWMCC26XX.c, you can either comment out the log_error or just change the duty/period to dutyValue/periodValue if you got compile error. 

Regards,
Svend

  • Thanks so much, Svend!
  • Thanks a lot! 

    I need help in filling these sections of the board file. Please help


    // GPTimer hardware attributes, one per timer unit (Timer 0A, 0B, 1A, 1B..)
    const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_GPTIMERUNITSCOUNT] = {
    {.baseAddr = GPT0_BASE, 0x0000 0004 = INT_TIMER0A, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0A, },

    };

    // GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..)
    GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_GPTIMERCOUNT];

    // GPTimer configuration (used as GPTimer_Handle by driver and application)
    const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_GPTIMERUNITSCOUNT] = {
    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A},
    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B},

    };

    // PWM configuration, one per PWM output
    PWMCC26XX_HwAttrs pwmCC26xxHWAttrs[CC2650_PWMCOUNT] = {
    { .pwmPin = Board_PWMPIN0, .gpTimerUnit = CC2650_GPTIMER0A } ,
    { .pwmPin = Board_PWMPIN1, .gpTimerUnit = CC2650_GPTIMER0B } ,
    };

    // PWM object, one per PWM output
    PWMCC26XX_Object pwmCC26xxObjects[CC2650_PWMCOUNT];


    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] },

    { NULL, NULL, NULL }
    };

    I am using Timer A, GPT0 peripheral.

  • Hi Ramya,

    In the Board.h file, comment out the ones you are not using in the enum's and do the same in the Board.c file. If you are only using GPT0A then you have only 1 PWM output and can remove the others.

    Regards,
    Svend
  • As an example for 1x PWM output using GPT0A:

    /* Board.h */
    
    typedef enum CC2650_GPTimerName {
        CC2650_GPTIMER0A = 0,
        CC2650_GPTIMERUNITSCOUNT
    } CC2650_GPTimerName;
    
    typedef enum CC2650_GPTimers {
        CC2650_GPTIMER0 = 0,
        CC2650_GPTIMERCOUNT
    } CC2650_GPTimers;
    
    typedef enum CC2650_PWM {
        CC2650_PWM0 = 0,    
        CC2650_PWMCOUNT
    } CC2650_PWM;
    
    #define Board_PWMPIN0  IOID_25     //7x7 LED1
    
    /* Board.c */
    
    // GPTimer hardware attributes, one per timer unit (Timer 0A, 0B, 1A, 1B..)
    const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_GPTIMERUNITSCOUNT] = {
        {.baseAddr = GPT0_BASE, .intNum = INT_TIMER0A, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
    };
    
    // GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..)
    GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_GPTIMERCOUNT];
    
    // GPTimer configuration (used as GPTimer_Handle by driver and application)
    const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_GPTIMERUNITSCOUNT] = {
        { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A},
    };
    
    // PWM configuration, one per PWM output
    PWMCC26XX_HwAttrs pwmCC26xxHWAttrs[CC2650_PWMCOUNT] = {
        { .pwmPin = Board_PWMPIN0, .gpTimerUnit = CC2650_GPTIMER0A } ,
    };
    
    // PWM object, one per PWM output
    PWMCC26XX_Object pwmCC26xxObjects[CC2650_PWMCOUNT];
    
    
    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] },
      { NULL,               NULL,                 NULL                 }
    };

  • I'm sure I'm being a bit naive here, as I haven't been using the CC26xx very long, but as I understand it, this is a driver for TI-RTOS, not for the BLE-Stack? I've got a project I'm currently developing that needs both PWM (which I've hacked together on my own) and Input Capture (which I haven't gotten working yet) and is based on the example SimpleBLEPeripheral project that comes with the BLE-Stack.

    I downloaded the latest version of the TI-RTOS (2.14.03.28) through the app center, and have changed the version that my SimpleBLEPeripheral based project uses in the Properties->General->RTSC Tab from 2.13.0.06 to 2.14.3.28. But now when I attempt to build the project, I get the following errors:

     - cannot open source file "driverlib/ccfgread.h" in c:\ti\tirtos_simplelink_2_14_03_28\products\bios\_6_42_03_35\packages\ti\sysbios\family\arm\cc26xx\Power.c

     - cannot open source file "driverlib/setup.h" in c:\ti\tirtos_simplelink_2_14_03_28\products\bios\_6_42_03_35\packages\ti\sysbios\family\arm\cc26xx\Power.c

    I've tried wiping out my c:\ti directory, reinstalling everything, and then starting from the stock SimpleBLEPeripheral project. It builds fine with RTSC version 2.13.0.06, but not with the new 2.14.3.28 version.

    I'd like to get it building with the latest version of TI-RTOS, so that way I can use the preview driver's you've offered up Svend. Is there a minimal step by step I should follow to get it working? Or any advice anyone can offer?

    Thanks for the time,

    -Ben

  • The PWM driver is indeed a TIRTOS driver. It can be used together with the BLE Stack as the stack is essentially a TIRTOS task/thread.

    The current release of the stack is based on the previous version of TIRTOS, 2.13.0.06. I would recommend working wit that. The PWM driver will work with this older TIRTOS as far as i understand.
  • Hello Ben,

    Benjamin Foote said:
    I'd like to get it building with the latest version of TI-RTOS, so that way I can use the preview driver's you've offered up Svend. Is there a minimal step by step I should follow to get it working? Or any advice anyone can offer?

    As  mentions, this driver has also been tested on TI RTOS 2.13.00.06. We are planning on providing an upgrading guide for the latest TI RTOS for SimpleBLEPeripheral but we are waiting for the 2.15 version to come out next week as there are a few major changes in this version (power control is moved to a separate driver instead of being part of the kernel).

    Regards,
    Svend

  • Hah...I'm an idiot for not realizing that you mentioned it would work with the version of TI-RTOS that comes with the latest BLE-Stack.

    I'll copy it into the older TI-RTOS folder and give it a shot.

    Thanks again for the help.

    -Ben

  • Hi,

    Well i am obsviously new to CC2650 and despite the new posts, i cant get a simple timer working..

    I am using smartRF06 and CC2650 EM

    When i try the example in the GPTimerCC26XX.h, i have

    Types_FreqHz  freq; undefined,

    Where i can get that from ? I have tried, (maybe not hard enough?) to search in the forum and documentation files but cant find anything to help.

    I also have a i variable undefined, declared in the For loop IN GPTimerCC26XX.c, which i believe is due to a different C version i am using ? or am i wrong ?

    Using my config, can someone be kind enough to upload a zip containing the project to import ?

    All i want to do is, within the TI-RTOS, using a timer up shot for as delay function.

    Thanks

    Update; I have attached a zip of what i have tried, using the help of this thread, (main_gptimer_edgetime.c), but errors while compiling...test.zip

  • Hello Mike,
    There is a include statement not shown in the example which should have been there:
    #include <xdc/runtime/Types.h>

    If you need a simple delay you can also do this using the Clock module or Task_sleep in TI RTOS.

    Which variable is it that you are not finding?

    .:Svend
  • Hi,

    Thanks for the reply, but... still not working, despite the include you mention.

    I have attached the Console log.txt if you feel like having a look, i have various files that cant be opened.

    I ask again, but if anyone can post a full zip with a timer example, as I seem to spend quite some time copying files/lines and then debugging. Thanks

    1526.log.txt
    **** Build of configuration Debug for project test ****
    
    "C:\\ti\\CCS\\ccsv6\\utils\\bin\\gmake" -k all 
    making ../src/sysbios/sysbios.aem3 ...
    gmake[1]: Entering directory `C:/ti/CCS/Workspaces/CC2650/test/src/sysbios'
    Preprocessing library source files ...
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled__BIOS_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_knl_Clock_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.knl.Clock_config_lib.pp] Error 255
    gmake[1]: *** [mangled_knl_Idle_lib.pp] Error 255
    gmake[1]: *** [mangled_knl_Intrinsics_lib.pp] Error 255
    gmake[1]: *** [mangled_knl_Event_lib.pp] Error 255
    gmake[1]: *** [mangled_knl_Mailbox_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.knl.Mailbox_config_lib.pp] Error 255
    gmake[1]: *** [mangled_knl_Queue_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.knl.Queue_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_knl_Semaphore_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.knl.Semaphore_config_lib.pp] Error 255
    gmake[1]: *** [mangled_knl_Swi_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_knl_Swi_andn_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.knl.Swi_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_knl_Task_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.knl.Task_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.knl.Clock_TimerProxy_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.knl.Task_SupportProxy_config_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.BIOS_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.BIOS_RtsGateProxy_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_arm_m3_Hwi_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.family.arm.m3.Hwi_config_lib.pp] Error 255
    gmake[1]: *** [mangled_arm_m3_TaskSupport_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.family.arm.m3.TaskSupport_config_lib.pp] Error 255
    gmake[1]: *** [mangled_arm_cc26xx_Boot_lib.pp] Error 255
    gmake[1]: *** [mangled_arm_cc26xx_Power_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_arm_cc26xx_Power_standbyPolicy_lib.pp] Error 255
    gmake[1]: *** [mangled_arm_cc26xx_Power_calibrateRCOSC_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_arm_cc26xx_TimerGPT_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_arm_cc26xx_Timer_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.family.arm.cc26xx.Timer_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_arm_cc26xx_TimestampProvider_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.family.arm.cc26xx.TimestampProvider_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_heaps_HeapMem_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.heaps.HeapMem_config_lib.pp] Error 255
    gmake[1]: *** [mangled_heaps_HeapNull_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.heaps.HeapMem_Module_GateProxy_config_lib.pp] Error 255
    gmake[1]: *** [mangled_hal_Hwi_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_hal_Hwi_stack_lib.pp] Error 255
    gmake[1]: *** [mangled_hal_Hwi_startup_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.hal.Hwi_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.hal.Hwi_HwiProxy_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_gates_GateHwi_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.gates.GateHwi_config_lib.pp] Error 255
    gmake[1]: *** [mangled_gates_GateMutex_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.gates.GateMutex_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_xdc_noinit_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_Assert_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_Core-mem_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Core-smem_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_Core-label_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Core-params_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Diags_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Error_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc.runtime.Error_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Gate_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Log_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Memory_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc.runtime.Memory_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Registry_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Startup_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_System_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.System_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_SysCallback_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.SysCallback_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Text_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Timestamp_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.Timestamp_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.Memory_HeapProxy_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.System_Module_GateProxy_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.Timestamp_SupportProxy_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: Target `all' not remade because of errors.
    gmake[1]: Leaving directory `C:/ti/CCS/Workspaces/CC2650/test/src/sysbios'
    gmake: *** [../src/sysbios/sysbios.aem3] Error 2
    'Building file: ../Board.c'
    'Invoking: ARM Compiler'
    "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path="C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --include_path="C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx" --include_path="C:/ti/CCS/Workspaces/CC2650/test" --include_path="C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on --preproc_with_compile --preproc_dependency="Board.pp" --cmd_file="configPkg/compiler.opt" "../Board.c"
    "..\Board.h", line 11: fatal error #1965: cannot open source file "driverlib/ioc.h"
    
    >> Compilation failure
    1 catastrophic error detected in the compilation of "../Board.c".
    Compilation terminated.
    gmake: *** [Board.obj] Error 1
    'Building file: ../ccfg.c'
    'Invoking: ARM Compiler'
    "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path="C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --include_path="C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx" --include_path="C:/ti/CCS/Workspaces/CC2650/test" --include_path="C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on --preproc_with_compile --preproc_dependency="ccfg.pp" --cmd_file="configPkg/compiler.opt" "../ccfg.c"
    "../ccfg.c", line 50: fatal error #1965: cannot open source file "startup_files/ccfg.c"
    1 catastrophic error detected in the compilation of "../ccfg.c".
    Compilation terminated.
    
    >> Compilation failure
    gmake: *** [ccfg.obj] Error 1
    'Building file: ../main_gptimer_edgetime.c'
    'Invoking: ARM Compiler'
    "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path="C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --include_path="C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx" --include_path="C:/ti/CCS/Workspaces/CC2650/test" --include_path="C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on --preproc_with_compile --preproc_dependency="main_gptimer_edgetime.pp" --cmd_file="configPkg/compiler.opt" "../main_gptimer_edgetime.c"
    "C:/ti/tirtos_simplelink_2_13_00_06/packages/ti/drivers/PIN.h", line 539: fatal error #1965: cannot open source file "inc/hw_types.h"
    1 catastrophic error detected in the compilation of "../main_gptimer_edgetime.c".
    Compilation terminated.
    
    >> Compilation failure
    gmake: *** [main_gptimer_edgetime.obj] Error 1
    'Building file: ../empty_min.cfg'
    'Invoking: XDCtools'
    "C:/ti/CCS/xdctools_3_31_01_33_core/xs" --xdcpath="C:/ti/tirtos_simplelink_2_13_00_06/packages;C:/ti/tirtos_simplelink_2_13_00_06/products/bios_6_42_00_08/packages;C:/ti/tirtos_simplelink_2_13_00_06/products/uia_2_00_02_39/packages;C:/ti/CCS/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M3 -p ti.platforms.simplelink:CC2650F128 -r release -c "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6" --compileOptions "-mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path=\"C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include\" --include_path=\"C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx\" --include_path=\"C:/ti/CCS/Workspaces/CC2650/test\" --include_path=\"C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101\" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on  " "../empty_min.cfg"
    configuring empty_min.xem3 from package/cfg/empty_min_pem3.cfg ...
    generating custom ROM library makefile ... 
    Starting build of library sources ...
    making C:/ti/CCS/Workspaces/CC2650/test/src/sysbios/sysbios.aem3 ...
    gmake[1]: Entering directory `C:/ti/CCS/Workspaces/CC2650/test/src/sysbios'
    Preprocessing library source files ...
    C:/Users/mtomasi/AppData/Local/Temp/make10144-2.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-3.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-4.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-5.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-6.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-7.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-8.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-9.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-a.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-b.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-c.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-d.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-e.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-f.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10144-10.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled__BIOS_lib.pp] Error 2
    gmake[1]: *** Waiting for unfinished jobs....
    gmake[1]: *** [mangled_knl_Clock_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Clock_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Idle_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Intrinsics_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Event_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Mailbox_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Mailbox_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Queue_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Queue_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Semaphore_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Semaphore_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Swi_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Swi_andn_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Swi_config_lib.pp] Error 2
    C:/Users/mtomasi/AppData/Local/Temp/make10144-1.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled_knl_Task_lib.pp] Error 2
    gmake[1]: Leaving directory `C:/ti/CCS/Workspaces/CC2650/test/src/sysbios'
    Build of libraries failed.
    gmake: *** [C:/ti/CCS/Workspaces/CC2650/test/src/sysbios/sysbios.aem3] Error 2
    error: xdc.cfg.SourceDir: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/cfg/SourceDir.xs", line 209: xdc.cfg.SourceDir : Build of generated source libraries failed: exit status = 2:
    
    js: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/cfg/Main.xs", line 160: Error: Configuration failed!
    xdctools_3_31_01_33_core\gmake.exe: *** [package/cfg/empty_min_pem3.xdl] Error 1
    xdctools_3_31_01_33_core\gmake.exe: *** Deleting file `package/cfg/empty_min_pem3.xdl'
    xdctools_3_31_01_33_core\gmake.exe: *** [package/cfg/empty_min_pem3.xdl] Deleting file `package/cfg/empty_min_pem3.h'
    xdctools_3_31_01_33_core\gmake.exe: *** [package/cfg/empty_min_pem3.xdl] Deleting file `package/cfg/empty_min_pem3.c'
    js: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    gmake: *** [configPkg/linker.cmd] Error 1
    gmake: Target `all' not remade because of errors.
    
    **** Build Finished ****
    

    The variable i was mentioning is the "i" declared in the For loop

    In the example, the I is declared in the parentheses i.e; For (uint8_t i = 0; ....)

    This declaration is not allowed in my compiler, and I thought it was due to the older C version my compiler is using.

    Thanks

  • Hello Mike,


    You need to use CCS v6.1 for support with the CC26XX series.

    It seems like you have not set up the workspace correctly. You have at least

    - Several build errors when building the TI RTOS kernel, probably due to incorrect setup of your workspace

    - Missing compiler search path for CC26XXWARE.

    Do you get a clean "empty" project to work? It seems you are using the "empty_min" project which do not have any power saving set up as far as I know.

    Regards,
    Svend

  • Hello,

    I think we need to go through some basic terms just to make sure we talk about the same thing.

    I use  Version: 6.1.1.00022, and have all my add on (TI-RTOS) updated.

    What do you mean by Workspace ? I thought the workspace was just a "assembly view of different various projects", therefore no configuration implemented ? How can i set it good or badly ?

    I was using the "empty min", I have just tried again now using the

    "TI-RTOS Examples/CC2650 Development Kits/Driver Examples/Empty Examples/Empty Project" from the New CCS Project GUI.

    I am using the TI-RTOS for SimpleLink Wireless MCUs 2.13.0.06 (as mentioned, although i do have the 2.14.3.28, but untick)

    _Once the project created, I delete the "board.c" , "board.h" , and "empty.c"

    _Then I import the "board.c" , "board.h" , and "main_gptimer_edgetime.c" from the zip

    _I modify the "board.c" and "board.h" according to the post in this thread you posted on Dec 2, 2015 10:47 PM

    _I modify the function called in the empty.cfg to "taskFxn"

    _I add a folder in the includes by right click / properties from the project, then in "CCS Build/ARM Compiler/Include Options" i add the _main folder of the zip (note the zip is extracted)

    _And Finally i add the #include <xdc/runtime/Types.h>  in my "main_gptimer_edgetime.c" just after "board.h"

    but this still doesnt compile, see attached log.txt

    I am trying to read thing to take you off these basic problems, but i dont seem to find solutions, so thanks for your help on that.

    Regards

    7752.log.txt
    **** Build of configuration Debug for project test ****
    
    "C:\\ti\\CCS\\ccsv6\\utils\\bin\\gmake" -k all 
    'Building file: ../empty.cfg'
    'Invoking: XDCtools'
    "C:/ti/CCS/xdctools_3_31_01_33_core/xs" --xdcpath="C:/ti/tirtos_simplelink_2_13_00_06/packages;C:/ti/tirtos_simplelink_2_13_00_06/products/bios_6_42_00_08/packages;C:/ti/tirtos_simplelink_2_13_00_06/products/uia_2_00_02_39/packages;C:/ti/CCS/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M3 -p ti.platforms.simplelink:CC2650F128 -r release -c "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6" --compileOptions "-mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path=\"C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include\" --include_path=\"C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx\" --include_path=\"C:/ti/CCS/Workspaces/CC2650/test\" --include_path=\"C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101\" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on  " "../empty.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring empty.xem3 from package/cfg/empty_pem3.cfg ...
    generating custom ROM library makefile ... 
    Starting build of library sources ...
    making C:/ti/CCS/Workspaces/CC2650/test/src/sysbios/sysbios.aem3 ...
    gmake[1]: Entering directory `C:/ti/CCS/Workspaces/CC2650/test/src/sysbios'
    Preprocessing library source files ...
    C:/Users/mtomasi/AppData/Local/Temp/make6704-2.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-3.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-4.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-5.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-6.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-7.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-8.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-9.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-a.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-b.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-c.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-d.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-e.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-f.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make6704-10.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled__BIOS_lib.pp] Error 2
    gmake[1]: *** Waiting for unfinished jobs....
    gmake[1]: *** [mangled_knl_Clock_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Clock_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Idle_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Intrinsics_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Event_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Mailbox_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Mailbox_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Queue_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Queue_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Semaphore_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Semaphore_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Swi_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Swi_andn_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Swi_config_lib.pp] Error 2
    C:/Users/mtomasi/AppData/Local/Temp/make6704-1.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled_knl_Task_lib.pp] Error 2
    gmake[1]: Leaving directory `C:/ti/CCS/Workspaces/CC2650/test/src/sysbios'
    gmake: *** [C:/ti/CCS/Workspaces/CC2650/test/src/sysbios/sysbios.aem3] Error 2
    Build of libraries failed.
    error: xdc.cfg.SourceDir: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/cfg/SourceDir.xs", line 209: xdc.cfg.SourceDir : Build of generated source libraries failed: exit status = 2:
    
    js: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/cfg/Main.xs", line 160: Error: Configuration failed!
    gmake.exe: *** [package/cfg/empty_pem3.xdl] Error 1
    gmake.exe: *** Deleting file `package/cfg/empty_pem3.xdl'
    gmake.exe: *** [package/cfg/empty_pem3.xdl] Deleting file `package/cfg/empty_pem3.h'
    gmake.exe: *** [package/cfg/empty_pem3.xdl] Deleting file `package/cfg/empty_pem3.c'
    js: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    gmake: Target `all' not remade because of errors.
    
    **** Build Finished ****
    

  • Hi Mike,

    It might be related to some white space issues when compiling, I see you have the same errors as in this thread:

    e2e.ti.com/.../1626844

    Can you try if a clean, unmodified example project works fine?

    .:Svend
  • 0714.log.txt
    **** Build of configuration Debug for project test_2 ****
    
    "C:\\ti\\CCS\\ccsv6\\utils\\bin\\gmake" -k all 
    'Building file: ../empty.cfg'
    'Invoking: XDCtools'
    "C:/ti/CCS/xdctools_3_31_01_33_core/xs" --xdcpath="C:/ti/tirtos_simplelink_2_13_00_06/packages;C:/ti/tirtos_simplelink_2_13_00_06/products/bios_6_42_00_08/packages;C:/ti/tirtos_simplelink_2_13_00_06/products/uia_2_00_02_39/packages;C:/ti/CCS/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M3 -p ti.platforms.simplelink:CC2650F128 -r release -c "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6" --compileOptions "-mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path=\"C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include\" --include_path=\"C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx\" --include_path=\"C:/ti/CCS/Workspaces/CC2650/test_2\" --include_path=\"C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101\" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on  " "../empty.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring empty.xem3 from package/cfg/empty_pem3.cfg ...
    generating custom ROM library makefile ... 
    Starting build of library sources ...
    making C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios/sysbios.aem3 ...
    gmake[1]: Entering directory `C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios'
    Preprocessing library source files ...
    C:/Users/mtomasi/AppData/Local/Temp/make10556-2.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-3.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-4.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-5.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-6.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-7.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-8.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-9.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-a.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-b.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-c.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-d.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-e.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-f.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make10556-10.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled__BIOS_lib.pp] Error 2
    gmake[1]: *** Waiting for unfinished jobs....
    gmake[1]: *** [mangled_knl_Clock_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Clock_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Idle_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Intrinsics_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Event_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Mailbox_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Mailbox_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Queue_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Queue_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Semaphore_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Semaphore_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Swi_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Swi_andn_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Swi_config_lib.pp] Error 2
    C:/Users/mtomasi/AppData/Local/Temp/make10556-1.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled_knl_Task_lib.pp] Error 2
    gmake[1]: Leaving directory `C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios'
    gmake: *** [C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios/sysbios.aem3] Error 2
    Build of libraries failed.
    error: xdc.cfg.SourceDir: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/cfg/SourceDir.xs", line 209: xdc.cfg.SourceDir : Build of generated source libraries failed: exit status = 2:
    
    js: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/cfg/Main.xs", line 160: Error: Configuration failed!
    gmake.exe: *** [package/cfg/empty_pem3.xdl] Error 1
    gmake.exe: *** Deleting file `package/cfg/empty_pem3.xdl'
    gmake.exe: *** [package/cfg/empty_pem3.xdl] Deleting file `package/cfg/empty_pem3.h'
    gmake.exe: *** [package/cfg/empty_pem3.xdl] Deleting file `package/cfg/empty_pem3.c'
    js: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    gmake: Target `all' not remade because of errors.
    
    **** Build Finished ****
    
    log2.txt
    **** Build of configuration Debug for project test_2 ****
    
    "C:\\ti\\CCS\\ccsv6\\utils\\bin\\gmake" -k all 
    making ../src/sysbios/sysbios.aem3 ...
    gmake[1]: Entering directory `C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios'
    Preprocessing library source files ...
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled__BIOS_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_knl_Clock_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.knl.Clock_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_knl_Idle_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_knl_Intrinsics_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_knl_Event_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.knl.Mailbox_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_knl_Mailbox_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_knl_Queue_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.knl.Queue_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_knl_Semaphore_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.knl.Semaphore_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_knl_Swi_andn_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.knl.Swi_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_knl_Task_lib.pp] Error 255
    gmake[1]: *** [mangled_knl_Swi_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.knl.Task_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.knl.Clock_TimerProxy_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.knl.Task_SupportProxy_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.BIOS_config_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.BIOS_RtsGateProxy_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_arm_m3_Hwi_lib.pp] Error 255
    gmake[1]: *** [mangled_ti.sysbios.family.arm.m3.Hwi_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_arm_m3_TaskSupport_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.family.arm.m3.TaskSupport_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_arm_cc26xx_Power_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_arm_cc26xx_Power_standbyPolicy_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_arm_cc26xx_TimerGPT_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_arm_cc26xx_Timer_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_arm_cc26xx_Boot_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.family.arm.cc26xx.Timer_config_lib.pp] Error 255
    gmake[1]: *** [mangled_arm_cc26xx_Power_calibrateRCOSC_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.family.arm.cc26xx.TimestampProvider_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_arm_cc26xx_TimestampProvider_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.heaps.HeapMem_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.heaps.HeapMem_Module_GateProxy_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_heaps_HeapMem_lib.pp] Error 255
    gmake[1]: *** [mangled_heaps_HeapNull_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_hal_Hwi_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_hal_Hwi_stack_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_hal_Hwi_startup_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.hal.Hwi_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.hal.Hwi_HwiProxy_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_gates_GateHwi_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_ti.sysbios.gates.GateHwi_config_lib.pp] Error 255
    gmake[1]: *** [mangled_gates_GateMutex_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_ti.sysbios.gates.GateMutex_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_xdc_noinit_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Assert_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Core-mem_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Core-smem_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Core-label_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Core-params_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_Diags_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Error_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc.runtime.Error_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Gate_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_Log_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc_runtime_Memory_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    gmake[1]: *** [mangled_xdc.runtime.Memory_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_Registry_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_Startup_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_System_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.System_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_SysCallback_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.SysCallback_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_SysMin_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc_runtime_Text_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.Timestamp_config_lib.pp] Error 255
    gmake[1]: *** [mangled_xdc.runtime.Memory_HeapProxy_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc_runtime_Timestamp_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc.runtime.Timestamp_SupportProxy_config_lib.pp] Error 255
    'C:' is not recognized as an internal or external command,
    operable program or batch file.
    gmake[1]: *** [mangled_xdc.runtime.System_Module_GateProxy_config_lib.pp] Error 255
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    >> ERROR: no source files, nothing to do
    gmake[1]: Target `all' not remade because of errors.
    gmake[1]: Leaving directory `C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios'
    gmake: *** [../src/sysbios/sysbios.aem3] Error 2
    'Building file: ../Board.c'
    'Invoking: ARM Compiler'
    "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path="C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --include_path="C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx" --include_path="C:/ti/CCS/Workspaces/CC2650/test_2" --include_path="C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on --preproc_with_compile --preproc_dependency="Board.pp" --cmd_file="configPkg/compiler.opt" "../Board.c"
    "..\Board.h", line 11: fatal error #1965: cannot open source file "driverlib/ioc.h"
    1 catastrophic error detected in the compilation of "../Board.c".
    Compilation terminated.
    
    >> Compilation failure
    gmake: *** [Board.obj] Error 1
    'Building file: ../ccfg.c'
    'Invoking: ARM Compiler'
    "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path="C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --include_path="C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx" --include_path="C:/ti/CCS/Workspaces/CC2650/test_2" --include_path="C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on --preproc_with_compile --preproc_dependency="ccfg.pp" --cmd_file="configPkg/compiler.opt" "../ccfg.c"
    "../ccfg.c", line 50: fatal error #1965: cannot open source file "startup_files/ccfg.c"
    1 catastrophic error detected in the compilation of "../ccfg.c".
    Compilation terminated.
    
    >> Compilation failure
    gmake: *** [ccfg.obj] Error 1
    'Building file: ../main_gptimer_edgetime.c'
    'Invoking: ARM Compiler'
    "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path="C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --include_path="C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx" --include_path="C:/ti/CCS/Workspaces/CC2650/test_2" --include_path="C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on --preproc_with_compile --preproc_dependency="main_gptimer_edgetime.pp" --cmd_file="configPkg/compiler.opt" "../main_gptimer_edgetime.c"
    "C:/ti/tirtos_simplelink_2_13_00_06/packages/ti/drivers/PIN.h", line 539: fatal error #1965: cannot open source file "inc/hw_types.h"
    1 catastrophic error detected in the compilation of "../main_gptimer_edgetime.c".
    Compilation terminated.
    
    >> Compilation failure
    gmake: *** [main_gptimer_edgetime.obj] Error 1
    'Building file: ../empty.cfg'
    'Invoking: XDCtools'
    "C:/ti/CCS/xdctools_3_31_01_33_core/xs" --xdcpath="C:/ti/tirtos_simplelink_2_13_00_06/packages;C:/ti/tirtos_simplelink_2_13_00_06/products/bios_6_42_00_08/packages;C:/ti/tirtos_simplelink_2_13_00_06/products/uia_2_00_02_39/packages;C:/ti/CCS/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M3 -p ti.platforms.simplelink:CC2650F128 -r release -c "C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6" --compileOptions "-mv7M3 --code_state=16 --float_support=vfplib --abi=eabi -me --include_path=\"C:/ti/CCS/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include\" --include_path=\"C:/ti/Downloads Examples/gptimer_pwm_cc26xx_cc13xx\" --include_path=\"C:/ti/CCS/Workspaces/CC2650/test_2\" --include_path=\"C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_22_00_16101\" -g --define=DEBUG --define=ccs --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on  " "../empty.cfg"
    configuring empty.xem3 from package/cfg/empty_pem3.cfg ...
    generating custom ROM library makefile ... 
    Starting build of library sources ...
    making C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios/sysbios.aem3 ...
    gmake[1]: Entering directory `C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios'
    Preprocessing library source files ...
    C:/Users/mtomasi/AppData/Local/Temp/make8728-2.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-3.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-4.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-5.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-6.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-7.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-8.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-9.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-a.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-b.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-c.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-d.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-e.sh: 1: Syntax error: Unterminated quoted string
    C:/Users/mtomasi/AppData/Local/Temp/make8728-f.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled__BIOS_lib.pp] Error 2
    gmake[1]: *** Waiting for unfinished jobs....
    gmake[1]: *** [mangled_knl_Clock_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Clock_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Idle_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Intrinsics_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Event_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Mailbox_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Mailbox_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Queue_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Queue_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Semaphore_lib.pp] Error 2
    gmake[1]: *** [mangled_ti.sysbios.knl.Semaphore_config_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Swi_lib.pp] Error 2
    gmake[1]: *** [mangled_knl_Swi_andn_lib.pp] Error 2
    C:/Users/mtomasi/AppData/Local/Temp/make8728-10.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled_ti.sysbios.knl.Swi_config_lib.pp] Error 2
    C:/Users/mtomasi/AppData/Local/Temp/make8728-1.sh: 1: Syntax error: Unterminated quoted string
    gmake[1]: *** [mangled_knl_Task_lib.pp] Error 2
    gmake[1]: Leaving directory `C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios'
    gmake: *** [C:/ti/CCS/Workspaces/CC2650/test_2/src/sysbios/sysbios.aem3] Error 2
    Build of libraries failed.
    error: xdc.cfg.SourceDir: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/cfg/SourceDir.xs", line 209: xdc.cfg.SourceDir : Build of generated source libraries failed: exit status = 2:
    
    js: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/cfg/Main.xs", line 160: Error: Configuration failed!
    xdctools_3_31_01_33_core\gmake.exe: *** [package/cfg/empty_pem3.xdl] Error 1
    xdctools_3_31_01_33_core\gmake.exe: *** Deleting file `package/cfg/empty_pem3.xdl'
    xdctools_3_31_01_33_core\gmake.exe: *** [package/cfg/empty_pem3.xdl] Deleting file `package/cfg/empty_pem3.h'
    xdctools_3_31_01_33_core\gmake.exe: *** [package/cfg/empty_pem3.xdl] Deleting file `package/cfg/empty_pem3.c'
    js: "C:/ti/CCS/xdctools_3_31_01_33_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    gmake: *** [configPkg/linker.cmd] Error 1
    gmake: Target `all' not remade because of errors.
    
    **** Build Finished ****
    
    Hi,

    A clean example (empty minimal or empty project) is compiling/working fine.

    The timer still gives me compilation errors.

    I have importing the empty example from the resource explorer

    I have noticed, just after being imported, the empty.cfg doesnt show [TI-RTOS] next to it. But as soon as you open the cfg file then [TI-RTOS] appears (you dont even have to modify it).

    That means you have to modify the .c file with the right names if you want to keep your .cfg file without [TI-RTOS] before compiling.

    I have tried again excatly as above but using the GUI new project, this time i can choose the TI-RTOS version to 2.13.0.06

    I have attached 2 log files, the log2.txt is different/longer than the log1.txt, althought it is complile straight after, nothing has been changed between... so how come ?

    But in any cases, ... it still doesnt work for me...

  • Hi! I have "#10234-D: unresolved symbols remain" error during building project, what it is mean and how to fix this problem? i presume, new driver not included in old precompiled driverlib?
  • Hello Valentin,

    This sounds like a linker error where it cannot find a symbol used during compilation. You can typically find these symbols in the Errors/Warnings tab.

    A new driver can naturally not be included in a older precompiled library. Therefore you need to add all the .C files in your workspace.

    Regards,
    Svend

  • hi,

    when i am adding the  main_pwm_sweep.c to the example "sensortag" as one of the new creastetask, i get something wrong.

    it seems that the new pwm_sweep_createtask() go dead. 

    and when i try to set some breakpoints,these points get disabled.

    i want to know where is wrong.

    Best Regards,Zhangyue

     

  • You need to add the file to your workspace. In addition you need to call the create task, not just tell the compiler that the createTask function is an external function.

    If you have included the file in your workspace correctly the only thing missing would be to actually call the PWM_sweep_createTask() function.

    Regards,
    Svend
  • We are using this driver to drive 5 PWM pins and it's working well. Thanks for adding the Duty and Period US units and API to set duty dynamically. Very convenient.

    Thanks again.
    -r

  • hi,

    i want to know how can i get start a empty project with this pwm project.

  • hi,
    i build a new empty project under rtos 213006.and add drivers to rtos/ti/drivers.
    but i get these errors.

    Description Resource Path Location Type
    unresolved symbol PWM_start, first referenced in ./empty.obj 1234 C/C++ Problem
    unresolved symbol PWM_setDuty, first referenced in ./empty.obj 1234 C/C++ Problem
    unresolved symbol PWM_Params_init, first referenced in ./empty.obj 1234 C/C++ Problem
    unresolved symbol PWM_open, first referenced in ./empty.obj 1234 C/C++ Problem
    unresolved symbol heartBeatFxn, first referenced in C:\workspace_v6_1\1234\Debug\configPkg\package\cfg\empty_pem3.oem3 1234 C/C++ Problem
    <a href="file:/c:/ti/ccsv6/tools/compiler/dmed/HTML/10234.html">#10234-D</a> unresolved symbols remain 1234 C/C++ Problem
    #10010 errors encountered during linking; "1234.out" not built 1234 C/C++ Problem

    Regards,
    Zhang
  • Hi Svendbt,
    Any tips on what needs corrections with regards to using in TI-RTOS 2_15_00_17 on CC1310? I've started integrating and I'm running into a few undefined items (CC2650_PWM0, INT_TIMER3A, INT_TIMER3B, PERIPH_GPT3). Also noticed that the power files having moved seemed to cause a few path issues.
    -Marc
  • Actually I've found where those names changed and fixed them. Still having issues that I will summarize and post tomorrow my time.
    -Marc
  • Hi Marc,

    New TI-RTOS has moved the power management to driver, so there are some hacking you need to do to be able to use that revision of TI-RTOS. We are working on publishing the porting guide on github and will be available no later than the end of next week.
  • Hi,

    Can you give simple example of how to generate pwm using driver you have released. Some example like that available on simplelink academy would be very useful in getting started.
  • Hi,

    There are already 3 examples comes with the driver. Can you elaborate a bit more what's not clear for you? What do you want to implement?
  • Hi Christin,

    Was this porting guide published?  If yes, can you please attach the link?

    Kind Regards,

    -Marc

  • Yes, it has been published. Following is the link but you can also find the link from our wiki page.

    github.com/.../simple_ble_peripheral_tirtos_2p15
  • I want to program sensortag with pwm driver and control onboard led using pwm.
  • 
    

    Have you checked out those 3 examples come with the zip file?

    You need to include all the driver files into your project and then add the following to your board.c

     *  ========================== GPTimer begin =========================================
    */
    
    // GPTimer hardware attributes, one per timer unit (Timer 0A, 0B, 1A, 1B..)
    const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_GPTIMERUNITSCOUNT] = {
        {.baseAddr = GPT0_BASE, .intNum = INT_TIMER0A, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
        {.baseAddr = GPT0_BASE, .intNum = INT_TIMER0B, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
    //  {.baseAddr = GPT1_BASE, .intNum = INT_TIMER1A, .intPriority = (~0), .powerMngrId = PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
    //  {.baseAddr = GPT1_BASE, .intNum = INT_TIMER1B, .intPriority = (~0), .powerMngrId = PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
    //  {.baseAddr = GPT2_BASE, .intNum = INT_TIMER2A, .intPriority = (~0), .powerMngrId = PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
    //  {.baseAddr = GPT2_BASE, .intNum = INT_TIMER2B, .intPriority = (~0), .powerMngrId = PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
    //  {.baseAddr = GPT3_BASE, .intNum = INT_TIMER3A, .intPriority = (~0), .powerMngrId = PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
    //  {.baseAddr = GPT3_BASE, .intNum = INT_TIMER3B, .intPriority = (~0), .powerMngrId = PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
    };
    
    // GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..)
    GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_GPTIMERCOUNT];
    
    // GPTimer configuration (used as GPTimer_Handle by driver and application)
    const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_GPTIMERUNITSCOUNT] = {
        { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A},
        { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B},
    //  { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A},
    //  { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B},
    //  { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A},
    //  { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B},
    //  { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A},
    //  { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B},
    };
    
    /*
     *  ========================== GPTimer end =========================================
    */
    
    /*
     *  ========================== PWM begin =========================================
    */
    // PWM configuration, one per PWM output
    PWMCC26XX_HwAttrs pwmCC26xxHWAttrs[CC2650_PWMCOUNT] = {
        { .pwmPin = Board_RLED, .gpTimerUnit = CC2650_GPTIMER0A } ,
        { .pwmPin = Board_GLED, .gpTimerUnit = CC2650_GPTIMER0B } ,
    //  { .pwmPin = Board_PWMPIN2, .gpTimerUnit = CC2650_GPTIMER1A } ,
    //  { .pwmPin = Board_PWMPIN3, .gpTimerUnit = CC2650_GPTIMER1B } ,
    //  { .pwmPin = Board_PWMPIN4, .gpTimerUnit = CC2650_GPTIMER2A } ,
    //  { .pwmPin = Board_PWMPIN5, .gpTimerUnit = CC2650_GPTIMER2B } ,
    //  { .pwmPin = Board_PWMPIN6, .gpTimerUnit = CC2650_GPTIMER3A } ,
    //  { .pwmPin = Board_PWMPIN7, .gpTimerUnit = CC2650_GPTIMER3B } ,
    };
    
    // PWM object, one per PWM output
    PWMCC26XX_Object pwmCC26xxObjects[CC2650_PWMCOUNT];
    
    
    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] },
    
      { NULL,               NULL,                 NULL                 }
    };
    /*
     *  ========================== PWM end =========================================
    */

    and following into board.h 

    typedef enum CC2650_GPTimerName {
        CC2650_GPTIMER0A = 0,
        CC2650_GPTIMER0B,
    //  CC2650_GPTIMER1A,
    //  CC2650_GPTIMER1B,
    //  CC2650_GPTIMER2A,
    //  CC2650_GPTIMER2B,
    //  CC2650_GPTIMER3A,
    //  CC2650_GPTIMER3B,
        CC2650_GPTIMERUNITSCOUNT
    } CC2650_GPTimerName;
    
    typedef enum CC2650_GPTimers {
        CC2650_GPTIMER0 = 0,
    //  CC2650_GPTIMER1,
    //  CC2650_GPTIMER2,
    //  CC2650_GPTIMER3,
        CC2650_GPTIMERCOUNT
    } CC2650_GPTimers;
    
    typedef enum CC2650_PWM {
        CC2650_PWM0 = 0,    
        CC2650_PWM1,
    //  CC2650_PWM2,
    //  CC2650_PWM3,
    //  CC2650_PWM4,
    //  CC2650_PWM5,
    //  CC2650_PWM6,
    //  CC2650_PWM7,
        CC2650_PWMCOUNT
    } CC2650_PWM;

    then you can initialize this and run without problem

    void SimpleBLEPeripheralPWM_init(void)
    {
    
    PWM_Params_init(&pwmParams);
    pwmParams.idleLevel = PWM_IDLE_LOW;
    
    /* PWM in US with fractional duty cycle */ 
    pwmParams.periodUnit = PWM_PERIOD_US;
    pwmParams.periodValue = PERIOD_US;
    pwmParams.dutyUnit = PWM_DUTY_FRACTION; 
    pwmParams.dutyValue = PWM_DUTY_FRACTION_MAX/2; 
    
    
    /* PWM open will set pin to idle level */
    hPWM0 = PWM_open(CC2650_PWM0, &pwmParams);
    
    if(hPWM0 == NULL) {
    while(1);
    }
    PWM_start(hPWM0); }

  • Hi,
    I am getting following error while compiling main_pwm_sweep.c


    #10010 errors encountered during linking; "TI-RTOS_BasicTask_ST.out" not built TI-RTOS_BasicTask_ST C/C++ Problem
    <a href="file:/c:/ti/ccsv6/tools/compiler/dmed/HTML/10234.html">#10234-D</a> unresolved symbols remain TI-RTOS_BasicTask_ST C/C++ Problem
    unresolved symbol PWM_open, first referenced in ./lab1-main.obj TI-RTOS_BasicTask_ST C/C++ Problem
    unresolved symbol PWM_Params_init, first referenced in ./lab1-main.obj TI-RTOS_BasicTask_ST C/C++ Problem
    unresolved symbol PWM_setDuty, first referenced in ./lab1-main.obj TI-RTOS_BasicTask_ST C/C++ Problem
    unresolved symbol PWM_start, first referenced in ./lab1-main.obj TI-RTOS_BasicTask_ST C/C++ Problem
  • Hi,

    I am trying to run pwm using steps you have mentioned above.

    Here are my main.c, board.c and board.h files. 

    Still not able to compile for pwm. 

    "TI-RTOS_BasicTask_ST.out" "./Board.obj" "./lab1-main.obj" "./Startup/ccfg.obj" "./PIN/PINCC26XX.obj" "../cc26x0f128.cmd" -l"configPkg/linker.cmd" -l"C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_21_01_15600/driverlib/bin/ccs/driverlib.lib" -l"libc.a"
    <Linking>

    undefined first referenced
    symbol in file
    --------- ----------------
    PWM_Params_init ./lab1-main.obj
    PWM_open ./lab1-main.obj
    PWM_start ./lab1-main.obj

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "TI-RTOS_BasicTask_ST.out" not built

    >> Compilation failure
    gmake: *** [TI-RTOS_BasicTask_ST.out] Error 1
    gmake: Target `all' not remade because of errors.

    lab1-main.c
    /*
     * Copyright (c) 2015, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    /*
     *  ======== lab1-main.c ========
     */
    
    /* XDCtools Header files */
    #include <xdc/std.h>
    #include <xdc/cfg/global.h>
    #include <xdc/runtime/System.h>
    
    /* BIOS Header files */
    #include <ti/sysbios/BIOS.h>
    #include <ti/sysbios/knl/Task.h>
    
    /* TI-RTOS Header files */
    #include <ti/drivers/PIN.h>
    #include <ti/drivers/pin/PINCC26XX.h>
    
    #include <ti/drivers/PWM2.h>
    
    
    /* Example/Board Header files */
    #include "Board.h"
    
    /* Driverlib CPU functions, used here for CPUdelay*/
    #include <driverlib/cpu.h>
    
    /* Could be anything, like computing primes */
    #define FakeBlockingSlowWork()   CPUdelay(12e6)
    #define FakeBlockingFastWork()   CPUdelay(3e6)
    
    
    /* Pin driver handles */
    static PIN_Handle pinHandle;
    
    /* Global memory storage for a PIN_Config table */
    static PIN_State pinState;
    
    Task_Struct workTask;
    static uint8_t workTaskStack[256];
    
    /*
     * Initial pin configuration table
     *   - LEDs Board_LED1 & Board_LED2 are off after the pin table is initialized.
     *   - Button is set to input with pull-up.
     */
    PIN_Config pinTable[] = {
        Board_LED1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        Board_LED2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        Board_KEY_RIGHT | PIN_INPUT_EN | PIN_PULLUP,
        PIN_TERMINATE
    };
    
    void doWork(void)
    {
    	PIN_setOutputValue(pinHandle, Board_LED1, 1);
        FakeBlockingSlowWork(); /* Pretend to do something useful but time-consuming */
    	PIN_setOutputValue(pinHandle, Board_LED1, 0);
    }
    
    Void workTaskFunc(UArg arg0, UArg arg1)
    {
       // while (1) {
    
        	/* Do work */
        	//doWork();
    
        	/* Wait a while, because doWork should be a periodic thing, not continuous.*/
        	//CPUdelay(24e6);
       // }
    }
    
    PWM_Handle hPWM0;
    #define PERIOD_US 1000
    
    void SimpleBLEPeripheralPWM_init(void)
    {
    
    	PWM_Params pwmParams;
    	PWM_Params_init(&pwmParams);
    	pwmParams.idleLevel = PWM_IDLE_LOW;
    
    	/* PWM in US with fractional duty cycle */
    	pwmParams.periodUnit = PWM_PERIOD_US;
    	pwmParams.periodValue = PERIOD_US;
    	pwmParams.dutyUnit = PWM_DUTY_FRACTION;
    	pwmParams.dutyValue = PWM_DUTY_FRACTION_MAX/2;
    
    
    	/* PWM open will set pin to idle level */
    	hPWM0 = PWM_open(CC2650_PWM0, &pwmParams);
    
    	if(hPWM0 == NULL) {
    	while(1);
    	}PWM_start(hPWM0);
    }
    
    /*
     *  ======== main ========
     *
     */
    int main(void)
    {
        /* Call board init functions */
        PIN_init(BoardGpioInitTable);
    
        /* Open LED pins */
        pinHandle = PIN_open(&pinState, pinTable);
        if(!pinHandle) {
            System_abort("Error initializing board pins\n");
        }
    
        /* Set up the led task */
    	Task_Params workTaskParams;
    	Task_Params_init(&workTaskParams);
    	workTaskParams.stackSize = 256;
    	workTaskParams.priority = 2;
    	workTaskParams.stack = &workTaskStack;
    
    	Task_construct(&workTask, workTaskFunc, &workTaskParams, NULL);
    	SimpleBLEPeripheralPWM_init();
    
        /* Start kernel. */
        BIOS_start();
    
        return (0);
    }
    
    5557.Board.c
    /*
     * Copyright (c) 2015, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    /*
     *  ====================== Board.c =============================================
     *  This file is responsible for setting up the board specific items for the
     *  CC2650 SensorTag. 
     *
     *  NB! This board file is for PCB version 1.2
     */
    
    
    /*
     *  ====================== Includes ============================================
     */
    #include <inc/hw_memmap.h>
    #include <inc/hw_ints.h>
    #include <driverlib/ioc.h>
    #include <driverlib/udma.h>
    #include <xdc/std.h>
    #include <xdc/runtime/System.h>
    #include <ti/sysbios/family/arm/m3/Hwi.h>
    #include <ti/sysbios/family/arm/cc26xx/Power.h>
    #include <ti/sysbios/family/arm/cc26xx/PowerCC2650.h>
    #include <ti/drivers/PIN.h>
    #include "Board.h"
    
    /*
     *  ========================= IO driver initialization =========================
     *  From main, PIN_init(BoardGpioInitTable) should be called to setup safe
     *  settings for this board.
     *  When a pin is allocated and then de-allocated, it will revert to the state
     *  configured in this table.
    */
    
    /*
     *  ========================= IO driver initialization =========================
     *  From main, PIN_init(BoardGpioInitTable) should be called to setup safe
     *  settings for this board.
     *  When a pin is allocated and then de-allocated, it will revert to the state
     *  configured in this table
    */
    PIN_Config BoardGpioInitTable[] = {
        Board_LED1       | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,     /* LED initially off             */
        Board_LED2       | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,     /* LED initially off             */
        Board_KEY_LEFT   | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,        /* Button is active low          */
        Board_KEY_RIGHT  | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,        /* Button is active low          */
        Board_RELAY      | PIN_INPUT_EN | PIN_PULLDOWN | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,      /* Relay is active high          */
        Board_MPU_INT    | PIN_INPUT_EN | PIN_PULLDOWN | PIN_IRQ_NEGEDGE | PIN_HYSTERESIS,        /* MPU_INT is active low         */
        Board_TMP_RDY    | PIN_INPUT_EN | PIN_PULLUP | PIN_HYSTERESIS,                            /* TMP_RDY is active high        */
        Board_BUZZER     | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,     /* Buzzer initially off          */
        Board_MPU_POWER  | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MAX,    /* MPU initially on              */
        Board_MIC_POWER  | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MIN,     /* MIC initially off             */
        Board_SPI_FLASH_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,  /* External flash chip select    */
        Board_SPI_DEVPK_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MIN,   /* DevPack chip select           */
        Board_AUDIO_DI | PIN_INPUT_EN | PIN_PULLDOWN,                                             /* Audio DI                      */
        Board_AUDIODO | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,       /* Audio data out                */
        Board_AUDIO_CLK | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* DevPack */
        Board_DP2 | PIN_INPUT_EN | PIN_PULLDOWN,                                                  /* DevPack */
        Board_DP1 | PIN_INPUT_EN | PIN_PULLDOWN,                                                  /* DevPack */
        Board_DP0 | PIN_INPUT_EN | PIN_PULLDOWN,                                                  /* DevPack */
        Board_DP3 | PIN_INPUT_EN | PIN_PULLDOWN,                                                  /* DevPack */
        Board_DP4_UARTRX | PIN_INPUT_EN | PIN_PULLUP,                                             /* DevPack */
        Board_DP5_UARTTX | PIN_INPUT_EN | PIN_PULLUP,                                             /* Devpack */
        Board_DEVPK_ID | PIN_INPUT_EN | PIN_NOPULL,                                               /* Device pack ID - external PU  */
    
        PIN_TERMINATE
    };
    /*============================================================================*/
    
    /*
     *  ============================= UART begin ===================================
    */
    #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_UARTCOUNT];
    
    /* UART hardware parameter structure, also used to assign UART pins */
    const UARTCC26XX_HWAttrs uartCC26XXHWAttrs[CC2650_UARTCOUNT] = {
        {    /* CC2650_UART0 */
            .baseAddr = UART0_BASE,
            .intNum = INT_UART0,
            .powerMngrId = PERIPH_UART0,
    		.txPin = Board_UART_TX,
            .rxPin = Board_UART_RX,
            .ctsPin = PIN_UNASSIGNED,
            .rtsPin = PIN_UNASSIGNED
        },
    };
    
    /* UART configuration structure */
    const UART_Config UART_config[] = {
        { &UARTCC26XX_fxnTable, &uartCC26XXObjects[0], &uartCC26XXHWAttrs[0] },
        { NULL, NULL, NULL }
    };
    /*
     *  ============================= UART end =====================================
    */
    
    /*
     *  ============================= UDMA begin ===================================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
    #pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
    #endif
    
    /* Include drivers */
    #include <ti/drivers/dma/UDMACC26XX.h>
    
    /* UDMA objects */
    UDMACC26XX_Object UdmaObjects[CC2650_UDMACOUNT];
    
    /* UDMA configuration structure */
    const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_UDMACOUNT] = {
        { UDMA0_BASE, INT_UDMAERR, PERIPH_UDMA },
    };
    
    /* UDMA configuration structure */
    const UDMACC26XX_Config UDMACC26XX_config[] = {
        {&UdmaObjects[0], &udmaHWAttrs[0]},
        {NULL, NULL},
    };
    /*
     *  ============================= UDMA end =====================================
    */
    
    /*
     *  ========================== SPI DMA begin ===================================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(SPI_config, ".const:SPI_config")
    #pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
    #endif
    
    /* Include drivers */
    #include <ti/drivers/spi/SPICC26XXDMA.h>
    
    /* SPI objects */
    SPICC26XX_Object spiCC26XXDMAObjects[CC2650_SPICOUNT];
    
    /* SPI configuration structure, describing which pins are to be used */
    const SPICC26XX_HWAttrs spiCC26XXDMAHWAttrs[CC2650_SPICOUNT] = {
        {   /* SENSORTAG_CC2650_SPI0 */
            .baseAddr = SSI0_BASE,
            .intNum = INT_SSI0,
            .defaultTxBufValue = 0,
            .powerMngrId = PERIPH_SSI0,
            .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
            .txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX,
            .mosiPin = Board_SPI0_MOSI,
            .misoPin = Board_SPI0_MISO,
            .clkPin = Board_SPI0_CLK,
            .csnPin = PIN_UNASSIGNED     /* External flash / DevPk uses SPI0 */
        },
        {   /* SRF06EB_CC2650_SPI1 */
            .baseAddr = SSI1_BASE,
            .intNum = INT_SSI1,
            .defaultTxBufValue = 0,
            .powerMngrId = PERIPH_SSI1,
            .rxChannelBitMask  = 1<<UDMA_CHAN_SSI1_RX,
            .txChannelBitMask  = 1<<UDMA_CHAN_SSI1_TX,
            .mosiPin = Board_SPI1_MOSI,
            .misoPin = Board_SPI1_MISO,
            .clkPin = Board_SPI1_CLK,
            .csnPin = Board_SPI1_CSN
        }
    };
    
    /* SPI configuration structure */
    const SPI_Config SPI_config[] = {
        /* SENSORTAG_CC2650_SPI0 */
        {&SPICC26XXDMA_fxnTable, &spiCC26XXDMAObjects[0], &spiCC26XXDMAHWAttrs[0]},
        /* SRF06EB_CC2650_SPI1 */
        {&SPICC26XXDMA_fxnTable, &spiCC26XXDMAObjects[1], &spiCC26XXDMAHWAttrs[1]},
        {NULL, NULL, NULL},
    };
    /*
     *  ========================== SPI DMA end =====================================
    */
    
    /*
     *  ============================= I2C Begin=====================================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(I2C_config, ".const:I2C_config")
    #pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
    #endif
    
    /* Include drivers */
    #include <ti/drivers/i2c/I2CCC26XX.h>
    
    /* I2C objects */
    I2CCC26XX_Object i2cCC26xxObjects[CC2650_I2CCOUNT];
    
    /* I2C configuration structure, describing which pins are to be used */
    const I2CCC26XX_HWAttrs i2cCC26xxHWAttrs[CC2650_I2CCOUNT] = {
        {
            .baseAddr = I2C0_BASE,
            .intNum = INT_I2C,
            .powerMngrId = PERIPH_I2C0,
            .sdaPin = Board_I2C0_SDA0,
            .sclPin = Board_I2C0_SCL0,
        }
    };
    
    const I2C_Config I2C_config[] = {
        {&I2CCC26XX_fxnTable, &i2cCC26xxObjects[0], &i2cCC26xxHWAttrs[0]},
        {NULL, NULL, NULL}
    };
    /*
     *  ========================== I2C end =========================================
    */
    
    /*
     *  ========================== Crypto begin =======================================
     *  NOTE: The Crypto implementaion should be considered experimental and not validated!
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
    #pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
    #endif
    
    /* Include drivers */
    #include <ti/drivers/crypto/CryptoCC26XX.h>
    
    /* Crypto objects */
    CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_CRYPTOCOUNT];
    
    /* Crypto configuration structure, describing which pins are to be used */
    const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_CRYPTOCOUNT] = {
        {CRYPTO_BASE, INT_CRYPTO, PERIPH_CRYPTO}
    };
    
    /* Crypto configuration structure */
    const CryptoCC26XX_Config CryptoCC26XX_config[] = {
        {&cryptoCC26XXObjects[0], &cryptoCC26XXHWAttrs[0]},
        {NULL, NULL}
    };
    
    /*
     *  ========================== Crypto end =========================================
    */
    
    #include <ti/drivers/PWM2.h>
    #include <ti/drivers/pwm/PWMCC26XX.h>
    #include <ti/drivers/timer/GPTimerCC26XX.h>
    
    
    /*
    *  ========================== GPTimer begin =========================================
    */
    
    // GPTimer hardware attributes, one per timer unit (Timer 0A, 0B, 1A, 1B..)
    const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_GPTIMERUNITSCOUNT] = {
        {.baseAddr = GPT0_BASE, .intNum = INT_TIMER0A, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
        {.baseAddr = GPT0_BASE, .intNum = INT_TIMER0B, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
    //  {.baseAddr = GPT1_BASE, .intNum = INT_TIMER1A, .intPriority = (~0), .powerMngrId = PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
    //  {.baseAddr = GPT1_BASE, .intNum = INT_TIMER1B, .intPriority = (~0), .powerMngrId = PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
    //  {.baseAddr = GPT2_BASE, .intNum = INT_TIMER2A, .intPriority = (~0), .powerMngrId = PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
    //  {.baseAddr = GPT2_BASE, .intNum = INT_TIMER2B, .intPriority = (~0), .powerMngrId = PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
    //  {.baseAddr = GPT3_BASE, .intNum = INT_TIMER3A, .intPriority = (~0), .powerMngrId = PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
    //  {.baseAddr = GPT3_BASE, .intNum = INT_TIMER3B, .intPriority = (~0), .powerMngrId = PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
    };
    
    // GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..)
    GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_GPTIMERCOUNT];
    
    // GPTimer configuration (used as GPTimer_Handle by driver and application)
    const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_GPTIMERUNITSCOUNT] = {
        { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A},
        { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B},
    //  { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A},
    //  { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B},
    //  { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A},
    //  { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B},
    //  { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A},
    //  { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B},
    };
    
    /*
     *  ========================== GPTimer end =========================================
    */
    
    /*
     *  ========================== PWM begin =========================================
    */
    // PWM configuration, one per PWM output
    PWMCC26XX_HwAttrs pwmCC26xxHWAttrs[CC2650_PWMCOUNT] = {
        { .pwmPin = Board_LED1, .gpTimerUnit = CC2650_GPTIMER0A } ,
        { .pwmPin = Board_LED2, .gpTimerUnit = CC2650_GPTIMER0B } ,
    //  { .pwmPin = Board_PWMPIN2, .gpTimerUnit = CC2650_GPTIMER1A } ,
    //  { .pwmPin = Board_PWMPIN3, .gpTimerUnit = CC2650_GPTIMER1B } ,
    //  { .pwmPin = Board_PWMPIN4, .gpTimerUnit = CC2650_GPTIMER2A } ,
    //  { .pwmPin = Board_PWMPIN5, .gpTimerUnit = CC2650_GPTIMER2B } ,
    //  { .pwmPin = Board_PWMPIN6, .gpTimerUnit = CC2650_GPTIMER3A } ,
    //  { .pwmPin = Board_PWMPIN7, .gpTimerUnit = CC2650_GPTIMER3B } ,
    };
    
    // PWM object, one per PWM output
    PWMCC26XX_Object pwmCC26xxObjects[CC2650_PWMCOUNT];
    
    
    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] },
    
      { NULL,               NULL,                 NULL                 }
    };
    /*
     *  ========================== PWM end =========================================
    */
    
    3005.Board.h

  • did you include those files in your search path? or did you place it in TI-RTOS driver folder?
  • i copy those pwmc26xx.c pwmc26xx.h gpt26xx.c gpt26xx.h in C:\ti\tirtos_simplelink_2_13_00_06\packages\ti\drivers\pwm and C:\ti\tirtos_simplelink_2_13_00_06\packages\ti\drivers\timer folders. Also pwm2.c and pwm2.h in C:\ti\tirtos_simplelink_2_13_00_06\packages\ti\drivers folder
  • As per tirtos user guide i have to enable pwm in cfg file. However i am not able to find pwm over there. So how do i enable pwm?
  • Did you include those files in your project? You don't need to enable cfg setting if you are not updating TI-RTOS. Did you build the project from TI-RTOS empty example?
  • yes i did inclue these files. I am using simplelink academy example project. Now I am getting following error.

    "./PIN/PINCC26XX.obj" "../cc26x0f128.cmd" -l"configPkg/linker.cmd" -l"C:/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_21_01_15600/driverlib/bin/ccs/driverlib.lib" -l"libc.a"
    <Linking>

    undefined first referenced
    symbol in file
    --------- ----------------
    Log_error0 ./lab1-main.obj
    PWMCC26XX_fxnTable ./Board.obj

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "TI-RTOS_BasicTask_ST.out" not built
  • did you include the drivers into your board.c?

    #include <ti/drivers/PWM2.h>
    #include <ti/drivers/pwm/PWMCC26XX.h>
    #include <ti/drivers/timer/GPTimerCC26XX.h>
  • yes these files are included in board.c file.
  • I just create main_pwm_sweep.c based on the TI-RTOS_BasicTask_EMK example and it's running.

    You only need to modify those 3 files and comment out Log_error0("Opening PWM failed"); in the main_pwm_sleep.c
    You should be able to run it without problem. remember to choose compiler language option to c99
  • Hi Christin,

    I'm also having problems getting the PWM examples working with TIRTOS 2.15.

    Can you tell me if all I should need to do is edit the path to the Power.h files as described in your github link? Or is there more to it than that. 

    Also do you have an estimate for when the RTOS update with the PWM driver will be released?

    Thanks

  • Hi,

    I have not tested with the newest TI-RTOS, but will give it a try tomorrow and also ask our R&D with respect to the PWM official release.
    Will give you answer asap
  • Dear Lee,

    I am too trying to implement PWM driver with TI-RTOSv2.14. I started with empty_min project and followed the all the before mentioned steps like replacing the Board.c/.h files, remove empty.c and adding the pwm driver files to project folder instead of adding it to driver folder as this is pre-release version.
    I am getting these errors: please resolve.

    Thanks n Regards

  • Since you add it into project folder, have you modified the search path? It looks like ccs could not find the files.
  • Hi,

    The official release for PWM driver is around May.

    Following is what you should do in order to make PWM driver to work with TI-RTOS>=2.15,  colored red is for old format, green is the current format for it to work with >=2.15

    1. GPTimerCC26XX.h

    #include <ti/sysbios/family/arm/cc26xx/Power.h>
    #include <ti/sysbios/family/arm/cc26xx/PowerCC2650.h>

     to

    #include <ti/drivers/Power.h>
    #include <ti/drivers/power/PowerCC26XX.h>

    2. change Power_SB_DISALLOW to PowerCC26XX_SB_DISALLOW in GPTimerCC26xx.c

    3. For board.c, change the following  

       {.baseAddr = GPT0_BASE, .intNum = INT_TIMER0A, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0A, },

       {.baseAddr = GPT0_BASE, .intNum = INT_TIMER0B, .intPriority = (~0), .powerMngrId = PERIPH_GPT0, .pinMux = GPT_PIN_0B, },

     to

    {.baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },  

    {.baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },

    4. PWMCC26XX.c, you can either comment out the log_error or just change the duty/period to dutyValue/periodValue if you got compile error.

  • Thanks Christin,

    That got rid of the problem I was having yesterday, but I'm not 100% there yet. I wonder if you know what my current problem could be and whether it's related.

    I'm getting linker errors:

    I have added the drivers to my TIRTOS installation, but also tried by adding the path to the compiler. I can't see any problem with PWM_FxnTable in the code. It's used in my Board.c file and clearly defined in PWM2.h. 

    Do you know any reason for the above error? I really appreciate your help.

  • Did you start your project from an empty example? I used TI-RTOS empty minimum driver example project, and modified the board files, and replaced main.c with PWM sweep mian.c, and it works fine.

    Can you elaborate what modification have you done?
  • Thanks a million for replying Christin, I perform the following with a clean install of tirtos to get the above errors:

    1) Import an Empty Project example from the TI Resources Explorer in CCS6.1.2.00015
    2) In project properties under Include Options I add the path for the PWM driver downloaded from the top of this page
    3) Into CC1310DK_7XD.c I copy everything from Board.c
    4) Into CC1310DK_7XD.h I copy everything from Board.h
    5) I replace the contents of empty.c with the contents of main_pwm_sweep.c
    6) I perform steps 1 - 2 from your post in the downloaded files whose path I added in step 2 above.
    7) I perform step 3 from your post in CC1310DK_7XD.c (my board.c)
    8) I get an error so perform step 1 from your post in GPTimerCC26XX.h
    8) I get an error so perform step 1 from your post in CC1310DK_7XD.c (my board.c)

    Those are all of the steps I perform to get the error from my screenshot above. I am using tirtos_cc13xx_cc26xx_2_15_00_17.

    Can you see the steps I'm missing? I'm sure I'm missing something, but can't see what!

    Thanks again!
  • did you include the followings in your board.c file?
    #include <ti/drivers/PWM2.h>
    #include <ti/drivers/pwm/PWMCC26XX.h>
    #include <ti/drivers/timer/GPTimerCC26XX.h>