TI中文支持网
TI专业的中文技术问题搜集分享网站

I2C0 的初始化和 I2C1的初始化。

Ti sdk

在board-am335xevm.c 裡

static struct i2c_board_info __initdata am335x_i2c0_boardinfo[]  和  static struct i2c_board_info am335x_i2c1_boardinfo[],為啥有分 __initdata 和 沒有 __initidata? 有啥差別嗎? 假設我device都不在 i2c0 上,我可以直接將 static struct i2c_board_info __initdata am335x_i2c0_boardinfo[] 改成

static struct i2c_board_info __initdata am335x_i2c1_boardinfo[] 嗎? 謝謝。

kooking:

直接改可能会有一定的风险,可以仿照I2C0配置一下I2C1,注意一下pinmux配置和register就行

Bernie Chen:

回复 kooking:

請問,那I2C0他的 i2c0_boardinfo有設 __initdata,為何 i2c1不需要?? 謝謝。

Yaoming Qin:

回复 Bernie Chen:

您可以参考I2c0的代码,修改base address,pinmux等方式配置i2c1的驱动,这个直接改名字可能有风险。

Bernie Chen:

回复 Yaoming Qin:

其實我已經改好了,也可以順利運作,我想問的是….一開始的code base 為什麼i2c0初始之後要被丟出記憶體,而i2c1不用?? 謝謝。

kooking:

回复 Bernie Chen:

请问您所说的 丟出記憶體 指的什么呢,code base中初始化I2C0还是I2C1,是根据发布的EVM板的实际硬件配置的

Bernie Chen:

回复 kooking:

static struct i2c_board_info __initdata am335x_i2c0_boardinfo[ ], 通常加上 __initdata 表示此函數的內容執行完就會從記憶體中釋放,只是好奇 i2c0 有加__initdata 而為甚麼 i2c 不加。這個 code base 參照的硬件應該是starter kit. 謝謝。

Yaoming Qin:

回复 Bernie Chen:

Bernie Chen

static struct i2c_board_info __initdata am335x_i2c0_boardinfo[ ], 通常加上 __initdata 表示此函數的內容執行完就會從記憶體中釋放,只是好奇 i2c0 有加__initdata 而為甚麼 i2c 不加。這個 code base 參照的硬件應該是starter kit. 謝謝。

leo chen:

回复 Yaoming Qin:

我的理解是 i2c0需要在启动的时候就要初始化,因为还要读取板子的EEPROM信息,而I2C1不需要

赞(0)
未经允许不得转载:TI中文支持网 » I2C0 的初始化和 I2C1的初始化。
分享到: 更多 (0)