3 系统的的软件设计
3.1 嵌入式Linux的移植
嵌入式Linux内核的版本很多,一般情况下版本越高,系统越稳定,驱动更完善,本系统选择了2.6.18的Linux内核。其实对于2.6以后版本的Linux内核,对S3C2410的支持都有了很好的支持,所以移植过程都比较简单[3]。Linux2.6.18移植到S3C2410的基本步骤如下:
(1)下载Linux2.6.18内核,并解压到相应目录。
(2)修改内核顶层目录下的Makefile文件,指明交叉编译器。进入Linux-2.6.18内核目录,输入命令vi Makefile,找到ARCH和CROSS_COMPILE两项,将其修改为ARCH = arm,CROSS_COMPILE = arm-linux-。
(3)设置PATH环境变量,使其可以找到交叉编译工具。输入su root,进入root,在输入vi/etc/bashrc,在结尾处加入以下行:export PATH=/usr/local/arm/3.4.4/bin:$PATH,然后重启终端或重新登陆即可。
(4) 设置Flash分区。首先要在arch/arm/mach-s3c2410/devs.c文件中添加分区信息,其次在arch/arm/mach-s3c2410/mach-smdk2410.c文件的smdk2410_devices[]的成员中添加&s3c_device_nand。这样Linux内核启动时,就会对Flash分区的设置初始化。
(5)禁止Flash ECC校验。修改drivers/mtd/nand/s3c2410.c 文件,找到s3c2410_nand_init_chip()函数,在该函数体最后加上一条语句