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.
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
Features PWM driver
None of the timers support DMA at the moment as this requires changes to the current DMA driver.
Usage
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 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.
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
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 pixbroker 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
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
**** 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
**** 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 ****
**** 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 ****
**** 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 ****
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...
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 Christin,
Was this porting guide published? If yes, can you please attach the link?
Kind Regards,
-Marc
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 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.
/* * 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); }
/* * 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 ========================================= */
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
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
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.