Part Number: 66AK2H14
Other Parts Discussed in Thread: 66AK2H12
Tool/software: Code Composer Studio
Hi,
Iam using CCSV6.1.3 and ti-processor-sdk-rtos-k2hk-evm-03.02.00.05-Windows-x86-Install .
while building EEPROM test example Iam getting below errors
I have included the header files . I have attached my source code.
#include <xdc/std.h>
#include <xdc/cfg/global.h>
#include <xdc/runtime/System.h>
#include <xdc/runtime/Error.h>
/* BIOS Header files */
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>
#include <stdio.h>
#include <string.h>
/* TI-RTOS Header files */
#include <ti/board/src/bbbAM335x/include/board_cfg.h>
#include <ti/drv/i2c/I2C.h>
#include <ti/drv/i2c/soc/I2C_soc.h>
#include <ti/board/src/evmKeystone/include/board_utils.h>
#include <ti/drv/i2c/test/eeprom_read/src/I2C_log.h>
#include <ti/drv/i2c/test/eeprom_read/src/I2C_board.h>
//#include <board_cfg.h>
#define I2C_TRANSACTION_TIMEOUT 1000
char eeprom_data[I2C_EEPROM_RX_LENGTH];
bool CompareData(char *expData, char *rxData, unsigned int length);
/*
* ======== Board_initI2C ========
*/
void Board_initI2C(void)
{
Board_initCfg boardCfg;
I2C_HwAttrs i2c_cfg;
/* Get the default I2C init configurations */
I2C_socGetInitCfg(I2C_EEPROM_INSTANCE, &i2c_cfg);
/* Modify the default I2C configurations if necessary */
/* Set the default I2C init configurations */
I2C_socSetInitCfg(I2C_EEPROM_INSTANCE, &i2c_cfg);
boardCfg = BOARD_INIT_PINMUX_CONFIG |
BOARD_INIT_MODULE_CLOCK |
BOARD_INIT_UART_STDIO;
Board_init(boardCfg);
}
void i2c_test(UArg arg0, UArg arg1)
{
I2C_Params i2cParams;
I2C_Handle handle = NULL;
I2C_Transaction i2cTransaction;
char txBuf[I2C_EEPROM_TEST_LENGTH + I2C_EEPROM_ADDR_SIZE] = {0x00, };
char rxBuf[I2C_EEPROM_TEST_LENGTH];
bool status_400kbps;
int16_t status;
Board_initI2C();
/* Set the I2C EEPROM write/read address */
txBuf[0] = (I2C_EEPROM_TEST_ADDR >> 8) & 0xff; /* EEPROM memory high address byte */
txBuf[1] = I2C_EEPROM_TEST_ADDR & 0xff; /* EEPROM memory low address byte */
I2C_init();
I2C_Params_init(&i2cParams);
/* BitRate : 400 Kbps */
i2cParams.bitRate = I2C_400kHz;
handle = I2C_open(I2C_EEPROM_INSTANCE, &i2cParams);
memcpy(&txBuf[I2C_EEPROM_ADDR_SIZE],eeprom_data, I2C_EEPROM_TEST_LENGTH);
I2C_transactionInit(&i2cTransaction);
i2cTransaction.slaveAddress = I2C_EEPROM_ADDR;
i2cTransaction.writeBuf = (uint8_t *)&txBuf[0];
i2cTransaction.writeCount = I2C_EEPROM_TEST_LENGTH + I2C_EEPROM_ADDR_SIZE;
i2cTransaction.readBuf = NULL;
i2cTransaction.readCount = 0;
i2cTransaction.timeout = I2C_TRANSACTION_TIMEOUT;
status = I2C_transfer(handle, &i2cTransaction);
if(I2C_STS_SUCCESS != status)
{
I2C_log("\n I2C Test: 400Kbps: Write Data Transfer failed. \n");
}
BOARD_delay(100);
memset(rxBuf, 0, I2C_EEPROM_TEST_LENGTH);
I2C_transactionInit(&i2cTransaction);
i2cTransaction.slaveAddress = I2C_EEPROM_ADDR;
i2cTransaction.writeBuf = (uint8_t *)&txBuf[0];
i2cTransaction.writeCount = I2C_EEPROM_ADDR_SIZE;
i2cTransaction.readBuf = (uint8_t *)&rxBuf[0];
i2cTransaction.readCount = I2C_EEPROM_TEST_LENGTH;
i2cTransaction.timeout = I2C_TRANSACTION_TIMEOUT;
status = I2C_transfer(handle, &i2cTransaction);
if(I2C_STS_SUCCESS != status)
{
I2C_log("\n I2C Test: 400Kbps: Read Data Transfer failed. \n");
}
I2C_close(handle);
status_400kbps = CompareData(&eeprom_data[0], &rxBuf[0], I2C_EEPROM_TEST_LENGTH);
if(TRUE == status_400kbps)
{
I2C_log("\n I2C Test: 400Kbps: PASS \n");
}
else
{
I2C_log("\n I2C Test: 400Kbps: Data Mismatch \n");
}
}
/*
* ======== main ========
*/
int main(void)
{
Board_initI2C();
Task_Handle task;
Error_Block eb;
Error_init(&eb);
task = Task_create(i2c_test, NULL, &eb);
if (task == NULL) {
System_printf("Task_create() failed!\n");
BIOS_exit(0);
}
/* Start BIOS */
BIOS_start();
return (0);
}
bool CompareData(char *expData, char *rxData, unsigned int length)
{
uint32_t idx = 0;
uint32_t match = 1;
bool retVal = false;
for(idx = 0; ((idx < length) && (match != 0)); idx++)
{
if(*expData != *rxData) match = 0;
expData++;
rxData++;
}
if(match == 1) retVal = true;
return retVal;
}
Please help me to solve these errors.
Thank you



