一、GPIO的初始化
在内核源码目录下 ls drivers/gpio/*.o, 可以看到 gpioexynos4.c源文件最终被编译进了内核。
生成.o文件代表最终被编译进了内核
除了menuconfig配置文件,还可以通过.o文件来判定该文件是否编译进了内核
在 gpio-exynos4.c 文件最下面一行
core_initcall(exynos4_gpiolib_init);
core_initcall代表在linux初始化过程中会调用
初始化函数是在源码目录下 include/linux/init.h 文件中定义的,该头文件中定义了一系列的初始化函数,在linux启动的过程中会按等级。
初始化函数调用了 exynos4_gpiolib_init ---------------》
static __init int exynos4_gpiolib_init(void)
{
struct s3c_gpio_chip *chip;
int i;
int nr_chips;
/* GPIO common part */
chip = exynos4_gpio_common_4bit;
nr_chips = ARRAY_SIZE(exynos4_gpio_common_4bit);
for (i = 0; i < nr_chips; i++, chip++) {
if (chip->config == NULL)
chip->config = &gpio_cfg;
if (chip->base =&#