基于S3C2410的嵌入式Linux系统构建
cstruct mtd-partition partition-info[]函数,建立分区表信息,分区内容如表1所示;
③、加入NandFlash分区:struet s3c241O-nand-set nandset-{nr_partitions:5,partitions:partition-info,};
④、建立NandFlash芯片支持struct s3c2410-platform-nand superlpplatform={tacls:O,twrph0:30,twrphl:0,sets:&.nandset,nr-sets:1,};
⑤、在Nand Flash驱动里加入Nand Flash芯片支持:在s3C-device-nand中增加.dev一{.platforM一data一&super-lpplatform}。
(3)、在arch/arm/machs3c2410/machsmdk2410.C中的一initdata部分增加&s3c-device-nand,使内核启动时初始化NANDFLASH信息。
(4)、为了使内核支持devfs并在启动时在/sbin/init运行之前自动挂载/dev为devfs文件系统.修改fs/Kconfig.并在 menu"Pseudo filesystetns"下添加如下语句:config DEVFS_FSbooI"/dev flie system support(OBOLETE) default yconfig DEVFS-MOUNTbool"Automatically mount at boot"default ydepends on DEVFS FS
2.2.3、内核的编译和加载
(1)、执行make mrproper:编译内核前清理编译环境。
(2)、执行makeme nuconfig:对内核进行配置是量体裁衣的过程.是十分复杂的过程,配置适合自已的内核可能需要多次重复的配置操作。以下根据该系统对部分配置做简单 介绍:Boot options一一一>Default kernel command string
No initrd root=/dev/mtd block3 init=/Linuxrc
console--ttySAC0.115200
说明:mtdblock3代表NANDFASH第4个分区,他足该系统的root分区;
Floating point emulation一一一>
[*]NwFPE math emulation
#选择在内核中使用NWFPE浮点模拟
File systems一一一>
<>Second extended fs support
#去除对ext2的支持
Pseu do filesystems一一>
[*]/proc file system support
[*]Virtual memory file system support(former shmfs)
[*]/dev file system support(OBSOLETE)
[*]Automatically mount at boot(NEW)
这里会看到前面修改fs/Kconfig的结果,devfs已经被支持。
Miscellaneous file systems一-->
#选择YAFFS2根文件系统
<*>YAFFS2 file system support
------512byte/pagedevices
[*]Lets Yaffs doi ts own ECC
[]Use the same ecc byte order as Steven Hill'S nand-ecc.C
一一一2048byte(or larger)/page devices
[*]Auto select yaffs2 format
[*]Disable lazy loading
(10)Reserved blocks for check pointing
[*]Turn off wide tnodes
[]Force chunk erase check
[]Cache short names in RAM
Network File Systems---〉
<*〉NFS file system support
(3)、执行makeb zlmage,成功编译后将在arch/arm/boot/下生成需要的文件zImage。
(4)、在vivi提示符下,输入"load flash kernel x"命令通过串口下载内核映像到NAND FLASH的KERNEL分区中。
2.3、文件系统
Linux采用文件系统组织系统中的文件和设备,为设备和用户程序提供统一接口。他支持CRAMFS,JFFS2.RAMDISK等多种文件系统。本系统使用可读写的YAFFS2根文件系统。
2.3.1、YAFFS2文件系统简介
YAFFS2是YAFFS(Yet Ano ther FLASH File System)的升级版,能更好地支持NAND FLASH,是一种类似于JFFS的专门为FLASH设计的嵌入式文件系统。与JFFS相比,他减少了一些功能,因此速度更快、占用内存更少。NAND FLASH大多采用MTD+YAFFS的模式,通过YAFFS文件系统,可以像操作硬盘上的文件一样操作FLASH中的数据,在系统断电后数据仍然存储在 FLASH芯片中.
2.3.2、根文件制作
(1)、建立根文件系统目录root,在root目录下建讧子日录bin,sbin,dev,etc,proc,lib,user;
/bin:保存大多数如init.busybox,shell.文件管理实用程序等二进制文件;
/sbin:保存系统启动过程通常需要的命令;
/dev:包含用在设备中的所有没备节点;
/etc:包含系统的所有配置文件;
/proc:这是一个必须设置的特殊目录,在系统运行之后他下面有许多内容,在某些情况下,可以通过他进行系统设置,许多工具能从这里获得信息。在编译内核时要选择文件系统proc的支持;/lib:包含所有必要的库;
/user:存放用户程序。
(2)、 编译busybox.busyh。x足一个著名的开源软件.他以极小型的应用程序集成了一百多个最常用的Linux命令,闪此享有"嵌入式Linux的瑞 士军刀"的美臀。首先,从网上下载busybox源码.该系统使用的是1.1.3版本;其次,执行makemenuconfig命令.根据
- 基于s3c2410的CramFS根文件系统的移植(07-13)
- AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现(11-06)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于WinCE的I2C驱动程序设计(04-24)
- WinCE下光电编码器的驱动程序设计(04-12)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)