ARM-Linux 内核移植--基于 FL2440 开发板(修改为
Linux 单系统)
硬件平台:FL2440 开发板内核版本:2.6.28 主机:ubuntu 11.04 内核版本:2.6.39
本来以为 fl2440 的 nand flash 大小为 128M,问了客服才知道,现在 FL2440 使用的是现代的 flash,现在都换成 256M 的了,只是飞凌的 bootloader 没有相 应的修改,它使用的既不是 u-boot,也不是 vivi,而是自己的 bootloader。现在 修改 bootloader 源码中的 nand.c 修改如下:
//可更改删除分区,分区名字不可改 staticstructPartitionNandPart[]
={{0,0x00020000,”boot”},//128Koneblock{0x00020000,0x00060000,”bootParam”}, //384Kthreeblocks{0x00080000,0x00100000,”pic”},//1M{0x00180000,0x00380000, ”MyApp”},//3.5M{0x00500000,0x00300000,”kernel”},//3M{0x00800000,0x0f0000 00,”fs_yaffs”},//240M//{0x09e00000,0x00080000,”eboot”},//512K//{0x09e80000,0x 06400000,”wince”},//100M{0,0,0}};使用 ADS 工具,重新编译 bootloader,生成. bin 文件,然后烧写 bootloader,这样分给 linux 文件系统的 flash 240M(由于自己不用 WIN CE)
这样使 linux 充分利用 flash,不用将许多库文件挂载成 NFS 了 然后修改 FL2440 自带的内核(大部分驱动都已经集成)修改 linux/arch/arm/plat-s3c24xx/common-smdk.c
大小为
staticstructmtd_partitionsmdk_default_nand_part[]={[0]={.name=“Boot”,.size=0x00 100000,.offset=0},[1]={.name=“MyApp”,.size=0x003c0000,.offset=0x00140000,},[ 2]={.name=“Kernel”,.size=0x00300000,.offset=0x00500000,},[3]={.name=“fs_yaffs ”,.size=0x0f000000,//240M.offset=0x00800000,},/*[4]={.name=“WINCE”,.size=0x0 3c00000,.offset=0x04400000,}*/};然后 make zImage 重新编译内核。烧写内核。 最后将以前制作好的文件系统烧写进去即可。
(注:由于大小为 64M 的 sdram,文件系统过大将不能使用这种 bootloader 烧写进去,可以先将 qt 的库删除,启动起来后,使用 NFS 载,然 后复制过去即可)。
输入 cat /proc/mtd 查看分区信息
成功修改分区,将双系统改为单系统。
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!