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.

CCS/TMS320F28377S: C2000

Part Number: TMS320F28377S


Tool/software: Code Composer Studio

Hi all,

I am using TMS320F28377S controller, First i try to control a GPIO pin. for that I try with example in C2000 ware.

While i compiling error shows GPIO_Writepin first referenced in Main.obj

Help me to reoslve this

Yuvaraj

My code is


//
// Included Files
//
#include "driverlib.h"
#include "device.h"

uint16_t sDataA[10];
uint16_t rDataA[10];
uint16_t rDataPointA;
uint16_t a,j;


__interrupt void sciaTXFIFOISR(void);
__interrupt void sciaRXFIFOISR(void);
void initSCIAFIFO(void);
void error(void);

void main(void)
{
uint16_t i;
Device_init();
//InitSysCtrl();
Device_initGPIO();

GPIO_setMasterCore(12, GPIO_CORE_CPU1);
GPIO_setMasterCore(13, GPIO_CORE_CPU1);
GPIO_setPinConfig(GPIO_12_GPIO12);
GPIO_setDirectionMode(12, GPIO_DIR_MODE_OUT);
GPIO_setPadConfig(12, GPIO_PIN_TYPE_STD);
GPIO_setPinConfig(GPIO_13_GPIO13);
GPIO_setDirectionMode(13, GPIO_DIR_MODE_OUT);
GPIO_setPadConfig(13, GPIO_PIN_TYPE_STD);

GPIO_setMasterCore(43, GPIO_CORE_CPU1);
GPIO_setPinConfig(GPIO_43_SCIRXDA);
GPIO_setDirectionMode(43, GPIO_DIR_MODE_IN);
GPIO_setPadConfig(43, GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode(43, GPIO_QUAL_ASYNC);

GPIO_setMasterCore(42, GPIO_CORE_CPU1);
GPIO_setPinConfig(GPIO_42_SCITXDA);
GPIO_setDirectionMode(42, GPIO_DIR_MODE_OUT);
GPIO_setPadConfig(42, GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode(42, GPIO_QUAL_ASYNC);

Interrupt_initModule();

Interrupt_initVectorTable();

// Interrupts that are used in this example are re-mapped to
// ISR functions found within this file.
Interrupt_register(INT_SCIA_RX, sciaRXFIFOISR);
Interrupt_register(INT_SCIA_TX, sciaTXFIFOISR);

// Initialize the Device Peripherals:
initSCIAFIFO();

// Init the send data. After each transmission this data
// will be updated for the next transmission
for(i = 0; i < 10; i++)
{
sDataA[i] = i;
}

rDataPointA = sDataA[0];

Interrupt_enable(INT_SCIA_RX);
Interrupt_enable(INT_SCIA_TX);

Interrupt_disable(INT_SCIA_RX);
Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);

// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
EINT;
ERTM;

// IDLE loop. Just sit and loop forever (optional):
for(;;)
{
// Turn on LED
GPIO_WritePin(13, 0);
//GPIO_WritePin(12, 1);

for(j = 0; j < 10000; j++)
{
for(a = 0; a < 100; a++)
{

}
}

Interrupt_enable(INT_SCIA_TX);

// Turn off LED
// GPIO_WritePin(13, 1);
//GPIO_WritePin(12, 0);
/*for(j = 0; j < 10000; j++)
{
for(a = 0; a < 100; a++)
{

}
}*/
}
}

// error - Function to halt debugger on error
void error(void)
{
asm(" ESTOP0"); // Test failed!! Stop!
for (;;);
}

// sciaTXFIFOISR - SCIA Transmit FIFO ISR
__interrupt void sciaTXFIFOISR(void)
{
uint16_t i;

sDataA[0] = 0x55;
sDataA[1] = 0xAA;

SCI_writeCharArray(SCIA_BASE, sDataA, 10);

// Increment send data for next cycle
/* for(i = 0; i < 2; i++)
{
sDataA[i] = (sDataA[i] + 1) & 0x00FF;
}*/

SCI_clearInterruptStatus(SCIA_BASE, SCI_INT_TXFF);

// Issue PIE ACK
Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);

Interrupt_disable(INT_SCIA_TX);
Interrupt_enable(INT_SCIA_RX);
}

// sciaRXFIFOISR - SCIA Receive FIFO ISR
__interrupt void sciaRXFIFOISR(void)
{
uint16_t i;

SCI_readCharArray(SCIA_BASE, rDataA, 2);

// Check received data
for(i = 0; i < 2; i++)
{
if(rDataA[i] != ((rDataPointA) & 0x00FF))
{
// error();
}
}

// rDataPointA = (rDataPointA + 1) & 0x00FF;

SCI_clearOverflowStatus(SCIA_BASE);

SCI_clearInterruptStatus(SCIA_BASE, SCI_INT_RXFF);

// Issue PIE ack
Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);
}

// initSCIAFIFO - Configure SCIA FIFO
void initSCIAFIFO()
{
// 8 char bits, 1 stop bit, no parity. Baud rate is 9600.
SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 384000, (SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE));
SCI_enableModule(SCIA_BASE);
SCI_enableLoopback(SCIA_BASE);
SCI_resetChannels(SCIA_BASE);
SCI_enableFIFO(SCIA_BASE);

// RX and TX FIFO Interrupts Enabled
SCI_enableInterrupt(SCIA_BASE, (SCI_INT_RXFF | SCI_INT_TXFF));
SCI_disableInterrupt(SCIA_BASE, SCI_INT_RXERR);

SCI_setFIFOInterruptLevel(SCIA_BASE, SCI_FIFO_TX2, SCI_FIFO_RX2);
SCI_performSoftwareReset(SCIA_BASE);

SCI_resetTxFIFO(SCIA_BASE);
// SCI_resetRxFIFO(SCIA_BASE);

/*

#ifdef AUTOBAUD
// Perform an autobaud lock.
// SCI expects an 'a' or 'A' to lock the baud rate.
SCI_lockAutobaud(SCIA_BASE);
#endif*/
}