主题中讨论的其他部件:TMDSEVM6657、 SYSBIOS
尊敬的 Sirs:
我需要一些有关 CCS、示例和固件开发的信息。 也许我的问题简单而基本、但可以帮助他人。
我在这个领域的经验有限,我对此感到非常困惑。
我们已购买用于 TMS320C6657的 TMDSEVM6657评估板。
我将通过 tryng 为电路板 EEPROM 上的 I2C 创建我自己的测试。 在我了解它的工作原理后、我将尝试使用 I2C 总线
要控制自定义电路板上的其他外部 I2C 芯片、请将评估板的80引脚扩展连接器插入。
我已安装 CCS 9.3.0和 processor_sdk_rtos_c665x_6_03_106。 我生成了 PDK 示例。 我能够成功运行"platform_test_evmc6657l"项目。
(1)
我已将示例"I2C_BasicExample_C6657_EVM_c66xExampleProject"导入到工作区。
此示例包含主文件"main_EEPROM_READ.c"
根据我在 C 语言开发方面的其他经验、代码开始在主函数上执行。 在此示例中、
主要内容是:
*****
int main (空)
{
if (Board_initI2C ()== false)
{
返回(0);
}
/*启动 BIOS */
BIOS_start();
返回(0);
}
*****
修改代码后、此示例中的测试似乎在函数"void i2c_test (UArg0、UArgarg1)"上执行。
我通过 tryng 来查找 BIOS_start()函数来查看此函数如何调用"i2c_test"、但我无法找到它。 请可以
您告诉我在哪里可以找到它? BIOS_start()是否调用 i2c_test()? 或者它是如何工作的?
(2)在我的测试中、我更改了这个项目的一些代码、但是我想保留一个原始项目的副本。
我已从 CCS 中删除工程、并再次导入示例以获得原始工程、但未成功:仍有更改。
保留项目原始副本并让我自己进行更改和测试的最佳方法是什么?
(3)为了按我自己的项目测试 EEPROM、 我想这样做:
小图标
#define I2C_ADDR 0x0300 // Cerro 工程的读取和写入测试起始地址
#define I2C_Size_test 10.
/*
* ==== 测试函数 Cerro======
* 在 EEPROM 位置0x0300上写入10个字节、然后读取这些字节
*
/*
void i2c_own 测试(UARg arg0、UARg arg1)
{
UART_printf ("\n 我的测试程序的第一行\n");//在串行端口、连接器 USB1、115200上写入此标志。
I2C_Params i2cParams;
I2C_Handle handle = NULL;
I2C_Transaction i2cTransaction;
char txBuf_Cerro[10]={0x0F、0x1f、0x2F、0x3f、0x4f、0x5f、0x6f、0x7f、0x8F、0x9f};//要写入的数据
char rxBuf_Cerro[10]={0x00、};//缓冲区来读取数据
bool status、test_pass = false;
int16_t transferStatus;
//设置 I2C EEPROM 写入/读取地址
txBuf_Cerro[0]=(I2C_ADDR >> 8)& 0xff;// EEPROM 存储器高地址字节
txBuf_Cerro[1]= I2C_ADDR 和0xff; // EEPROM 存储器低地址字节
I2C_init();
I2C_Params_init (&i2cParams);
句柄= I2C_open (I2C_EEPROM_Instance、&i2cParams);
I2C_TransactionInit(&i2cTransaction);
i2cTransaction.slaveAddress = I2C_EEPROM_ADDR;
i2cTransaction.writeBuf =(uint8_t *)&txBuf_Cerro[0];
i2cTransaction.writeCount = I2C_size_test;
i2cTransaction.readBuf =(uint8_t *)&rxBuf_Cerro[0];
i2cTransaction.ReadCount = I2C_Size_test;
i2cTransaction.timeout = I2C_TRANSACTION;
transferStatus = I2C_transfer (handle、&i2cTransaction);
if (I2C_STS_SUCCESS!=传输状态)
{
I2C_log ("\n 数据传输失败、传输状态为%d \n"、传输状态);
test_pass = false;
}
否则{
i2C_log ("\n 写入和读取成功%d \n"、传输状态);
UART_printf ("\n 写入和读取成功\n");
}
I2C_Close (handle);
}
(二
我会在"Variables"窗口检查测试是否正确、以便比较发送和接收缓冲区、或者可能在屏幕上打印缓冲区进行比较。
我应该如何/在项目上添加之前的代码?
我是否可以使用此代码只更改要传输的地址和数据、就可以对其他 I2C 器件进行写入/读取?
如果我必须更改"speed"或其他 I2C 参数、可以在哪里进行更改?
提前感谢、
Joaquin。