<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用U-Boot實(shí)現uClinux向S3C44B0的移植

利用U-Boot實(shí)現uClinux向S3C44B0的移植

作者: 時(shí)間:2012-04-10 來(lái)源:網(wǎng)絡(luò ) 收藏

3.3 內核的

3.3.1 -dist源碼包的準備

的官方網(wǎng)站下載uclinux-dist源碼包。源碼包中包含了uClinux內核、uClibc庫和busybox等 uClinux下的用戶(hù)應用程序,本文中下載的是uClinux-dist-20041215.tar.gz,在linux系統下解壓后會(huì )生成一個(gè) uClinux-dist目錄,該目錄包含了編譯uClinux內核需要的所有文件。在uClinux-dist目錄中包含有linux-2.2.x、 linux-2.4.x、linux-.2.6.x三個(gè)子目錄,就是三種版本的uClinux內核的源碼,我們的目的是把uClinux-2.6.9版本到目標平臺上,所以我們還需要從http://www.kernel.org上下載linux-2.6.9.tar.bz2,從http: //www.uClinux.org上下載linux-2.6.9-uc0.patch,從Samsung的網(wǎng)站http: //www.oprensrc.sec.samsung.com上下載補丁文件linux-2.6.9-uc0.hsc0.patch。在Linux系統下解壓內核Linux-2.6.9.tar.bz2并打上補丁文件linux-2.6.9-uc0.patch和linux-2.6.9-uc0- hsc0.patch,將打上補丁的2.6.9內核改名為linux-2.6.x并替換在uClinux-dist包中的linux-2.6.x,完成前的準備工作。

3.3.2 uClinux-dist源碼的修改

按照如下步驟添加的相關(guān)文件:

# cp uClinux-dist/vendors/Samsung/4510b –r uClinux-dist/vendors/Samsung/44b0,將源代碼包中已經(jīng)有的Samsung的4510b的文件復制一份并改名為44b0 ,這一過(guò)程也可以直接用鼠標完成;

# cp linux-2.6.x/arch/armnommu/configs/s3c44b0x_defconfig

vendors/Samsung/44b0/config.linux-2.6.x,該步驟是將s3c44b0x_defconfig文件復制到44b0目錄下,該步驟同樣可以復制、粘貼完成;

雖然已經(jīng)給linux-2.6.9內核打了補丁文件,但是我們依然需要對源代碼進(jìn)行修改才能順理的編譯通過(guò),文件的修改如下:

(1) 修改linux-2.6.x/arch/armnommu/arch/kernel/vmlinux.lds.S,添加以下內容:

(.got)?Global offset table */
romfs_start = .;
romfs.o
romfs_end = .;

這樣修改的目的是把romfs文件系統連接到內核映象中。

(2) 修改linux-2.6.x/arch/armnommu/kernel/setup.c, 添加變量romfs_start,romfs_end及修改

其設置如下:
default_command_line
extern int _stext, _text, _etext, _edata, _end;
extern int romfs_start,romfs_end;
char *from = default_command_line;
sprintf(default_command_line, root=/dev/ram0 initrd=0x%08lx,%ldk keepinitrd, (unsigned
long)romfs_start,((unsigned long)romfs_end - (unsigned long)romfs_start)>>10);

(3) 修改vendors/Micetek/44b0/rc文件中 /bin/expand /etc/ramfs.img /dev/ram1;

(4) 添加串口驅動(dòng)程序,添加文件linux-2.6.x/drivers/serial/serial_s3c44b0.c和linux-2.6.x /include/asm-armnommu/arch-s3c44b0/uart.h,因為在linux-2.6.9內核中對的支持并不是很好,系統只是提供了一個(gè)簡(jiǎn)易的串口驅動(dòng),所以需要添加串口驅動(dòng)。

3.3.3 內核的配置與編譯

在編譯內核之前需要進(jìn)行配置,可以通過(guò)三種方式對內核進(jìn)行配置:在uClinux-dist目錄下運行make config/make menuconfig/make xconfig,其中make config是在字符界面下,make menuconfig是在字符界面下的菜單界面,make xconfig為圖形界面,三種配置方式是一致的,xconfig界面比較友好,容易掌握,但它卻沒(méi)有menuconfig菜單穩定,而且在有些機器上運行不起來(lái),本文是使用make menuconfig完成的。運行make menuconfig時(shí), 程序會(huì )依次出現開(kāi)發(fā)平臺、內核、文件系統、應用程序的配置界面, 可以根據自己的需要進(jìn)行配置。配置時(shí)大部分選項可以使用其缺省值,只有小部分需要用戶(hù)根據需求進(jìn)行選擇,進(jìn)行內核配置時(shí),有3種選擇,它們分別代表的含義如下:
“Y” - 將該功能編譯進(jìn)內核;
“N” -不將該功能編譯進(jìn)內核;
“M” -將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內核中的模塊;

將與核心其它部分關(guān)系較遠且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊,有利于減小內核的長(cháng)度,減小內核消耗的內存,簡(jiǎn)化該功能相應的環(huán)境改變時(shí)對內核的影響,許多功能都可以這樣處理,例如網(wǎng)卡的支持、對FAT等文件系統的支持等。

在配置好內核后依次執行以下命令:
make dep; make clean; make lib_ only; make user_ only; make romfs; make image; make編譯完成之后,會(huì )在uClinux-dist/linux-2.6.x/下會(huì )生linux.bin,在uClinux-dist/images /下會(huì )生成linux.data、linux.text、image.bin等目標文件。在編譯中可能會(huì )產(chǎn)生錯誤,需要根據錯誤信息進(jìn)行調試修改。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>