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.

Trouble interfacing 28335 and I2C TMP100 - Linking problem!!

Other Parts Discussed in Thread: TMP100, TMS320F28335

Hi,

I need to interface TMP100 and Delfino 320f28335.

I am having quite many linking errors. However, they all seem to be related to the header files, which have never happened before. Stack size is 0x400.

Full console log follows:


**** Build of configuration Debug for project Lab12Resp ****

C:\ti\ccsv5\utils\bin\gmake -k all
'Building target: Lab12Resp.out'
'Invoking: C2000 Linker'
"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/bin/cl2000" -v28 -ml -mt --float_support=fpu32 -g --diag_warning=225 --display_error_number --diag_wrap=off -z --stack_size=0x400 -m"Lab12Resp.map" --warn_sections -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/lib" -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.0/include" --reread_libs --display_error_number --diag_wrap=off --rom_model -o "Lab12Resp.out"  "./Lab12_1.obj" "./DSP2833x_usDelay.obj" "./DSP2833x_Xintf.obj" "./DSP2833x_SysCtrl.obj" "./DSP2833x_Spi.obj" "./DSP2833x_Sci.obj" "./DSP2833x_SWPrioritizedPieVect.obj" "./DSP2833x_SWPrioritizedDefaultIsr.obj" "./DSP2833x_PieVect.obj" "./DSP2833x_PieCtrl.obj" "./DSP2833x_MemCopy.obj" "./DSP2833x_Mcbsp.obj" "./DSP2833x_I2C.obj" "./DSP2833x_Gpio.obj" "./DSP2833x_GlobalVariableDefs.obj" "./DSP2833x_EQep.obj" "./DSP2833x_EPwm.obj" "./DSP2833x_ECap.obj" "./DSP2833x_ECan.obj" "./DSP2833x_DisInt.obj" "./DSP2833x_DefaultIsr.obj" "./DSP2833x_DMA.obj" "./DSP2833x_DBGIER.obj" "./DSP2833x_CpuTimers.obj" "./DSP2833x_CodeStartBranch.obj" "./DSP2833x_CSMPasswords.obj" "./DSP2833x_Adc.obj" "./DSP2833x_ADC_cal.obj" -l"libc.a" "../28335_RAM_lnk.cmd" "Z:/D/Mestrado/DSP/Headers_proj/DSP2833x_Headers_BIOS.cmd"
<Linking>
error #10056: symbol "_PieVectTableInit" redefined: first defined in "./DSP2833x_SWPrioritizedPieVect.obj"; redefined in "./DSP2833x_PieVect.obj"
error #10056: symbol "_InitPieVectTable" redefined: first defined in "./DSP2833x_SWPrioritizedPieVect.obj"; redefined in "./DSP2833x_PieVect.obj"
error #10056: symbol "_ILLEGAL_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM6_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_DATALOG_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SPITXINTA_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SPIRXINTA_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_DINTCH3_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_XINT4_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SEQ1INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAP3_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_INT13_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_MXINTA_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM4_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER5_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_XINT7_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM5_TZINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM4_TZINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAN0INTA_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM6_TZINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EMUINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAP1_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM1_TZINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EQEP2_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER11_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM3_TZINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER4_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM2_TZINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_XINT6_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM2_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAN0INTB_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_TINT0_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_WAKEINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_DINTCH4_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER10_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER7_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_XINT1_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAP6_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_INT14_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_MXINTB_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_DINTCH5_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER6_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAP4_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_MRINTA_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_DINTCH6_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER12_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ADCINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER1_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_XINT3_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM5_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_NMI_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SCITXINTB_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SCIRXINTB_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAN1INTA_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAP2_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_PIE_RESERVED" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_I2CINT1A_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_XINT2_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_I2CINT2A_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SCITXINTC_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SCIRXINTC_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_RTOSINT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM3_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAN1INTB_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER9_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER3_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EQEP1_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_MRINTB_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_DINTCH1_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER8_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_EPWM1_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SEQ2INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_USER2_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_LUF_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_LVF_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SCITXINTA_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_SCIRXINTA_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_rsvd_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_ECAP5_INT_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_DINTCH2_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
error #10056: symbol "_XINT5_ISR" redefined: first defined in "./DSP2833x_SWPrioritizedDefaultIsr.obj"; redefined in "./DSP2833x_DefaultIsr.obj"
"../28335_RAM_lnk.cmd", line 125: error #10099-D: program will not fit into available memory.  placement with alignment/blocking fails for section ".text" size 0x16fd page 0.  Available memory ranges:
   RAML1        size: 0x1000       unused: 0x1000       max hole: 0x1000    
