<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è) > 嵌入式系統 > 設計應用 > 教你輕松控制uClinux 嵌入式開(kāi)發(fā)過(guò)程

教你輕松控制uClinux 嵌入式開(kāi)發(fā)過(guò)程

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

  通常,如果應用程序不是在fork()之后立即調用exec(),就有必要在fork()被替換成vfork()之前做仔細的檢查。

  2.應用程序

  盡管的Flat可執行格式并不會(huì )直接影響應用程序和它們的執行,但是它允許許多普通Linux下的ELF可執行格式所不允許的選項。比如,Flat可執行格式帶來(lái)兩個(gè)衍生系統—完全重定位和位置無(wú)關(guān)代碼(Position-Independent Code,簡(jiǎn)稱(chēng)PIC)的變體。完全重定位系統將對應用程序的代碼和數據進(jìn)行重定位,而PIC系統通常只需要對數據進(jìn)行部分重定位。

  對者最有用的特性就是運行時(shí)空間大小不變(Execute-In-Place,簡(jiǎn)稱(chēng)XIP)。這樣應用程序可以直接從閃存(Flash)或ROM 中運行,因為只需要應用程序所需占用的內存即可。不是所有的平臺都實(shí)現了XIP,因為它需要編譯器的支持以及Flat可執行格式的PIC形式。

  下的Romfs是惟一支持XIP的文件系統。要實(shí)現XIP,應用程序就必須被連續地裝載到文件系統。 Flat格式還在它的頭部定義了應用程序的棧大小。要增加分配給應用程序的棧,只需要簡(jiǎn)單地修改該部分,可以使用flthdr命令實(shí)現,格式如下:

  flthdr -s flat-executable

  Flat格式還允許整個(gè)可執行文件被壓縮,以盡量縮小占用ROM的空間。它還有一個(gè)次要的作用就是使應用程序完全地裝載到一個(gè)連續的RAM塊中。既想節省ROM空間,又想使用XIP的時(shí)候,還可以選擇Data-Segment-Only壓縮形式。

  生成一個(gè)完全壓縮的可執行文件:

  flthdr -z flat-executable

  只是生成壓縮數據段:

  flthdr -d flat-executable

  特別小心共享庫

  uClinux下的共享庫各有不同。目前可用的解決方法需要修改編譯器,并需要開(kāi)發(fā)者特別小心。其實(shí),當前的uClinux發(fā)行版本中提供了uC-libc和uClibc庫,最好的方法是以這兩個(gè)庫為例子來(lái)創(chuàng )建自己的共享庫。

  另外,uClinux下的共享庫必須是Flat格式的可執行文件,并且要真正實(shí)現共享,必須實(shí)現XIP。如果不實(shí)現XIP,共享庫就會(huì )為每個(gè)使用它的應用程序創(chuàng )建一份拷貝,這還不如使用靜態(tài)鏈接應用程序。

  小結

  uClinux趨向于更深入的嵌入式系統,它需要更少的內存,并可直接在ROM上運行。如果初次在uClinux下開(kāi)發(fā)的人遇到?jīng)]有硬件驅動(dòng)、有嚴格的資源限制,以及沒(méi)有內存保護等一系列的情況,最好的入手方法就是使用uClinux仿真器(見(jiàn)圖2)。

  圖2 uClinux仿真器Xcopilot

  強調以上這些問(wèn)題有助于開(kāi)發(fā)者提前做好準備,避免在uClinux下工作時(shí)常遇到陷阱和誤解。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: uClinux 嵌入式開(kāi)發(fā)

評論


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