硬件渠道: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,0×00020000,”boot”},//128Koneblock
- {0x00020000,0x00060000,”bootParam”},//384Kthreeblocks
- {0x00080000,0x00100000,”pic”},//1M
- {0x00180000,0x00380000,”MyApp”},//3.5M
- {0x00500000,0x00300000,”kernel”},//3M
- {0x00800000,0x0f000000,”fs_yaffs”},//240M
- //{0x09e00000,0x00080000,”eboot”},//512K
- //{0x09e80000,0x06400000,”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=0x00100000,
- .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=0x03c00000,
- .offset=0x04400000,
- }
- */
- };
然后make zImage从头编译内核。烧写内核。
最终将曾经制作好的文件体系烧写进去即可。
(注:我们巨细为64M的sdram,文件体系过大将不能运用这种bootloader烧写进去,能够先将qt的库删去,发动起来后,运用NFS载,然
后仿制曩昔即可)。
输入cat /proc/mtd检查分区信息
成功修正分区,将双体系改为单体系。