<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è) > 嵌入式系統 > 設計應用 > 幾種Linux下嵌入式開(kāi)發(fā)環(huán)境的簡(jiǎn)單介紹

幾種Linux下嵌入式開(kāi)發(fā)環(huán)境的簡(jiǎn)單介紹

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

  uC

  uC與emDebian至少有兩個(gè)重要的區別,第一是構建方式,前面已經(jīng)提到過(guò)了,uC屬于 from scratch 一類(lèi)的。另一個(gè)不同的地方,是支持不在emDebian支持的11種CPU的,當然,這個(gè)說(shuō)法不是很恰當,正確的說(shuō)法是支持那些不具備MMU單元的CPU體系。的第一個(gè)目的是支持MC68328芯片,現在已經(jīng)能構支持更多的CPU,如Intel i960,ARM等。不過(guò),uCLinux的主體開(kāi)發(fā)團隊目前已經(jīng)不再支持ARM了,還好 Samsung 的 Hyok S. Choi 接過(guò)了接勵棒,Linux 2.6版本的補丁可以在 uCLinux/ARM2.6 找到。

  uCLinux之前僅是核心的一些補丁,后來(lái)發(fā)展成為一個(gè)包括核心、庫、應用程序、工具和編譯相關(guān)的配置文件的一個(gè)集成開(kāi)發(fā)環(huán)境。與 buildroot不同的是,uCLinux不編譯目標系統的工具集,也就是說(shuō),相應的編譯工具應該提前安裝好。如,對于arm來(lái)說(shuō),需要先安裝ARM交叉編譯器。uCLinux的編譯器也需要一些補丁,其中比較重要的兩個(gè)方面主要包括:

  用于生成FLT文件的補?。河捎贛MU的關(guān)系,uCLinux不支持ELF可執行文件,這個(gè)補丁主要包括bin2flt工具包和一個(gè)ld的wrapper腳本等,用于(透明于用戶(hù))生成FLT文件;

  用于支持XIP(Execute In Place)的補?。哼@個(gè)補丁需要對gcc進(jìn)行一些小的修改;支持XIP主要是為了解決小內存環(huán)境中運行的問(wèn)題。

  XIP不一定適用于每種應用環(huán)境,對于內在要求特別嚴格的系統來(lái)說(shuō)(空間第一位,如手機要求使用片內RAM),可以通過(guò)將核心和應用程序編譯為XIP支持,然后直接在Flash上運行,內存僅用于運行時(shí)數據;而對于性能要求為主的系統(如高速網(wǎng)絡(luò )處理器),則不能因為節省一點(diǎn)空間而使用XIP將程序直接在Flash上運行,這樣可能會(huì )降低指令的讀取速度而影響系統性能(但仍然可以使用 XIP,使程序的多個(gè)實(shí)例在內存中共享代碼空間,以后詳細說(shuō)); + FLT可執行文件支持動(dòng)態(tài)鏈接庫(目前僅m68k支持,參見(jiàn) uCdot: Shared libraries under uCLinux mini-HOWTO)的補??;

  uCLinux的編譯過(guò)程大致是,首先,通過(guò)可視配置界面(menuconfig/xconfig)選取Vendor和board(實(shí)際上是選擇了一些配置文件和產(chǎn)品相關(guān)的文件),然后根據選擇構造一個(gè)適用于target的開(kāi)發(fā)環(huán)境,如生成頭文件和需要的庫文件(uClibc、glibc或uC-libc 以及其它一些庫),然后編譯核心、庫、應用程序,最后將所有的輸出安裝到romfs目錄中,根據需要生成目標平臺需要的映像文件(如: romfs.img、Linux.bin、rootfs.gz等)

  由于一些過(guò)程細節被隱藏起來(lái),uCLinux現在的編譯過(guò)程方便到只需要配置一下(make menuconfig),然后 make 就可以直接獲得最終輸出。不過(guò)這反倒成為一些初學(xué)者學(xué)習的一個(gè)麻煩,本文完成后,根據對本文的反饋,將進(jìn)一步對uCLinux進(jìn)行詳細介紹。

  總的來(lái)說(shuō),目前的uCLinux是一套主要用于無(wú)MMU核(但不限于此)的嵌入式Linux集成環(huán)境,也是一個(gè)非常好的 Linux from scratch 的示例。拋開(kāi)其MMU相關(guān)的補丁,uCLinux也可以作為一套用于包含MMU系統的集成開(kāi)發(fā)環(huán)境,Snapgear 就是一個(gè)很好的例子。實(shí)際上,我們可以從官方的uCLinux源碼就可以直接編譯一個(gè)支運行于X86的uCLinux。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(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>