obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o obj-$(CONFIG_I2C) += i2c-core.o obj-$(CONFIG_I2C_SMBUS) += i2c-smbus.o obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o obj-$(CONFIG_I2C_MUX) += i2c-mux.o obj-y += algos/ busses/ muxes/ ccflags-$(CONFIG_I2C_DEBUG_CORE) := -DDEBUG
可见链接的顺序是i2c.-boardinfo、i2c-core、i2c-dev... ...1.2 i2c子系统的初始化函数的执行先后顺序
结合vmlinux.lds和Makefile,可确定i2c初始化函数的执行顺序如下:
1./dricer/i2c/i2c-core.c中的函数:i2c_init() postcore_initcall级别
2./arch/arm/mach-s3c2440/mach-smdk2440.c中的函数:smdk2440_machine_init() arch_initcall级别