TX2440A的led驱动
扫描二维码
随时随地手机看文章
自己照着移植文档把对NAND FLASH驱动和yaffs2文件系统的支持的Linux系统编译出来,然后把内核镜像烧入FLASH,然后再把光盘的root_2.6.31.bin镜像烧入FLASH。这样就在目标板建立起了测试驱动的最基本的环境。同时,编译的源码也就成了宿主机的编译驱动的内核树环境。
编译驱动时可以使用:make -C /.../.../linux-2.6.31/ SUBDIRS=$PWD modules
注意:要有Makefile文件;/.../.../linux-2.6.31/ 为内核树目录
如果要编译TX2440A的led驱动的话,即光盘里的TX2440_led.c源文件,在Makefile文件里有一句:
obj-m := TX2440_led.o即可。
编译led驱动是还需注意的是:要修改源码中arch/arm/plat-s3c2440/common-smdk.c源文件。在arch/arm/plat-s3c24xx/common-smdk.c中将GPF0-GPF3设为输出,全部输出低电平。只需在smdk_machine_init函数里修改
void__initsmdk_machine_init(void)
{
/* Configure the LEDs (even if we have no LED support)*/
s3c2410_gpio_cfgpin(S3C2410_GPF(0), S3C2410_GPIO_OUTPUT);
s3c2410_gpio_cfgpin(S3C2410_GPF(1), S3C2410_GPIO_OUTPUT);
s3c2410_gpio_cfgpin(S3C2410_GPF(2), S3C2410_GPIO_OUTPUT);
s3c2410_gpio_cfgpin(S3C2410_GPF(3), S3C2410_GPIO_OUTPUT);
s3c2410_gpio_cfgpin(S3C2410_GPF(4), S3C2410_GPIO_OUTPUT);
s3c2410_gpio_cfgpin(S3C2410_GPF(5), S3C2410_GPIO_OUTPUT);
s3c2410_gpio_cfgpin(S3C2410_GPF(6), S3C2410_GPIO_OUTPUT);
s3c2410_gpio_cfgpin(S3C2410_GPF(7), S3C2410_GPIO_OUTPUT);
s3c2410_gpio_setpin(S3C2410_GPF(0),0);
s3c2410_gpio_setpin(S3C2410_GPF(1),0);
s3c2410_gpio_setpin(S3C2410_GPF(2),0);
s3c2410_gpio_setpin(S3C2410_GPF(3),0);
s3c2410_gpio_setpin(S3C2410_GPF(4),1);
s3c2410_gpio_setpin(S3C2410_GPF(5),1);
s3c2410_gpio_setpin(S3C2410_GPF(6),1);
s3c2410_gpio_setpin(S3C2410_GPF(7),1);
if(machine_is_smdk2443())
smdk_nand_info.twrph0 =50;
s3c_device_nand.dev.platform_data = &smdk_nand_info;
platform_add_devices(smdk_devs,ARRAY_SIZE(smdk_devs));
s3c_pm_init();
}
该代码是通过codehl软件生成的代码在用word打开复制来的。
由这大家也可想到,其实也可以在驱动中添加在smdk_machine_init函数中添加的代码。效果也相同。