Embedded I2C驱动程序移植问题

Embedded I2C驱动程序移植问题,embedded,serial-communication,i2c,Embedded,Serial Communication,I2c,我正在将一个I2C驱动程序从Atmel AVR32 U3移植到一个Energy Micro EFM32GG Cortex-M3设备。 驱动程序使用Atmel BSP与I2C总线通信,为其提供从设备地址、寄存器地址和数据 Energy Micro BSP不实现寄存器地址。 我的问题是,根据标准I2C协议,我是否可以将寄存器地址添加为发送数据的第一个字节?当I2C协议标准化时,不同供应商之间的I2C外围设备不可能完全相同(甚至相似)。虽然保留Atmel实现中的API可能会很有用,但为了应用程序代码的

我正在将一个I2C驱动程序从Atmel AVR32 U3移植到一个Energy Micro EFM32GG Cortex-M3设备。 驱动程序使用Atmel BSP与I2C总线通信,为其提供从设备地址、寄存器地址和数据

Energy Micro BSP不实现寄存器地址。 我的问题是,根据标准I2C协议,我是否可以将寄存器地址添加为发送数据的第一个字节?

当I2C协议标准化时,不同供应商之间的I2C外围设备不可能完全相同(甚至相似)。虽然保留Atmel实现中的API可能会很有用,但为了应用程序代码的可移植性,您可能需要完全更改底层实现

您的部分将详细描述其I2C外围设备的寄存器接口和硬件操作。您将看到,由于I2C协议本身的相似性,它与相应的Atmel外围设备几乎没有关系。此外,DMA的实现在各个部分之间会有所不同,因此驱动程序也会有所不同

能源微有一个操作与。这可能是您应该开始的地方。

虽然I2C协议是标准化的,但不同供应商之间的I2C外围设备不可能完全相同(甚至相似)。虽然保留Atmel实现中的API可能会很有用,但为了应用程序代码的可移植性,您可能需要完全更改底层实现

您的部分将详细描述其I2C外围设备的寄存器接口和硬件操作。您将看到,由于I2C协议本身的相似性,它与相应的Atmel外围设备几乎没有关系。此外,DMA的实现在各个部分之间会有所不同,因此驱动程序也会有所不同


能源微有一个操作与。这可能就是您应该开始的地方。

您应该确切地指定您正在使用的处理器。您可能是对的,您可以将地址放在数据的开头。但是使用模式应该在处理器的用户手册中明确说明。@TJD它是ARM cortex M3-EFM32 GiantGecko@Mellowcandle:在问题中,而不是在注释中-我为您编辑了它。您应该确切指定您使用的处理器。您可能是对的,您可以将地址放在数据的开头。但是使用模式应该在处理器的用户手册中明确说明。@TJD它是ARM cortex M3-EFM32 GiantGecko@Mellowcandle:在问题中而不是评论中-我为您编辑了它。