Ubuntu 11.04下基于FL2440开发板 ARM 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

修改如下:

  1. //可更改删除分区,分区名字不可改   
  2. static struct Partition NandPart[] = {   
  3.     {0,          0x00020000, "boot"},       //128K one block   
  4.     {0x00020000, 0x00060000, "bootParam"},  //384K three blocks   
  5.     {0x00080000, 0x00100000, "pic"},        //1M   
  6.     {0x00180000, 0x00380000, "MyApp"},      //3.5M   
  7.     {0x00500000, 0x00300000, "kernel"},     //3M   
  8.     {0x00800000, 0x0f000000, "fs_yaffs"},   //240M   
  9.     //{0x09e00000, 0x00080000, "eboot"},        //512K   
  10.     //{0x09e80000, 0x06400000, "wince"},        //100M   
  11.     {0,          0         , 0}   
  12. };  

使用ADS工具,重新编译bootloader,生成.bin文件,然后烧写bootloader,这样分给linux文件系统的flash 大小为240M(由于自己不用

WIN CE)

这样使linux充分利用flash,不用将许多库文件挂载成NFS了

然后修改FL2440自带的内核(大部分驱动都已经集成)修改linux/arch/arm/plat-s3c24xx/common-smdk.c

  1. static struct mtd_partition smdk_default_nand_part[] = {   
  2. [0] = {   
  3.         .name   = "Boot",   
  4.         .size   = 0x00100000,   
  5.         .offset = 0   
  6.     },   
  7.     [1] = {   
  8.         .name   = "MyApp",   
  9.         .size   = 0x003c0000,   
  10.         .offset = 0x00140000,   
  11.     },   
  12.     [2] = {   
  13.         .name   = "Kernel",   
  14.         .size   = 0x00300000,   
  15.         .offset = 0x00500000,   
  16.     },   
  17.     [3] = {   
  18.         .name   = "fs_yaffs",   
  19.         .size   = 0x0f000000,    //240M   
  20.         .offset = 0x00800000,   
  21.     },     
  22.     /*[4] = {  
  23.         .name   = "WINCE",  
  24.         .size   = 0x03c00000,  
  25.         .offset = 0x04400000,  
  26.     }  
  27.     */  
  28. };        

然后make zImage重新编译内核。烧写内核。

最后将以前制作好的文件系统烧写进去即可。

(注:由于大小为64M的sdram,文件系统过大将不能使用这种bootloader烧写进去,可以先将qt的库删除,启动起来后,使用NFS载,然

后复制过去即可)。

输入cat /proc/mtd查看分区信息

相关内容