<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 利用MLD自動化操作系統(tǒng)移植降低Linux的成本

          利用MLD自動化操作系統(tǒng)移植降低Linux的成本

          ——
          作者:Xilinx公司 Derek Palmer 時間:2007-03-01 來源:電子產(chǎn)品世界 收藏

          隨著基于 的嵌入式系統(tǒng)得到日益廣泛的應(yīng)用,人們不禁要問,類似 這樣的免費(fèi)開放源代碼操作系統(tǒng)的真正成本到底是多少?其實,最主要的成本是在勞動力上。要將 內(nèi)核移植到定制嵌入式處理系統(tǒng),您必須對產(chǎn)品所需要的內(nèi)核功能、這些功能對其他內(nèi)核服務(wù)的依賴程度以及您的工程團(tuán)隊的技能都有深入的了解。更重要的是,要了解可以借助哪些新技術(shù)來使這些任務(wù)自動化,以達(dá)到節(jié)省成本的目標(biāo)。

          開放源代碼與商業(yè)操作系統(tǒng)

          我們很多人都看過為如何使用 Linux 源代碼提供指導(dǎo)的 GNU 通用公共許可證 (GPL)。要確定在系統(tǒng)中使用 Linux 的成本,一般來說,第一步是了解 Linux 的哪些部分是真正免費(fèi)且不受法律約束的,哪些部分是需要小心保護(hù)的。這有點(diǎn)類似于通過評估商業(yè)操作系統(tǒng)或 RTOS(實時操作系統(tǒng))提供商來確定其產(chǎn)品中所包含的功能和費(fèi)用。

          顯然,需要做出一個決定,是購買商業(yè) Linux 發(fā)行版,還是設(shè)法解決免費(fèi) Linux 發(fā)行版移植的問題。很多工程師使用 Linux 只是為了利用其現(xiàn)有服務(wù)的一小部分,如文件系統(tǒng)、TCP/IP 和 HTTP 或 THTTP 等網(wǎng)絡(luò)服務(wù)。如果您只需要很少的服務(wù),移植自己的 Linux 內(nèi)核可能不那么耗時,價格也不那么昂貴。

          商用操作系統(tǒng) 已將其產(chǎn)品移植到許多最常用的處理器中,并提供可在各種標(biāo)準(zhǔn)硬件平臺上運(yùn)行的板支持包 (board support package, BSP),這正是商業(yè)操作系統(tǒng)的優(yōu)勢所在。遺憾的是,如果要設(shè)計定制嵌入式處理系統(tǒng),商業(yè)操作系統(tǒng)可能產(chǎn)生為嵌入式硬件系統(tǒng)創(chuàng)建定制 BSP 服務(wù)的其他費(fèi)用,除非能將BSP 的生成自動化。而這就是榮獲大獎的 Xilinx Platform Studio (XPS) 工具套件的眾多功能之一:在賽靈思 嵌入式處理設(shè)計中,BSP 和庫的生成都實現(xiàn)了自動化。

          為了更好地了解這一過程,讓我們來看看構(gòu)建一個完整的操作系統(tǒng)所需要的各種軟件和硬件層。圖 1 是對 Linux 系統(tǒng)中多個層次的圖解。最底層是微處理器及其外設(shè),這代表硬件層。要與這些外設(shè)進(jìn)行通訊,需要能與 Linux 內(nèi)核兼容的軟件驅(qū)動程序。該內(nèi)核還包括啟動功能和中斷處理等非常重要的服務(wù),這些功能高度依賴于系統(tǒng)的架構(gòu),通常針對特定處理器和系統(tǒng)架構(gòu)進(jìn)行定制。

          圖1 Linux系統(tǒng)軟件和硬件層分布

          當(dāng)?shù)讓拥挠布脚_發(fā)生變化時(通常是為了容納新的應(yīng)用程序功能),內(nèi)核也就必須隨之而改變,而這需要時間,并會增加設(shè)計成本。對于為特定應(yīng)用程序量身打造的高度定制的處理平臺,這種情況已是司空見慣。設(shè)計人員通常使用基于 FPGA 的嵌入式系統(tǒng),以便優(yōu)化系統(tǒng)架構(gòu),獲得硬件性能和軟件靈活性的最佳平衡。此外,如果要設(shè)計自己的定制嵌入式平臺,還必須考慮為新外設(shè)編寫定制驅(qū)動程序和確定內(nèi)核配置文件的合理設(shè)置所需要的時間,以及充分測試新內(nèi)核所需要的驗證時間。

          使操作系統(tǒng)設(shè)置自動化

          利用 XPS,嵌入式系統(tǒng)設(shè)計人員可以構(gòu)建并優(yōu)化系統(tǒng),使下列任務(wù)的執(zhí)行自動化:分配地址映射、為外設(shè)配置驅(qū)動程序、鏈接所有必需的庫等等。完成這些設(shè)置后,系統(tǒng)即準(zhǔn)備就緒,可以開始編寫首個應(yīng)用程序了。但如果要編寫的應(yīng)用程序是一個完整的操作系統(tǒng)的話會怎樣呢?這就是 Xilinx 創(chuàng)新方式的巧妙所在,利用它可以自動化類似 Linux 的定制操作系統(tǒng) 的生成。

          XPS 有一種方法,可以通過微處理器庫描述 (microprocessor library description,) 文件導(dǎo)出有關(guān)微處理器、外設(shè)和系統(tǒng)架構(gòu)的信息。 文件包含定制軟件庫和為操作系統(tǒng)生成 BSP 的指令。

          每個操作系統(tǒng)/庫都有 文件及與其相關(guān)的 Tcl(tool command language,工具命令語言)文件。依據(jù)嵌入式設(shè)計系統(tǒng)架構(gòu),Tcl 文件使用 MLD 文件定制 操作系統(tǒng)/庫。對許多 Xilinx 操作系統(tǒng)合作伙伴來說,這些文件都是現(xiàn)成的。例如,對于mClinux,只需從菜單中進(jìn)行選擇即可,如圖 2 所示。對嵌入式系統(tǒng)硬件的更改會自動更新庫,并重新生成控制內(nèi)核構(gòu)建方式的內(nèi)核配置文件。

          圖2 在XPS軟件平臺設(shè)置窗口進(jìn)行mLinux設(shè)置

          XPS 還會生成“auto-conf.in”文件,自動配置過程會使用該文件為mClinux 內(nèi)核構(gòu)建 makefile。無需重新設(shè)計內(nèi)核配置文件,就可以自動重新構(gòu)建內(nèi)核;考慮到一個“auto-config.in”文件的條款內(nèi)容大約有 380 行之多,這一功能節(jié)省的時間就頗為可觀。逐個手動更新這些文件既容易出錯,又耗費(fèi)時間。此文件的一小部分如圖 3 所示。

          圖3  XPS生成的mLinux“auto-conf.in”文件的一部分

          MLD 技術(shù)是一種通用技術(shù),可用于其他操作系統(tǒng)。例如,Green Hills 的 Integrity 操作系統(tǒng)也使用這一技術(shù)。

          結(jié)語

          隨著對更高性能嵌入式系統(tǒng)的需求的增加,我們將不斷看到包含針對特定市場專用硬件的新的嵌入式處理系統(tǒng)架構(gòu)。開發(fā)這些系統(tǒng)要求使用一種迭代過程,以把軟件應(yīng)用程序的編譯和配置結(jié)合起來,同時還要照顧到硬件協(xié)處理元件和專用外設(shè)。

          如果每次迭代嵌入式處理硬件平臺時都手動更新 Linux 或其它操作系統(tǒng)內(nèi)核,只會浪費(fèi)寶貴的工程時間。而將這些任務(wù)自動化后,對于用到操作系統(tǒng)的嵌入式系統(tǒng),能大幅降低其開發(fā)成本。
          欲了解有關(guān) 操作系統(tǒng) 支持的詳情請登陸 www.xilinx.com/cn/ise/embedded/epartners/listing.htm。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();