"Z:/D/Mestrado/DSP/Headers_proj/DSP2833x_Headers_BIOS.cmd", line 108: warning #10097: me
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
mory range not found: PIEVECT on page 1
"Z:/D/Mestrado/DSP/Headers_proj/DSP2833x_Headers_BIOS.cmd", line 108: error #10099-D: program will not fit into available memory.  run placement with alignment/blocking fails for section "PieVectTableFile" size 0x100 page 1
ELFLNK/build.c:2401:internal fatal error #10251: ("PieVectTableFile:DSP2833x_GlobalVariableDefs.obj")

INTERNAL ERROR: C:\ti\ccsv5\tools\compiler\c2000_6.1.0\bin\lnk2000.exe aborted


This is a serious problem.  Please contact Customer
Support with this message and a copy of the input file
and help us to continue to make the tools more robust.


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

**** Build Finished ****

______________________________________________________________________________________________________________________________

______________________________________________________________________________________________________________________________

The code follows:

//
//      Lab12_1: TMS320F28335
//      (C) Frank Bormann
//
//###########################################################################
//
// FILE:    Lab12_1.c
//
// TITLE:    DSP28335 I2C test
//          Temperature Sensor TMP100 connected to GPIO33 (SCL) and GPIO32(SDA)
//            LED LD1 as life indicator 100 ms toggle
//            Basic use of TMP100 (9 bit mode, 0.5 celcius resolution)
//            use watch window for variable "temperature" (type int; qvalue:8)
//###########################################################################
//
//  Ver | dd mmm yyyy | Who  | Description of changes
// =====|=============|======|===============================================
//  3.0 | 24 Jul 2009 | F.B. | Lab12_1  F28335; Header-files Version 1.20
//  3.1 | 15 Nov 2009 | F.B  | Lab12_1 for F28335 @30MHz and PE revision 5
//###########################################################################
#include "DSP2833x_Device.h"

// TMP100 commands
#define TMP100_SLAVE             0x48    // slave address TMP100 (ADDR0=ADDR1=0)
#define POINTER_TEMPERATURE     0    
#define POINTER_CONFIGURATION     1
#define POINTER_T_LOW             2
#define POINTER_T_HIGH             3

// external function prototypes
extern void InitSysCtrl(void);
extern void InitPieCtrl(void);
extern void InitPieVectTable(void);
extern void InitCpuTimers(void);
extern void ConfigCpuTimer(struct CPUTIMER_VARS *, float, float);


// Prototype statements for functions found within this file.
void Gpio_select(void);
void I2CA_Init(void);
interrupt void cpu_timer0_isr(void);

int temperature;    // temperature = 2' Komplement of temperature (-128 ... +127 Celsius)
                    // is an I8Q8 - Value

//###########################################################################
//                        main code                                    
//###########################################################################
void main(void)
{
    
    InitSysCtrl();    // Basic Core Init from DSP2833x_SysCtrl.c

    EALLOW;
       SysCtrlRegs.WDCR= 0x00AF;    // Re-enable the watchdog
       EDIS;            // 0x00AF  to NOT disable the Watchdog, Prescaler = 64

    DINT;                // Disable all interrupts
    
    Gpio_select();    // GPIO9, GPIO11, GPIO34 and GPIO49 as output
                    // to 4 LEDs at Peripheral Explorer    

    //    Initialize I2C
    I2CA_Init();

    InitPieCtrl();        // basic setup of PIE table; from DSP2833x_PieCtrl.c
    InitPieVectTable();    // default ISR's in PIE

    EALLOW;
    PieVectTable.TINT0 = &cpu_timer0_isr;
    EDIS;

    InitCpuTimers();    // basic setup CPU Timer0, 1 and 2
    ConfigCpuTimer(&CpuTimer0,150,100000);

    PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

    IER |=1;

    EINT;
    ERTM;

    CpuTimer0Regs.TCR.bit.TSS = 0;    // start timer0

    while(1)
    {    
              while(CpuTimer0.InterruptCount == 0);
            CpuTimer0.InterruptCount = 0;

            EALLOW;
            SysCtrlRegs.WDKEY = 0x55;    // service WD #1
            EDIS;

            I2caRegs.I2CCNT        = 2;    // read 2 byte temperature
            I2caRegs.I2CMDR.all = 0x6C20;
            /*    Bit15 = 0;    no NACK in receiver mode
                Bit14 = 1;  FREE on emulation halt
                Bit13 = 1;  STT  generate START
                Bit12 = 0;    reserved
                Bit11 = 1;  STP  generate STOP
                Bit10 = 1;  MST  master mode
                Bit9  = 0;  TRX  master - receiver mode
                Bit8  = 0;    XA   7 bit address mode
                Bit7  = 0;  RM   nonrepeat mode, I2CCNT determines # of bytes
                Bit6  = 0;  DLB  no loopback mode
                Bit5  = 1;  IRS  I2C module enabled
                Bit4  = 0;  STB  no start byte mode
                Bit3  = 0;  FDF  no free data format
                Bit2-0: 0;  BC   8 bit per data byte    */

            while(I2caRegs.I2CSTR.bit.RRDY == 0);    // wait for 1st byte
            temperature = I2caRegs.I2CDRR << 8;            // read upper 8 Bit (integers)
            // RRDY is automatically cleared by read of I2CDRR
            while(I2caRegs.I2CSTR.bit.RRDY == 0);    // wait for 2nd byte
            temperature += I2caRegs.I2CDRR;                // read lower 8 Bit (fractions)

              GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;        // toggle red LED LD3 @ 28335CC
    }
}

