新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM-Linux 內(nèi)核移植--基于FL2440開發(fā)板(修改為L(zhǎng)inux單系統(tǒng))

ARM-Linux 內(nèi)核移植--基于FL2440開發(fā)板(修改為L(zhǎng)inux單系統(tǒng))

作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
硬件平臺(tái):FL2440開發(fā)板

內(nèi)核版本:2.6.28

本文引用地址:http://m.butianyuan.cn/article/201611/318861.htm

主機(jī):ubuntu 11.04

內(nèi)核版本:2.6.39

本來以為fl2440的nand flash大小為128M,問了客服才知道,現(xiàn)在FL2440使用的是現(xiàn)代的flash,現(xiàn)在都換成256M的了,只是飛凌的bootloader沒有相應(yīng)的修改,它使用的既不是u-boot,也不是vivi,而是自己的bootloader?,F(xiàn)在修改bootloader源碼中的nand.c

修改如下:

  1. //可更改刪除分區(qū),分區(qū)名字不可改
  2. staticstructPartitionNandPart[]={
  3. {0,0x00020000,"boot"},//128Koneblock
  4. {0x00020000,0x00060000,"bootParam"},//384Kthreeblocks
  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文件系統(tǒng)的flash 大小為240M(由于自己不用

WIN CE)

這樣使linux充分利用flash,不用將許多庫(kù)文件掛載成NFS了

然后修改FL2440自帶的內(nèi)核(大部分驅(qū)動(dòng)都已經(jīng)集成)修改linux/arch/arm/plat-s3c24xx/common-smdk.c

  1. staticstructmtd_partitionsmdk_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重新編譯內(nèi)核。燒寫內(nèi)核。

最后將以前制作好的文件系統(tǒng)燒寫進(jìn)去即可。

(注:由于大小為64M的sdram,文件系統(tǒng)過大將不能使用這種bootloader燒寫進(jìn)去,可以先將qt的庫(kù)刪除,啟動(dòng)起來后,使用NFS載,然

后復(fù)制過去即可)。

輸入cat /proc/mtd查看分區(qū)信息

成功修改分區(qū),將雙系統(tǒng)改為單系統(tǒng)。



評(píng)論


技術(shù)專區(qū)

關(guān)閉