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.

#48-D incompatible redefinition of macro "Hwi_clearInterrupt"

Other Parts Discussed in Thread: SYSBIOS, TM4C123GH6PM, CC3100

During code development, I suddenly started to get these compiler warnings which I did not get before. There are over 70 of them. How can I get rid of these warnings? Your advice is greatly appreciated.

Jonathan

Description Resource Path Location Type
#48-D incompatible redefinition of macro "Hwi_clearInterrupt" (declared at line 652 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h") .ccsproject /ESU_Firmware_9252 line 1289, external location: C:\ti\tirtos_tivac_2_14_00_10\products\bios_6_42_01_20\packages\ti\sysbios\family\arm\m3\Hwi.h C/C++ Problem
#48-D incompatible redefinition of macro "Hwi_construct" (declared at line 670 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h") .ccsproject /ESU_Firmware_9252 line 1318, external location: C:\ti\tirtos_tivac_2_14_00_10\products\bios_6_42_01_20\packages\ti\sysbios\family\arm\m3\Hwi.h C/C++ Problem
#48-D incompatible redefinition of macro "Hwi_create" (declared at line 671 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h") .ccsproject /ESU_Firmware_9252 line 1319, external location: C:\ti\tirtos_tivac_2_14_00_10\products\bios_6_42_01_20\packages\ti\sysbios\family\arm\m3\Hwi.h C/C++ Problem
#48-D incompatible redefinition of macro "Hwi_delete" (declared at line 685 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h") .ccsproject /ESU_Firmware_9252 line 1333, external location: C:\ti\tirtos_tivac_2_14_00_10\products\bios_6_42_01_20\packages\ti\sysbios\family\arm\m3\Hwi.h C/C++ Problem
#48-D incompatible redefinition of macro "Hwi_destruct" (declared at line 686 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h") .ccsproject /ESU_Firmware_9252 line 1334, external location: C:\ti\tirtos_tivac_2_14_00_10\products\bios_6_42_01_20\packages\ti\sysbios\family\arm\m3\Hwi.h C/C++ Problem

  • Hi Jonathan,
    Looks like you have #include of both the general Hwi (ti/sysbios/hal/Hwi.h) and the family-specific (ti/sysbios/family/arm/m3/Hwi.h) in the same source. You should have only one of those since they define the same symbols. Let me know if this takes care of the warnings.

    Regards,
    Moses
  • Yes. I understand that. However, as you know, I didn't code the #includes. They are done by the RTOS and the CCS automatically for me. All I did was to use the HWI module. So I don't know where this duplication of #includes occurred. How do I find out where it is to eliminate it?

  • Hi Jonathan,
    Are you working with one of our stock examples? You said you weren't getting them before so was there additional code you added or did you change CCS versions? Can you share your sources?

    Thanks,
    Moses
  • I started with the SPI loop back test example. Then I developed our own code based on that example. I was not getting these errors before, then I added more code and the errors suddenly showed up. I have seen it disappear a couple of times after compilation. Then they would return. Strange enough.

    CCS version remains 6.1.

  • I think I need to know when and how those #includes get added to my code? In other words, what action (e.g. adding HWI?) I performed in CCS GUI can cause those two #includes to be added to my code? Again, I did not specifically write those #includes, CCS/RTOS generated those for me somehow.

    Regards,

    Jonathan
  • Hi Jonathan,
    Yeah sounds strange. Adding the Hwi from the GUI generates code that's added to your cfg file. It'll be great if in your response you can paste the lines Hwi code that got added to your cfg file. I want to confirm you're not adding the device specific Hwi as well.

    Thanks,
    Moses

  • Here it is.

    /*
    * 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.
    */

    /*
    * ======== spiloopback.cfg ========
    */

    /* ================ General configuration ================ */
    var Defaults = xdc.useModule('xdc.runtime.Defaults');
    var Diags = xdc.useModule('xdc.runtime.Diags');
    var Error = xdc.useModule('xdc.runtime.Error');
    var Log = xdc.useModule('xdc.runtime.Log');
    var Main = xdc.useModule('xdc.runtime.Main');
    var Memory = xdc.useModule('xdc.runtime.Memory');
    var System = xdc.useModule('xdc.runtime.System');
    var Text = xdc.useModule('xdc.runtime.Text');

    var BIOS = xdc.useModule('ti.sysbios.BIOS');
    var Task = xdc.useModule('ti.sysbios.knl.Task');
    var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
    var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
    var Timer = xdc.useModule('ti.sysbios.hal.Timer');
    var Idle = xdc.useModule('ti.sysbios.knl.Idle');
    var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');

    /*
    * Program.stack is ignored with IAR. Use the project options in
    * IAR Embedded Workbench to alter the system stack size.
    */
    if (!Program.build.target.$name.match(/iar/)) {
    /*
    * Reducing the system stack size (used by ISRs and Swis) to reduce
    * RAM usage.
    */
    Program.stack = 4096;
    }

    /*
    * Comment this line to allow module names to be loaded on the target.
    * The module name strings are placed in the .const section. Setting this
    * parameter to false will save space in the .const section. Error and
    * Assert messages will contain an "unknown module" prefix instead
    * of the actual module name.
    */
    Defaults.common$.namedModule = false;

    /*
    * Minimize exit handler array in System. The System module includes
    * an array of functions that are registered with System_atexit() to be
    * called by System_exit().
    */
    System.maxAtexitHandlers = 2;

    /*
    * Comment this line to allow Error, Assert, and Log strings to be
    * loaded on the target. These strings are placed in the .const section.
    * Setting this parameter to false will save space in the .const section.
    * Error, Assert and Log message will print raw ids and args instead of
    * a formatted message.
    */
    Text.isLoaded = false;

    /* ================ System configuration ================ */
    var SysMin = xdc.useModule('xdc.runtime.SysMin');
    System.SupportProxy = SysMin;
    SysMin.bufSize = 128;

    /* Enable Semihosting for GNU targets to print to CCS console */
    if (Program.build.target.$name.match(/gnu/)) {
    var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
    }

    /* ================ BIOS configuration ================ */
    /*
    * Disable unused BIOS features to minimize footprint.
    * This example uses Tasks but not Swis or Clocks.
    */
    BIOS.libType = BIOS.LibType_Custom;
    BIOS.logsEnabled = true;
    BIOS.assertsEnabled = true;

    BIOS.heapSize = 4096;

    /* Runtime stack checking is performed */
    Task.checkStackFlag = true;
    Hwi.checkStackFlag = true;

    /* Reduce the number of task priorities */
    Task.numPriorities = 16;

    /* ================ Driver configuration ================ */
    var TIRTOS = xdc.useModule('ti.tirtos.TIRTOS');
    TIRTOS.useGPIO = true;
    TIRTOS.useSPI = true;
    var semaphore0Params = new Semaphore.Params();
    semaphore0Params.instance.name = "readEncoderSem";
    semaphore0Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.readEncoderSem = Semaphore.create(null, semaphore0Params);
    var semaphore1Params = new Semaphore.Params();
    semaphore1Params.instance.name = "writeDASem";
    semaphore1Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.writeDASem = Semaphore.create(null, semaphore1Params);
    var task3Params = new Task.Params();
    task3Params.instance.name = "readEncoderTask";
    task3Params.priority = 8;
    Program.global.readEncoderTask = Task.create("&readEncoderCmd", task3Params);
    var task4Params = new Task.Params();
    task4Params.instance.name = "writeDATask";
    task4Params.priority = 7;
    Program.global.writeDATask = Task.create("&writeDACmd", task4Params);
    var semaphore2Params = new Semaphore.Params();
    semaphore2Params.instance.name = "ISRSem";
    semaphore2Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.ISRSem = Semaphore.create(null, semaphore2Params);
    var task5Params = new Task.Params();
    task5Params.instance.name = "topSyncManagerISRTask";
    task5Params.priority = 9;
    Program.global.topSyncManagerISRTask = Task.create("&syncManagerISR", task5Params);
    var semaphore3Params = new Semaphore.Params();
    semaphore3Params.instance.name = "miscompareSem";
    semaphore3Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.miscompareSem = Semaphore.create(null, semaphore3Params);
    Idle.idleFxns[0] = null;
    Idle.idleFxns[1] = null;
    var task3Params0 = new Task.Params();
    task3Params0.instance.name = "miscompareFxnTask";
    Program.global.miscompareFxnTask = Task.create("&miscompareFxn", task3Params0);
    BIOS.cpuFreq.lo = 80000000;
    LoggingSetup.sysbiosTaskLogging = true;
    LoggingSetup.loadLogging = true;
    LoggingSetup.mainLogging = true;
    LoggingSetup.mainLoggingRuntimeControl = false;
    LoggingSetup.sysbiosSemaphoreLogging = true;
    Hwi.dispatcherAutoNestingSupport = false;
    var hwi0Params = new Hwi.Params();
    hwi0Params.instance.name = "syncManagerISR_HWI";
    Program.global.syncManagerISR_HWI = Hwi.create(19, "&topSyncManagerISR", hwi0Params);
  • Hi Jonathan,

            I haven't seen anything suspect in your cfg file. Do you mind sharing your project?

    Thanks,

    Moses

  • This problem comes and goes. it went away for a while until this morning when I tried to add a RTOS timer function to my code. The warning error problem came back again. So I deleted the timer function completely. Now the warning problem sticks. I am pasting my .cfg file here. Could you see if there is anything that might cause my warning error problem?

    Thanks.

    Jonathan

    /*
    * 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.
    */

    /*
    * ======== spiloopback.cfg ========
    */

    /* ================ General configuration ================ */
    var Defaults = xdc.useModule('xdc.runtime.Defaults');
    var Diags = xdc.useModule('xdc.runtime.Diags');
    var Error = xdc.useModule('xdc.runtime.Error');
    var Log = xdc.useModule('xdc.runtime.Log');
    var Main = xdc.useModule('xdc.runtime.Main');
    var Memory = xdc.useModule('xdc.runtime.Memory');
    var System = xdc.useModule('xdc.runtime.System');
    var Text = xdc.useModule('xdc.runtime.Text');

    var BIOS = xdc.useModule('ti.sysbios.BIOS');
    var Task = xdc.useModule('ti.sysbios.knl.Task');
    var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
    var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
    var Timer = xdc.useModule('ti.sysbios.hal.Timer');
    var Idle = xdc.useModule('ti.sysbios.knl.Idle');
    var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');

    /*
    * Program.stack is ignored with IAR. Use the project options in
    * IAR Embedded Workbench to alter the system stack size.
    */
    if (!Program.build.target.$name.match(/iar/)) {
    /*
    * Reducing the system stack size (used by ISRs and Swis) to reduce
    * RAM usage.
    */
    Program.stack = 4096;
    }

    /*
    * Comment this line to allow module names to be loaded on the target.
    * The module name strings are placed in the .const section. Setting this
    * parameter to false will save space in the .const section. Error and
    * Assert messages will contain an "unknown module" prefix instead
    * of the actual module name.
    */
    Defaults.common$.namedModule = false;

    /*
    * Minimize exit handler array in System. The System module includes
    * an array of functions that are registered with System_atexit() to be
    * called by System_exit().
    */
    System.maxAtexitHandlers = 2;

    /*
    * Comment this line to allow Error, Assert, and Log strings to be
    * loaded on the target. These strings are placed in the .const section.
    * Setting this parameter to false will save space in the .const section.
    * Error, Assert and Log message will print raw ids and args instead of
    * a formatted message.
    */
    Text.isLoaded = false;

    /* ================ System configuration ================ */
    var SysMin = xdc.useModule('xdc.runtime.SysMin');
    System.SupportProxy = SysMin;
    SysMin.bufSize = 128;

    /* Enable Semihosting for GNU targets to print to CCS console */
    if (Program.build.target.$name.match(/gnu/)) {
    var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
    }

    /* ================ BIOS configuration ================ */
    /*
    * Disable unused BIOS features to minimize footprint.
    * This example uses Tasks but not Swis or Clocks.
    */
    BIOS.libType = BIOS.LibType_Custom;
    BIOS.logsEnabled = true;
    BIOS.assertsEnabled = true;

    BIOS.heapSize = 4096;

    /* Runtime stack checking is performed */
    Task.checkStackFlag = true;
    Hwi.checkStackFlag = true;

    /* Reduce the number of task priorities */
    Task.numPriorities = 16;

    /* ================ Driver configuration ================ */
    var TIRTOS = xdc.useModule('ti.tirtos.TIRTOS');
    TIRTOS.useGPIO = true;
    TIRTOS.useSPI = true;
    var semaphore0Params = new Semaphore.Params();
    semaphore0Params.instance.name = "readEncoderSem";
    semaphore0Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.readEncoderSem = Semaphore.create(null, semaphore0Params);
    var semaphore1Params = new Semaphore.Params();
    semaphore1Params.instance.name = "writeDASem";
    semaphore1Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.writeDASem = Semaphore.create(null, semaphore1Params);
    var task3Params = new Task.Params();
    task3Params.instance.name = "readEncoderTask";
    task3Params.priority = 8;
    Program.global.readEncoderTask = Task.create("&readEncoderCmd", task3Params);
    var task4Params = new Task.Params();
    task4Params.instance.name = "writeDATask";
    task4Params.priority = 7;
    Program.global.writeDATask = Task.create("&writeDACmd", task4Params);
    var semaphore2Params = new Semaphore.Params();
    semaphore2Params.instance.name = "ISRSem";
    semaphore2Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.ISRSem = Semaphore.create(null, semaphore2Params);
    var task5Params = new Task.Params();
    task5Params.instance.name = "topSyncManagerISRTask";
    task5Params.priority = 9;
    Program.global.topSyncManagerISRTask = Task.create("&syncManagerISR", task5Params);
    var semaphore3Params = new Semaphore.Params();
    semaphore3Params.instance.name = "miscompareSem";
    semaphore3Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.miscompareSem = Semaphore.create(null, semaphore3Params);
    Idle.idleFxns[0] = null;
    Idle.idleFxns[1] = null;
    var task3Params0 = new Task.Params();
    task3Params0.instance.name = "miscompareFxnTask";
    Program.global.miscompareFxnTask = Task.create("&miscompareFxn", task3Params0);
    BIOS.cpuFreq.lo = 80000000;
    LoggingSetup.sysbiosTaskLogging = true;
    LoggingSetup.loadLogging = true;
    LoggingSetup.mainLogging = true;
    LoggingSetup.mainLoggingRuntimeControl = false;
    LoggingSetup.sysbiosSemaphoreLogging = true;
    Hwi.dispatcherAutoNestingSupport = false;
    var hwi0Params = new Hwi.Params();
    hwi0Params.instance.name = "syncManagerISR_HWI";
    Program.global.syncManagerISR_HWI = Hwi.create(19, "&topSyncManagerISR", hwi0Params);

  • I am pasting the build output messages. Maybe it helps?

    Jonathan


    **** Build of configuration Debug for project ESU_Firmware_9252 ****

    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
    making ../src/sysbios/sysbios.aem4f ...
    gmake[1]: Entering directory `C:/TI_RTOS/Workspace/ESU_Firmware_9252/src/sysbios'
    clem4f C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/BIOS.c ...
    asmem4f C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi_asm.sv7M ...
    asmem4f C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi_asm_switch.sv7M ...
    asmem4f C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/IntrinsicsSupport_asm.sv7M ...
    asmem4f C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/TaskSupport_asm.sv7M ...
    arem4f BIOS.obj m3_Hwi_asm.obj m3_Hwi_asm_switch.obj m3_IntrinsicsSupport_asm.obj m3_TaskSupport_asm.obj ...
    gmake[1]: Leaving directory `C:/TI_RTOS/Workspace/ESU_Firmware_9252/src/sysbios'
    'Building file: ../spiloopback.cfg'
    'Invoking: XDCtools'
    "C:/ti/xdctools_3_31_01_33_core/xs" --xdcpath="C:/ti/tirtos_tivac_2_14_00_10/packages;C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages;C:/ti/tirtos_tivac_2_14_00_10/products/ndk_2_24_03_35/packages;C:/ti/tirtos_tivac_2_14_00_10/products/uia_2_00_02_39/packages;C:/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M4F -p ti.platforms.tiva:TM4C123GH6PM -r release -c "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6" --compileOptions "-mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me --include_path=\"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include\" --include_path=\"C:/TI_RTOS/Workspace/ESU_Firmware_9252\" --include_path=\"C:/ti/tirtos_tivac_2_14_00_10/products/TivaWare_C_Series-2.1.1.71b\" --include_path=\"C:/ti/tirtos_tivac_2_14_00_10/packages/ti/drivers/wifi/cc3100/Simplelink\" --include_path=\"C:/ti/tirtos_tivac_2_14_00_10/packages/ti/drivers/wifi/cc3100/Simplelink/Include\" -g --gcc --define=ccs=\"ccs\" --define=PART_TM4C123GH6PM --define=ccs --define=TIVAWARE --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on " "../spiloopback.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring spiloopback.xem4f from package/cfg/spiloopback_pem4f.cfg ...
    generating custom ti.sysbios library makefile ...
    Starting build of library sources ...
    making C:/TI_RTOS/Workspace/ESU_Firmware_9252/src/sysbios/sysbios.aem4f ...
    gmake[1]: Entering directory `C:/TI_RTOS/Workspace/ESU_Firmware_9252/src/sysbios'
    gmake[1]: Nothing to be done for `all'.
    gmake[1]: Leaving directory `C:/TI_RTOS/Workspace/ESU_Firmware_9252/src/sysbios'
    Build of libraries done.
    clem4f package/cfg/spiloopback_pem4f.c ...
    'Finished building: ../spiloopback.cfg'
    ' '
    'Building file: ../EK_TM4C123GXL.c'
    'Invoking: ARM Compiler'
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --include_path="C:/TI_RTOS/Workspace/ESU_Firmware_9252" --include_path="C:/ti/tirtos_tivac_2_14_00_10/products/TivaWare_C_Series-2.1.1.71b" --include_path="C:/ti/tirtos_tivac_2_14_00_10/packages/ti/drivers/wifi/cc3100/Simplelink" --include_path="C:/ti/tirtos_tivac_2_14_00_10/packages/ti/drivers/wifi/cc3100/Simplelink/Include" -g --gcc --define=ccs="ccs" --define=PART_TM4C123GH6PM --define=ccs --define=TIVAWARE --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on --preproc_with_compile --preproc_dependency="EK_TM4C123GXL.pp" --cmd_file="configPkg/compiler.opt" "../EK_TM4C123GXL.c"
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1219: warning #48-D: incompatible redefinition of macro "Hwi_Instance" (declared at line 621 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1220: warning #48-D: incompatible redefinition of macro "Hwi_Handle" (declared at line 622 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1221: warning #48-D: incompatible redefinition of macro "Hwi_Module" (declared at line 623 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1222: warning #48-D: incompatible redefinition of macro "Hwi_Object" (declared at line 624 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1223: warning #48-D: incompatible redefinition of macro "Hwi_Struct" (declared at line 625 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1224: warning #48-D: incompatible redefinition of macro "Hwi_FuncPtr" (declared at line 626 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1225: warning #48-D: incompatible redefinition of macro "Hwi_Irp" (declared at line 627 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1226: warning #48-D: incompatible redefinition of macro "Hwi_HookSet" (declared at line 628 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1227: warning #48-D: incompatible redefinition of macro "Hwi_MaskingOption" (declared at line 629 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1228: warning #48-D: incompatible redefinition of macro "Hwi_StackInfo" (declared at line 630 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1238: warning #48-D: incompatible redefinition of macro "Hwi_Instance_State" (declared at line 631 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1240: warning #48-D: incompatible redefinition of macro "Hwi_MaskingOption_NONE" (declared at line 632 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1241: warning #48-D: incompatible redefinition of macro "Hwi_MaskingOption_ALL" (declared at line 633 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1242: warning #48-D: incompatible redefinition of macro "Hwi_MaskingOption_SELF" (declared at line 634 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1243: warning #48-D: incompatible redefinition of macro "Hwi_MaskingOption_BITMASK" (declared at line 635 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1244: warning #48-D: incompatible redefinition of macro "Hwi_MaskingOption_LOWER" (declared at line 636 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1245: warning #48-D: incompatible redefinition of macro "Hwi_dispatcherAutoNestingSupport" (declared at line 637 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1246: warning #48-D: incompatible redefinition of macro "Hwi_dispatcherSwiSupport" (declared at line 638 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1247: warning #48-D: incompatible redefinition of macro "Hwi_dispatcherTaskSupport" (declared at line 639 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1248: warning #48-D: incompatible redefinition of macro "Hwi_dispatcherIrpTrackingSupport" (declared at line 640 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1279: warning #48-D: incompatible redefinition of macro "Hwi_Params" (declared at line 642 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1280: warning #48-D: incompatible redefinition of macro "Hwi_getStackInfo" (declared at line 643 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1281: warning #48-D: incompatible redefinition of macro "Hwi_getCoreStackInfo" (declared at line 644 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1282: warning #48-D: incompatible redefinition of macro "Hwi_startup" (declared at line 645 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1283: warning #48-D: incompatible redefinition of macro "Hwi_switchFromBootStack" (declared at line 646 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1284: warning #48-D: incompatible redefinition of macro "Hwi_post" (declared at line 647 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1285: warning #48-D: incompatible redefinition of macro "Hwi_getTaskSP" (declared at line 648 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1286: warning #48-D: incompatible redefinition of macro "Hwi_disableInterrupt" (declared at line 649 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1287: warning #48-D: incompatible redefinition of macro "Hwi_enableInterrupt" (declared at line 650 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1288: warning #48-D: incompatible redefinition of macro "Hwi_restoreInterrupt" (declared at line 651 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1289: warning #48-D: incompatible redefinition of macro "Hwi_clearInterrupt" (declared at line 652 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1290: warning #48-D: incompatible redefinition of macro "Hwi_getFunc" (declared at line 653 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1291: warning #48-D: incompatible redefinition of macro "Hwi_setFunc" (declared at line 654 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1292: warning #48-D: incompatible redefinition of macro "Hwi_getHookContext" (declared at line 659 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1293: warning #48-D: incompatible redefinition of macro "Hwi_setHookContext" (declared at line 660 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1294: warning #48-D: incompatible redefinition of macro "Hwi_getIrp" (declared at line 655 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1295: warning #48-D: incompatible redefinition of macro "Hwi_disable" (declared at line 656 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1296: warning #48-D: incompatible redefinition of macro "Hwi_enable" (declared at line 657 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1297: warning #48-D: incompatible redefinition of macro "Hwi_restore" (declared at line 658 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1309: warning #48-D: incompatible redefinition of macro "Hwi_Module_name" (declared at line 661 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1310: warning #48-D: incompatible redefinition of macro "Hwi_Module_id" (declared at line 662 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1311: warning #48-D: incompatible redefinition of macro "Hwi_Module_startup" (declared at line 663 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1312: warning #48-D: incompatible redefinition of macro "Hwi_Module_startupDone" (declared at line 664 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1313: warning #48-D: incompatible redefinition of macro "Hwi_Module_hasMask" (declared at line 665 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1314: warning #48-D: incompatible redefinition of macro "Hwi_Module_getMask" (declared at line 666 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1315: warning #48-D: incompatible redefinition of macro "Hwi_Module_setMask" (declared at line 667 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1316: warning #48-D: incompatible redefinition of macro "Hwi_Object_heap" (declared at line 668 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1317: warning #48-D: incompatible redefinition of macro "Hwi_Module_heap" (declared at line 669 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1318: warning #48-D: incompatible redefinition of macro "Hwi_construct" (declared at line 670 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1319: warning #48-D: incompatible redefinition of macro "Hwi_create" (declared at line 671 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1320: warning #48-D: incompatible redefinition of macro "Hwi_handle" (declared at line 672 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1321: warning #48-D: incompatible redefinition of macro "Hwi_struct" (declared at line 673 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1322: warning #48-D: incompatible redefinition of macro "Hwi_Handle_label" (declared at line 674 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1323: warning #48-D: incompatible redefinition of macro "Hwi_Handle_name" (declared at line 675 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1324: warning #48-D: incompatible redefinition of macro "Hwi_Instance_init" (declared at line 676 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1325: warning #48-D: incompatible redefinition of macro "Hwi_Object_count" (declared at line 677 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1326: warning #48-D: incompatible redefinition of macro "Hwi_Object_get" (declared at line 678 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1327: warning #48-D: incompatible redefinition of macro "Hwi_Object_first" (declared at line 679 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1328: warning #48-D: incompatible redefinition of macro "Hwi_Object_next" (declared at line 680 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1329: warning #48-D: incompatible redefinition of macro "Hwi_Object_sizeof" (declared at line 681 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1330: warning #48-D: incompatible redefinition of macro "Hwi_Params_copy" (declared at line 682 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1331: warning #48-D: incompatible redefinition of macro "Hwi_Params_init" (declared at line 683 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1332: warning #48-D: incompatible redefinition of macro "Hwi_Instance_finalize" (declared at line 684 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1333: warning #48-D: incompatible redefinition of macro "Hwi_delete" (declared at line 685 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1334: warning #48-D: incompatible redefinition of macro "Hwi_destruct" (declared at line 686 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1335: warning #48-D: incompatible redefinition of macro "Hwi_Module_upCast" (declared at line 687 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1336: warning #48-D: incompatible redefinition of macro "Hwi_Module_to_ti_sysbios_interfaces_IHwi" (declared at line 688 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1337: warning #48-D: incompatible redefinition of macro "Hwi_Handle_upCast" (declared at line 689 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1338: warning #48-D: incompatible redefinition of macro "Hwi_Handle_to_ti_sysbios_interfaces_IHwi" (declared at line 690 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1339: warning #48-D: incompatible redefinition of macro "Hwi_Handle_downCast" (declared at line 691 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/family/arm/m3/Hwi.h", line 1340: warning #48-D: incompatible redefinition of macro "Hwi_Handle_from_ti_sysbios_interfaces_IHwi" (declared at line 692 of "C:/ti/tirtos_tivac_2_14_00_10/products/bios_6_42_01_20/packages/ti/sysbios/hal/Hwi.h")
    'Finished building: ../EK_TM4C123GXL.c'
    ' '
    'Building file: ../spiloopback.c'
    'Invoking: ARM Compiler'
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --include_path="C:/TI_RTOS/Workspace/ESU_Firmware_9252" --include_path="C:/ti/tirtos_tivac_2_14_00_10/products/TivaWare_C_Series-2.1.1.71b" --include_path="C:/ti/tirtos_tivac_2_14_00_10/packages/ti/drivers/wifi/cc3100/Simplelink" --include_path="C:/ti/tirtos_tivac_2_14_00_10/packages/ti/drivers/wifi/cc3100/Simplelink/Include" -g --gcc --define=ccs="ccs" --define=PART_TM4C123GH6PM --define=ccs --define=TIVAWARE --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on --preproc_with_compile --preproc_dependency="spiloopback.pp" --cmd_file="configPkg/compiler.opt" "../spiloopback.c"
    "../spiloopback.c", line 125: warning #552-D: variable "transferOK" was set but never used
    "../spiloopback.c", line 206: warning #552-D: variable "transferOK" was set but never used
    "../spiloopback.c", line 287: warning #552-D: variable "transferOK" was set but never used
    "../spiloopback.c", line 419: warning #552-D: variable "transferOK" was set but never used
    "../spiloopback.c", line 569: warning #552-D: variable "transferOK" was set but never used
    "../spiloopback.c", line 687: warning #552-D: variable "transferOK" was set but never used
    "../spiloopback.c", line 755: warning #552-D: variable "transferOK" was set but never used
    "../spiloopback.c", line 910: warning #552-D: variable "transferOK" was set but never used
    "../spiloopback.c", line 1114: warning #225-D: function "SysCtlDelay" declared implicitly
    'Finished building: ../spiloopback.c'
    ' '
    'Building target: ESU_Firmware_9252.out'
    'Invoking: ARM Linker'
    "C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -g --gcc --define=ccs="ccs" --define=PART_TM4C123GH6PM --define=ccs --define=TIVAWARE --diag_warning=225 --diag_warning=255 --display_error_number --diag_wrap=off --gen_func_subsections=on -z -m"ESU_Firmware_9252.map" --heap_size=0 --stack_size=512 -i"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/lib" -i"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.6/include" --reread_libs --warn_sections --diag_wrap=off --display_error_number --xml_link_info="ESU_Firmware_9252_linkInfo.xml" --rom_model -o "ESU_Firmware_9252.out" "./EK_TM4C123GXL.obj" "./spiloopback.obj" "../EK_TM4C123GXL.cmd" -l"configPkg/linker.cmd" -l"libc.a" -l"C:/ti/tirtos_tivac_2_14_00_10/products/TivaWare_C_Series-2.1.1.71b/grlib/ccs/Debug/grlib.lib" -l"C:/ti/tirtos_tivac_2_14_00_10/products/TivaWare_C_Series-2.1.1.71b/usblib/ccs/Debug/usblib.lib" -l"C:/ti/tirtos_tivac_2_14_00_10/products/TivaWare_C_Series-2.1.1.71b/driverlib/ccs/Debug/driverlib.lib"
    <Linking>
    'Finished building target: ESU_Firmware_9252.out'
    ' '

    **** Build Finished ****
  • Thanks for the additional information. I can see from the build logs that the warning comes from the EK_TM4C123GXL.c file. Can you share that file? I know we have a #include <ti/sysbios/family/arm/m3/Hwi.h> in that file. I want to make sure the <ti/sysbios/hal/Hwi.h> wasn't added as well.

    Thanks,
    Moses
  • Sure. Here it is.

    I assume it is also possible that another include file indirectly includes it? to cause the conflict??

    Jonathan

    /*
    * 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.
    */

    /*
    * ======== EK_TM4C123GXL.c ========
    * This file is responsible for setting up the board specific items for the
    * EK_TM4C123GXL board.
    */

    #include <stdint.h>
    #include <stdbool.h>
    #include <inc/hw_memmap.h>
    #include <inc/hw_types.h>
    #include <inc/hw_ints.h>
    #include <inc/hw_gpio.h>

    #include <driverlib/gpio.h>
    #include <driverlib/sysctl.h>
    #include <driverlib/i2c.h>
    #include <driverlib/ssi.h>
    #include <driverlib/uart.h>
    #include <driverlib/udma.h>
    #include <driverlib/pin_map.h>

    #include <xdc/std.h>
    #include <xdc/cfg/global.h>
    #include <xdc/runtime/Error.h>
    #include <xdc/runtime/System.h>
    #include <ti/sysbios/family/arm/m3/Hwi.h>

    #include "EK_TM4C123GXL.h"


    #ifndef TI_DRIVERS_UART_DMA
    #define TI_DRIVERS_UART_DMA 0
    #endif

    /*
    * =============================== DMA ===============================
    */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_ALIGN(dmaControlTable, 1024)
    #elif defined(__IAR_SYSTEMS_ICC__)
    #pragma data_alignment=1024
    #elif defined(__GNUC__)
    __attribute__ ((aligned (1024)))
    #endif
    static tDMAControlTable dmaControlTable[32];
    static bool dmaInitialized = false;

    /* Hwi_Struct used in the initDMA Hwi_construct call */
    static Hwi_Struct hwiStruct;

    /*
    * ======== dmaErrorHwi ========
    */
    static Void dmaErrorHwi(UArg arg)
    {
    System_printf("DMA error code: %d\n", uDMAErrorStatusGet());
    uDMAErrorStatusClear();
    System_abort("DMA error!!");
    }

    /*
    * ======== EK_TM4C123GXL_initDMA ========
    */
    void EK_TM4C123GXL_initDMA(void)
    {
    Error_Block eb;
    Hwi_Params hwiParams;

    if (!dmaInitialized) {

    Error_init(&eb);

    Hwi_Params_init(&hwiParams);
    Hwi_construct(&(hwiStruct), INT_UDMAERR, dmaErrorHwi,
    &hwiParams, &eb);
    if (Error_check(&eb)) {
    System_abort("Couldn't create DMA error hwi");
    }

    SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA);
    uDMAEnable();
    uDMAControlBaseSet(dmaControlTable);

    dmaInitialized = true;
    }
    }

    /*
    * =============================== General ===============================
    */
    /*
    * ======== EK_TM4C123GXL_initGeneral ========
    */
    void EK_TM4C123GXL_initGeneral(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    }

    /*
    * =============================== GPIO ===============================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(GPIOTiva_config, ".const:GPIOTiva_config")
    #endif

    #include <ti/drivers/GPIO.h>
    #include <ti/drivers/gpio/GPIOTiva.h>

    /*
    * Array of Pin configurations
    * NOTE: The order of the pin configurations must coincide with what was
    * defined in EK_TM4C123GXL.h
    * NOTE: Pins not used for interrupts should be placed at the end of the
    * array. Callback entries can be omitted from callbacks array to
    * reduce memory usage.
    */
    GPIO_PinConfig gpioPinConfigs[] = {
    /* Input pins */
    /* EK_TM4C123GXL_GPIO_SW1 */
    GPIOTiva_PF_4 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING,
    /* EK_TM4C123GXL_GPIO_SW2 */
    //GPIOTiva_PF_0 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING,
    /* EK_TM4C123GXL_GPIO_SW3 */
    //GPIOTiva_PC_6 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_FALLING,
    /* EK_TM4C123GXL_GPIO_SPI_IRQ */
    GPIOTiva_PD_4 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_FALLING,

    /* Output pins */
    /* EK_TM4C123GXL_LED_RED */
    //GPIOTiva_PF_1 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    /* EK_TM4C123GXL_LED_BLUE */
    //GPIOTiva_PF_2 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    /* EK_TM4C123GXL_LED_GREEN */
    //GPIOTiva_PF_3 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    /* EK_TM4C123GXL_GPIO_WD */
    GPIOTiva_PC_7 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    /* EK_TM4C123GXL_GPIO_MCU_CLR_DAC */
    GPIOTiva_PA_6 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    /* EK_TM4C123GXL_GPIO_TP1 */
    GPIOTiva_PD_6 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    /* EK_TM4C123GXL_GPIO_GDO_1 */
    GPIOTiva_PE_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW


    };

    /*
    * Array of callback function pointers
    * NOTE: The order of the pin configurations must coincide with what was
    * defined in EK_TM4C123GXL.h
    * NOTE: Pins not used for interrupts can be omitted from callbacks array to
    * reduce memory usage (if placed at end of gpioPinConfigs array).
    */
    GPIO_CallbackFxn gpioCallbackFunctions[] = {
    NULL, /* EK_TM4C123GXL_GPIO_SW1 */
    //NULL, /* EK_TM4C123GXL_GPIO_SW2 */
    //NULL /* EK_TM4C123GXL_GPIO_SW3 */
    NULL /* EK_TM4C123GXL_GPIO_SPI_IRQ */
    };

    /* The device-specific GPIO_config structure */
    const GPIOTiva_Config GPIOTiva_config = {
    .pinConfigs = (GPIO_PinConfig *) gpioPinConfigs,
    .callbacks = (GPIO_CallbackFxn *) gpioCallbackFunctions,
    .numberOfPinConfigs = sizeof(gpioPinConfigs) / sizeof(GPIO_PinConfig),
    .numberOfCallbacks = sizeof(gpioCallbackFunctions)/sizeof(GPIO_CallbackFxn),
    .intPriority = (~0)
    };

    /*
    * ======== EK_TM4C123GXL_initGPIO ========
    */
    void EK_TM4C123GXL_initGPIO(void)
    {
    /* EK_TM4C123GXL_GPIO_SW2 - PF0 requires unlocking before configuration */
    HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
    HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= GPIO_PIN_0;
    //GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_0);

    /* EK_TM4C123GXL_GPIO_SW3 - PC6 requires unlocking before configuration */
    //HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
    //HWREG(GPIO_PORTC_BASE + GPIO_O_CR) |= GPIO_PIN_6;
    //GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_6);

    /* EK_TM4C123GXL_GPIO_WD - PC7 requires unlocking before configuration */
    //HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
    //HWREG(GPIO_PORTC_BASE + GPIO_O_CR) |= GPIO_PIN_7;
    //GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_7);


    /* EK_TM4C123GXL_GPIO_SPI_IRQ - PD4 requires unlocking before configuration */
    HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
    HWREG(GPIO_PORTD_BASE + GPIO_O_CR) |= GPIO_PIN_4;
    GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_4);
    //GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_3);


    /* Initialize peripheral and pins */
    GPIO_init();
    }

    /*
    * =============================== I2C ===============================
    */
    /* 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(i2cTivaHWAttrs, ".const:i2cTivaHWAttrs")
    #endif

    #include <ti/drivers/I2C.h>
    #include <ti/drivers/i2c/I2CTiva.h>

    /* I2C objects */
    I2CTiva_Object i2cTivaObjects[EK_TM4C123GXL_I2CCOUNT];

    /* I2C configuration structure, describing which pins are to be used */
    const I2CTiva_HWAttrs i2cTivaHWAttrs[EK_TM4C123GXL_I2CCOUNT] = {
    {I2C1_BASE, INT_I2C1, ~0 /* Interrupt priority */},
    {I2C3_BASE, INT_I2C3, ~0 /* Interrupt priority */},
    };

    const I2C_Config I2C_config[] = {
    {&I2CTiva_fxnTable, &i2cTivaObjects[0], &i2cTivaHWAttrs[0]},
    {&I2CTiva_fxnTable, &i2cTivaObjects[1], &i2cTivaHWAttrs[1]},
    {NULL, NULL, NULL}
    };

    /*
    * ======== EK_TM4C123GXL_initI2C ========
    */
    void EK_TM4C123GXL_initI2C(void)
    {
    /* I2C1 Init */
    /* Enable the peripheral */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C1);

    /* Configure the appropriate pins to be I2C instead of GPIO. */
    GPIOPinConfigure(GPIO_PA6_I2C1SCL);
    GPIOPinConfigure(GPIO_PA7_I2C1SDA);
    GPIOPinTypeI2CSCL(GPIO_PORTA_BASE, GPIO_PIN_6);
    GPIOPinTypeI2C(GPIO_PORTA_BASE, GPIO_PIN_7);

    /* I2C3 Init */
    /*
    * NOTE: TI-RTOS examples configure pins PD0 & PD1 for SSI3 or I2C3. Thus,
    * a conflict occurs when the I2C & SPI drivers are used simultaneously in
    * an application. Modify the pin mux settings in this file and resolve the
    * conflict before running your the application.
    */
    /* Enable the peripheral */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C3);

    /* Configure the appropriate pins to be I2C instead of GPIO. */
    GPIOPinConfigure(GPIO_PD0_I2C3SCL);
    GPIOPinConfigure(GPIO_PD1_I2C3SDA);
    GPIOPinTypeI2CSCL(GPIO_PORTD_BASE, GPIO_PIN_0);
    GPIOPinTypeI2C(GPIO_PORTD_BASE, GPIO_PIN_1);

    /*
    * These GPIOs are connected to PD0 and PD1 and need to be brought into a
    * GPIO input state so they don't interfere with I2C communications.
    */
    GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_6);
    GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_7);

    I2C_init();
    }

    /*
    * =============================== PWM ===============================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(PWM_config, ".const:PWM_config")
    #pragma DATA_SECTION(pwmTivaHWAttrs, ".const:pwmTivaHWAttrs")
    #endif

    #include <ti/drivers/PWM.h>
    #include <ti/drivers/pwm/PWMTiva.h>
    #include <driverlib/pwm.h>

    PWMTiva_Object pwmTivaObjects[EK_TM4C123GXL_PWMCOUNT];

    /* PWM configuration structure */
    const PWMTiva_HWAttrs pwmTivaHWAttrs[EK_TM4C123GXL_PWMCOUNT] = {
    {
    PWM1_BASE,
    PWM_OUT_6,
    PWM_GEN_MODE_DOWN | PWM_GEN_MODE_DBG_RUN
    },
    {
    PWM1_BASE,
    PWM_OUT_7,
    PWM_GEN_MODE_DOWN | PWM_GEN_MODE_DBG_RUN
    }
    };

    const PWM_Config PWM_config[] = {
    {&PWMTiva_fxnTable, &pwmTivaObjects[0], &pwmTivaHWAttrs[0]},
    {&PWMTiva_fxnTable, &pwmTivaObjects[1], &pwmTivaHWAttrs[1]},
    {NULL, NULL, NULL}
    };

    /*
    * ======== EK_TM4C123GXL_initPWM ========
    */
    void EK_TM4C123GXL_initPWM(void)
    {
    /* Enable PWM peripherals */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1);

    /*
    * Enable PWM output on GPIO pins. Board_LED1 and Board_LED2 are now
    * controlled by PWM peripheral - Do not use GPIO APIs.
    */
    GPIOPinConfigure(GPIO_PF2_M1PWM6);
    GPIOPinConfigure(GPIO_PF3_M1PWM7);
    GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_2 |GPIO_PIN_3);

    PWM_init();
    }

    /*
    * =============================== SDSPI ===============================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(SDSPI_config, ".const:SDSPI_config")
    #pragma DATA_SECTION(sdspiTivaHWattrs, ".const:sdspiTivaHWattrs")
    #endif

    #include <ti/drivers/SDSPI.h>
    #include <ti/drivers/sdspi/SDSPITiva.h>

    /* SDSPI objects */
    SDSPITiva_Object sdspiTivaObjects[EK_TM4C123GXL_SDSPICOUNT];

    /* SDSPI configuration structure, describing which pins are to be used */
    const SDSPITiva_HWAttrs sdspiTivaHWattrs[EK_TM4C123GXL_SDSPICOUNT] = {
    {
    SSI2_BASE, /* SPI base address */

    GPIO_PORTB_BASE, /* SPI SCK PORT */
    GPIO_PIN_4, /* SCK PIN */
    GPIO_PORTB_BASE, /* SPI MISO PORT*/
    GPIO_PIN_6, /* MISO PIN */
    GPIO_PORTB_BASE, /* SPI MOSI PORT */
    GPIO_PIN_7, /* MOSI PIN */
    GPIO_PORTA_BASE, /* GPIO CS PORT */
    GPIO_PIN_5, /* CS PIN */
    }
    };

    const SDSPI_Config SDSPI_config[] = {
    {&SDSPITiva_fxnTable, &sdspiTivaObjects[0], &sdspiTivaHWattrs[0]},
    {NULL, NULL, NULL}
    };

    /*
    * ======== EK_TM4C123GXL_initSDSPI ========
    */
    void EK_TM4C123GXL_initSDSPI(void)
    {
    /* Enable the peripherals used by the SD Card */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);

    /* Configure pad settings */
    GPIOPadConfigSet(GPIO_PORTB_BASE,
    GPIO_PIN_4 | GPIO_PIN_7,
    GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD);

    GPIOPadConfigSet(GPIO_PORTB_BASE,
    GPIO_PIN_6,
    GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU);

    GPIOPadConfigSet(GPIO_PORTA_BASE,
    GPIO_PIN_5,
    GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD);

    GPIOPinConfigure(GPIO_PB4_SSI2CLK);
    GPIOPinConfigure(GPIO_PB6_SSI2RX);
    GPIOPinConfigure(GPIO_PB7_SSI2TX);

    /*
    * These GPIOs are connected to PB6 and PB7 and need to be brought into a
    * GPIO input state so they don't interfere with SPI communications.
    */
    GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_0);
    GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_1);

    SDSPI_init();
    }

    /*
    * =============================== SPI ===============================
    */
    /* 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(spiTivaDMAHWAttrs, ".const:spiTivaDMAHWAttrs")
    #endif

    #include <ti/drivers/SPI.h>
    #include <ti/drivers/spi/SPITivaDMA.h>

    /* SPI objects */
    SPITivaDMA_Object spiTivaDMAObjects[EK_TM4C123GXL_SPICOUNT];
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_ALIGN(spiTivaDMAscratchBuf, 32)
    #elif defined(__IAR_SYSTEMS_ICC__)
    #pragma data_alignment=32
    #elif defined(__GNUC__)
    __attribute__ ((aligned (32)))
    #endif
    uint32_t spiTivaDMAscratchBuf[EK_TM4C123GXL_SPICOUNT];

    /* SPI configuration structure */
    const SPITivaDMA_HWAttrs spiTivaDMAHWAttrs[EK_TM4C123GXL_SPICOUNT] = {
    {
    SSI0_BASE,
    INT_SSI0,
    ~0, /* Interrupt priority */
    &spiTivaDMAscratchBuf[0],
    0,
    UDMA_CHANNEL_SSI0RX,
    UDMA_CHANNEL_SSI0TX,
    uDMAChannelAssign,
    UDMA_CH10_SSI0RX,
    UDMA_CH11_SSI0TX
    },
    {
    SSI2_BASE,
    INT_SSI2,
    ~0, /* Interrupt priority */
    &spiTivaDMAscratchBuf[1],
    0,
    UDMA_SEC_CHANNEL_UART2RX_12,
    UDMA_SEC_CHANNEL_UART2TX_13,
    uDMAChannelAssign,
    UDMA_CH12_SSI2RX,
    UDMA_CH13_SSI2TX
    },
    {
    SSI3_BASE,
    INT_SSI3,
    ~0, /* Interrupt priority */
    &spiTivaDMAscratchBuf[2],
    0,
    UDMA_SEC_CHANNEL_TMR2A_14,
    UDMA_SEC_CHANNEL_TMR2B_15,
    uDMAChannelAssign,
    UDMA_CH14_SSI3RX,
    UDMA_CH15_SSI3TX
    }
    };

    const SPI_Config SPI_config[] = {
    {&SPITivaDMA_fxnTable, &spiTivaDMAObjects[0], &spiTivaDMAHWAttrs[0]},
    {&SPITivaDMA_fxnTable, &spiTivaDMAObjects[1], &spiTivaDMAHWAttrs[1]},
    {&SPITivaDMA_fxnTable, &spiTivaDMAObjects[2], &spiTivaDMAHWAttrs[2]},
    {NULL, NULL, NULL},
    };

    /*
    * ======== EK_TM4C123GXL_initSPI ========
    */
    void EK_TM4C123GXL_initSPI(void)
    {
    /* SPI0 */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);

    /* Need to unlock PF0 */
    GPIOPinConfigure(GPIO_PA2_SSI0CLK);
    GPIOPinConfigure(GPIO_PA3_SSI0FSS);
    GPIOPinConfigure(GPIO_PA4_SSI0RX);
    GPIOPinConfigure(GPIO_PA5_SSI0TX);

    GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_3 |
    GPIO_PIN_4 | GPIO_PIN_5);


    /* SPI1 */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI1);

    /* Need to unlock PF0 */
    GPIOPinConfigure(GPIO_PF0_SSI1RX);
    GPIOPinConfigure(GPIO_PF1_SSI1TX);
    GPIOPinConfigure(GPIO_PF2_SSI1CLK);
    GPIOPinConfigure(GPIO_PF3_SSI1FSS);

    GPIOPinTypeSSI(GPIO_PORTF_BASE, GPIO_PIN_0 | GPIO_PIN_1 |
    GPIO_PIN_2 | GPIO_PIN_3);


    /* SSI2 */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);

    GPIOPinConfigure(GPIO_PB4_SSI2CLK);
    GPIOPinConfigure(GPIO_PB5_SSI2FSS);
    GPIOPinConfigure(GPIO_PB6_SSI2RX);
    GPIOPinConfigure(GPIO_PB7_SSI2TX);

    GPIOPinTypeSSI(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_5 |
    GPIO_PIN_6 | GPIO_PIN_7);

    /* SSI3 */
    /*
    * NOTE: TI-RTOS examples configure pins PD0 & PD1 for SSI3 or I2C3. Thus,
    * a conflict occurs when the I2C & SPI drivers are used simultaneously in
    * an application. Modify the pin mux settings in this file and resolve the
    * conflict before running your the application.
    */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI3);

    GPIOPinConfigure(GPIO_PD0_SSI3CLK);
    GPIOPinConfigure(GPIO_PD1_SSI3FSS);
    GPIOPinConfigure(GPIO_PD2_SSI3RX);
    GPIOPinConfigure(GPIO_PD3_SSI3TX);

    GPIOPinTypeSSI(GPIO_PORTD_BASE, GPIO_PIN_0 | GPIO_PIN_1 |
    GPIO_PIN_2 | GPIO_PIN_3);

    EK_TM4C123GXL_initDMA();
    SPI_init();
    }

    /*
    * =============================== UART ===============================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(UART_config, ".const:UART_config")
    #pragma DATA_SECTION(uartTivaHWAttrs, ".const:uartTivaHWAttrs")
    #endif

    #include <ti/drivers/UART.h>
    #if TI_DRIVERS_UART_DMA
    #include <ti/drivers/uart/UARTTivaDMA.h>

    /* UART objects */
    UARTTivaDMA_Object uartTivaObjects[EK_TM4C123GXL_UARTCOUNT];

    /* UART configuration structure */
    const UARTTivaDMA_HWAttrs uartTivaHWAttrs[EK_TM4C123GXL_UARTCOUNT] = {
    {/* EK_TM4C123GXL_UART0 */
    UART0_BASE,
    INT_UART0,
    ~0, /* Interrupt priority */
    UDMA_CH8_UART0RX,
    UDMA_CH9_UART0TX,
    },
    };

    const UART_Config UART_config[] = {
    {
    &UARTTivaDMA_fxnTable,
    &uartTivaObjects[0],
    &uartTivaHWAttrs[0]
    },
    {NULL, NULL, NULL}
    };

    #else
    #include <ti/drivers/uart/UARTTiva.h>

    /* UART objects */
    UARTTiva_Object uartTivaObjects[EK_TM4C123GXL_UARTCOUNT];
    unsigned char uartTivaRingBuffer[32];

    /* UART configuration structure */
    const UARTTiva_HWAttrs uartTivaHWAttrs[EK_TM4C123GXL_UARTCOUNT] = {
    {/* EK_TM4C123GXL_UART0 */
    .baseAddr = UART0_BASE,
    .intNum = INT_UART0,
    .intPriority = ~0,
    .flowControl = UART_FLOWCONTROL_NONE,
    .ringBufPtr = uartTivaRingBuffer,
    .ringBufSize = sizeof(uartTivaRingBuffer)
    }
    };

    const UART_Config UART_config[] = {
    {
    &UARTTiva_fxnTable,
    &uartTivaObjects[0],
    &uartTivaHWAttrs[0]
    },
    {NULL, NULL, NULL}
    };
    #endif /* TI_DRIVERS_UART_DMA */

    /*
    * ======== EK_TM4C123GXL_initUART ========
    */
    void EK_TM4C123GXL_initUART(void)
    {
    /* Enable and configure the peripherals used by the uart. */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
    GPIOPinConfigure(GPIO_PA0_U0RX);
    GPIOPinConfigure(GPIO_PA1_U0TX);
    GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

    /* Initialize the UART driver */
    #if TI_DRIVERS_UART_DMA
    EK_TM4C123GXL_initDMA();
    #endif
    UART_init();
    }

    /*
    * =============================== USB ===============================
    */
    /*
    * ======== EK_TM4C123GXL_initUSB ========
    * This function just turns on the USB
    */
    void EK_TM4C123GXL_initUSB(EK_TM4C123GXL_USBMode usbMode)
    {
    /* Enable the USB peripheral and PLL */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_USB0);
    SysCtlUSBPLLEnable();

    /* Setup pins for USB operation */
    GPIOPinTypeUSBAnalog(GPIO_PORTD_BASE, GPIO_PIN_4 | GPIO_PIN_5);

    if (usbMode == EK_TM4C123GXL_USBHOST) {
    System_abort("USB host not supported\n");
    }
    }

    /*
    * =============================== Watchdog ===============================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(Watchdog_config, ".const:Watchdog_config")
    #pragma DATA_SECTION(watchdogTivaHWAttrs, ".const:watchdogTivaHWAttrs")
    #endif

    #include <ti/drivers/Watchdog.h>
    #include <ti/drivers/watchdog/WatchdogTiva.h>

    /* Watchdog objects */
    WatchdogTiva_Object watchdogTivaObjects[EK_TM4C123GXL_WATCHDOGCOUNT];

    /* Watchdog configuration structure */
    const WatchdogTiva_HWAttrs watchdogTivaHWAttrs[EK_TM4C123GXL_WATCHDOGCOUNT] = {
    /* EK_TM4C123GXL_WATCHDOG0 with 1 sec period at default CPU clock freq */
    {WATCHDOG0_BASE, INT_WATCHDOG, ~0 /* Interrupt priority */, 80000000},
    };

    const Watchdog_Config Watchdog_config[] = {
    {&WatchdogTiva_fxnTable, &watchdogTivaObjects[0], &watchdogTivaHWAttrs[0]},
    {NULL, NULL, NULL},
    };

    /*
    * ======== EK_TM4C123GXL_initWatchdog ========
    *
    * NOTE: To use the other watchdog timer with base address WATCHDOG1_BASE,
    * an additional function call may need be made to enable PIOSC. Enabling
    * WDOG1 does not do this. Enabling another peripheral that uses PIOSC
    * such as ADC0 or SSI0, however, will do so. Example:
    *
    * SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
    * SysCtlPeripheralEnable(SYSCTL_PERIPH_WDOG1);
    *
    * See the following forum post for more information:
    * e2e.ti.com/.../654390.aspx
    */
    void EK_TM4C123GXL_initWatchdog(void)
    {
    /* Enable peripherals used by Watchdog */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_WDOG0);

    /* Initialize the Watchdog driver */
    Watchdog_init();
    }

    /*
    * =============================== WiFi ===============================
    */
    /* Place into subsections to allow the TI linker to remove items properly */
    #if defined(__TI_COMPILER_VERSION__)
    #pragma DATA_SECTION(WiFi_config, ".const:WiFi_config")
    #pragma DATA_SECTION(wiFiCC3100HWAttrs, ".const:wiFiCC3100HWAttrs")
    #endif

    #include <ti/drivers/WiFi.h>
    #include <ti/drivers/wifi/WiFiCC3100.h>

    /* WiFi objects */
    WiFiCC3100_Object wiFiCC3100Objects[EK_TM4C123GXL_WIFICOUNT];

    /* WiFi configuration structure */
    const WiFiCC3100_HWAttrs wiFiCC3100HWAttrs[EK_TM4C123GXL_WIFICOUNT] = {
    {
    GPIO_PORTB_BASE, /* IRQ port */
    GPIO_PIN_2, /* IRQ pin */
    INT_GPIOB, /* IRQ port interrupt vector */

    GPIO_PORTE_BASE, /* CS port */
    GPIO_PIN_0, /* CS pin */

    GPIO_PORTE_BASE, /* WLAN EN port */
    GPIO_PIN_4 /* WLAN EN pin */
    }
    };

    const WiFi_Config WiFi_config[] = {
    {
    &WiFiCC3100_fxnTable,
    &wiFiCC3100Objects[0],
    &wiFiCC3100HWAttrs[0]
    },
    {NULL,NULL, NULL},
    };

    /*
    * ======== EK_TM4C123GXL_initWiFi ========
    */
    void EK_TM4C123GXL_initWiFi(void)
    {
    /* Configure EN & CS pins to disable CC3100 */
    GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_4);
    GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_0, GPIO_PIN_0);
    GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_4, 0);

    /* Configure SSI2 for CC3100 */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);
    GPIOPinConfigure(GPIO_PB4_SSI2CLK);
    GPIOPinConfigure(GPIO_PB6_SSI2RX);
    GPIOPinConfigure(GPIO_PB7_SSI2TX);
    GPIOPinTypeSSI(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_7);

    /* Configure IRQ pin */
    GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_2);
    GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_2, GPIO_STRENGTH_2MA,
    GPIO_PIN_TYPE_STD_WPD);
    GPIOIntTypeSet(GPIO_PORTB_BASE, GPIO_PIN_2, GPIO_RISING_EDGE);

    SPI_init();
    EK_TM4C123GXL_initDMA();

    WiFi_init();
    }

  • Hi Jonathan,

    In your .cfg you have the following:
    var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
    ...
    Program.global.syncManagerISR_HWI = Hwi.create(19, "&topSyncManagerISR", hwi0Params);

    This places, indirectly, a #include <ti/sysbios/hal/Hwi.h> into the xdc/cfg/global.h file (since you've created a global Hwi variable in the .cfg). Since you have xdc/cfg/global.h (and thus #includein <ti/sysbios/hal/Hwi.h>) in the EK_TM4C123GXL.c and you have #include <ti/sysbios/family/arm/m3/Hwi.h> also, you are getting the redefintion.

    There are two ways to fix this.
    1. Remove the global.h include from the EK_TM4C1223GXL.c file. In more recent TI-RTOS versions, we've done this to avoid this issue.
    2. There is a way to have the two Hwi.h includes but you need to use the long names for one of them. I can send you an example if you want to do this.

    Todd

  • Kudos, Todd. The warnings disappeared after I removed the global.h include from the  EK_TM4C1223GXL.c file. Appreciate your help.

  • Please close this thread as "Answered".

    Thank you.