void Gpio_select(void)
{
    EALLOW;
    GpioCtrlRegs.GPAMUX1.all = 0;            // GPIO15 ... GPIO0 = General Puropse I/O
    GpioCtrlRegs.GPAMUX2.all = 0;            // GPIO31 ... GPIO16 = General Purpose I/O
    
    GpioCtrlRegs.GPBMUX1.all = 0;            // GPIO47 ... GPIO32 = General Purpose I/O
    GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 1;    // GPIO32 = I2C - SDA
    GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 1;    // GPIO33 = I2C - SCL

    GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0;    // Enable pull-up for GPIO32 (SDAA)
    GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0;       // Enable pull-up for GPIO33 (SCLA)

    GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 3;  // Asynch input GPIO32 (SDAA)
    GpioCtrlRegs.GPBQSEL1.bit.GPIO33 = 3;  // Asynch input GPIO33 (SCLA)

    GpioCtrlRegs.GPBMUX2.all = 0;            // GPIO63 ... GPIO48 = General Purpose I/O

    GpioCtrlRegs.GPCMUX1.all = 0;            // GPIO79 ... GPIO64 = General Purpose I/O
    GpioCtrlRegs.GPCMUX2.all = 0;            // GPIO87 ... GPIO80 = General Purpose I/O
    

    GpioCtrlRegs.GPADIR.all = 0;            // GPIO0 to 31 as inputs
    GpioCtrlRegs.GPADIR.bit.GPIO9 = 1;        // GPIO9 = LED LD1
    GpioCtrlRegs.GPADIR.bit.GPIO11 = 1;        // GpIO11 = LED LD2

    GpioCtrlRegs.GPBDIR.all = 0;            // GPIO63-32 as inputs
    GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;        // peripheral explorer: LED LD3 at GPIO34
    GpioCtrlRegs.GPBDIR.bit.GPIO49 = 1;     // peripheral explorer: LED LD4 at GPIO49

    GpioCtrlRegs.GPCDIR.all = 0;            // GPIO87-64 as inputs
    EDIS;
}  

void I2CA_Init(void)
{
    
    I2caRegs.I2CMDR.bit.IRS = 0;    // Reset the I2C module
    // I2C slave address register
    I2caRegs.I2CSAR = TMP100_SLAVE;    
    // I2C Prescale Register
    I2caRegs.I2CPSC.all = 14;        // Internal I2C module clock = SYSCLK/(PSC +1)
                                    // = 10 MHz
                                    
    I2caRegs.I2CCLKL = 95;            // Tmaster = (PSC +1)[ICCL + 5 + ICCH + 5] / 150MHz
    I2caRegs.I2CCLKH = 95;            // Tmaster =  15 [ICCL + ICCH + 10] / 150 MHz
                                    // d = 5  for IPSC >1
                                    
                                    // for I2C 50 kHz:
                                    // Tmaster = 20 µs * 150 MHz / 15 = 200 = (ICCL + ICCH +10)  
                                    // ICCL + ICCH = 190
                                    // ICCL = ICH = 190/2 = 95    

//    I2caRegs.I2CCLKL = 45;            
//    I2caRegs.I2CCLKH = 45;            // for I2C 100 kHz:
                                    // Tmaster = 10 µs *150 MHz / 15 = 100 = (ICCL + ICCH + 10)  
                                    // ICCL + ICCH = 90
                                    // ICCL = ICH = 90/2 = 45     

    I2caRegs.I2CMDR.bit.IRS = 1;    // Take I2C out of reset
}

interrupt void cpu_timer0_isr(void)
{
    CpuTimer0.InterruptCount++;
    EALLOW;
    SysCtrlRegs.WDKEY = 0xAA;    // service WD #2
    EDIS;
    PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
//===========================================================================
// End of SourceCode.
//===========================================================================

Have already created a fresh new project, cleaned not used files and sources and re imported headers.

Could you help me??

Thank you

  • Thiago M said:
    they all seem to be related to the header files

    That probably means that you have Definitions in your headers.

    Remember how #include works: it's as if the content of the so-called "header" file had been typed right there in the .c file.

    Therefore, when  you have Definitions in a header, that means that those Definitions will appear in each .c file which includes that header.

    If multiple .c files include that header - then you will obviously get multiple Definitions within your project!

    The solution is to have only extern Declarations in your headers.

    This has nothing specifically to do with TI or the C2000 or CCS - it is plain, standard 'C':

    http://bit.ly/Sg3oRM

    http://c-faq.com/decl/decldef.html