当前位置:首页 > 单片机 > 单片机
[导读] 自己照着移植文档把对NAND FLASH驱动和yaffs2文件系统的支持的Linux系统编译出来,然后把内核镜像烧入FLASH,然后再把光盘的root_2.6.31.bin镜像烧入FLASH。这样就在目标板建立起了测试驱动的最基本的环境。同时,

自己照着移植文档把对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函数中添加的代码。效果也相同。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