Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Embedded 代码结构:I2C线上有多个设备,有多个源文件_Embedded_Integration_Codebase - Fatal编程技术网

Embedded 代码结构:I2C线上有多个设备,有多个源文件

Embedded 代码结构:I2C线上有多个设备,有多个源文件,embedded,integration,codebase,Embedded,Integration,Codebase,我正在编写一个TI MSP432。我们在一条I2C线路上有4个不同的设备 为了保持代码库的易读性,我们将不同设备的函数保存在不同的C文件中。这些文件最初是用I2C线路上的一个设备开发的,因此I2C中断在单独的文件中 集成这些文件的正确方法是什么?我们只是把I2C中断放在主文件中,让它在每个文件中调用一个函数吗?或者以某种方式动态更改中断的调用,或者其他什么?您应该创建一个通用I2C设备驱动程序,并根据该驱动程序实现各个设备。如何做到这一点完全取决于许多问题,例如您使用的是RTOS还是多线程环境

我正在编写一个TI MSP432。我们在一条I2C线路上有4个不同的设备

为了保持代码库的易读性,我们将不同设备的函数保存在不同的C文件中。这些文件最初是用I2C线路上的一个设备开发的,因此I2C中断在单独的文件中


集成这些文件的正确方法是什么?我们只是把I2C中断放在主文件中,让它在每个文件中调用一个函数吗?或者以某种方式动态更改中断的调用,或者其他什么?

您应该创建一个通用I2C设备驱动程序,并根据该驱动程序实现各个设备。如何做到这一点完全取决于许多问题,例如您使用的是RTOS还是多线程环境

例如,您可能有一个EEPROM设备,该设备将使用I2C驱动程序,该驱动程序将根据应用程序的需要管理总线上的任何互斥或查询事务,而EEPROM设备接口可能处理对EEPROM本身的互斥访问;将总线需求与设备需求以及最终应用程序需求分离