<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 內核移植到嵌入式處理系統

如何以低成本將Linux 內核移植到嵌入式處理系統

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

隨著(zhù)基于 系統得到日益廣泛的應用,人們不禁要問(wèn),類(lèi)似 這樣的免費開(kāi)放源代碼操作系統的真正到底是多少?要將 到定制系統,您必須對產(chǎn)品所需要的功能、這些功能對其他服務(wù)的依賴(lài)程度以及您的工程團隊的技能都有深入的了解。

  
我們很多人都看過(guò)為使用 Linux 源代碼提供指導的 GNU 通用公共許可證 (GPL)。要確定在系統中使用 Linux 的,一般來(lái)說(shuō),第一步是了解 Linux 的哪些部分是真正免費且不受法律約束的,哪些部分是需要小心保護的。這有點(diǎn)類(lèi)似于通過(guò)評估商業(yè)操作系統或 RTOS(實(shí)時(shí)操作系統)提供商來(lái)確定其產(chǎn)品中所包含的功能和費用。
  
顯然,需要做出的一個(gè)決定,是購買(mǎi)商業(yè) Linux 發(fā)行版,還是設法解決免費 Linux 發(fā)行版的問(wèn)題。很多工程師使用 Linux 只是為了利用其現有服務(wù)的一小部分,如文件系統、TCP/IP 和 HTTP 或 THTTP 等網(wǎng)絡(luò )服務(wù)。如果您只需要很少的服務(wù),自己的 Linux 內核可能不那么耗時(shí),價(jià)格也不那么昂貴。
  
商用操作系統 已將其產(chǎn)品移植到許多最常用的器中,并提供可在各種標準硬件平臺上運行的板支持包 (board support package, BSP),這正是商業(yè)操作系統的優(yōu)勢所在。遺憾的是,如果要設計定制系統,商業(yè)操作系統可能產(chǎn)生為嵌入式硬件系統創(chuàng )建定制 BSP 服務(wù)的其它費用,除非能將BSP 的生成自動(dòng)化。而這就是榮獲大獎的 Xilinx Platform Studio (XPS) 工具套件的眾多功能之一:在賽靈思 嵌入式處理設計中,BSP 和庫的生成都實(shí)現了自動(dòng)化。
  
為了更好地了解這一過(guò)程,讓我們來(lái)看看構建一個(gè)完整的操作系統所需要的各種軟件和硬件層。圖 1 是對 Linux 系統中多個(gè)層次的圖解。最底層是微處理器及其外設,這代表硬件層。要與這些外設進(jìn)行通訊,需要能與 Linux 內核兼容的軟件驅動(dòng)程序。該內核還包括啟動(dòng)功能和中斷處理等非常重要的服務(wù),這些功能高度依賴(lài)于系統的架構,通常針對特定處理器和系統架構進(jìn)行定制。


本文引用地址:http://dyxdggzs.com/article/151700.htm

  圖1: Linux 系統軟件和硬件層分布

  
當底層的硬件平臺發(fā)生變化時(shí)(通常是為了容納新的應用程序功能),內核也就必須隨之而改變,而這需要時(shí)間,并會(huì )增加設計。對于為特定應用程序量身打造的高度定制的處理平臺,這種情況已是司空見(jiàn)慣。設計人員通常使用基于 FPGA 的嵌入式系統,以便優(yōu)化系統架構,獲得硬件性能和軟件靈活性的最佳平衡。此外,如果要設計自己的定制嵌入式平臺,還必須考慮為新外設編寫(xiě)定制驅動(dòng)程序和確定內核配置文件的合理設置所需要的時(shí)間,以及充分測試新內核所需要的驗證時(shí)間。
  
使操作系統設置自動(dòng)化
  
利用 XPS,嵌入式系統設計人員可以構建并優(yōu)化系統,使下列任務(wù)的執行自動(dòng)化:分配地址映射、為外設配置驅動(dòng)程序、鏈接所有必需的庫,等等。完成這些設置后,系統即準備就緒,可以開(kāi)始編寫(xiě)首個(gè)應用程序了。但如果要編寫(xiě)的應用程序是一個(gè)完整的操作系統的話(huà)會(huì )怎樣呢?這就是 Xilinx 創(chuàng )新方式的巧妙所在,利用它可以自動(dòng)化類(lèi)似 Linux 的定制操作系統 的生成。
  
XPS 有一種方法,可以通過(guò)微處理器庫描述 (microprocessor library description, MLD) 文件導出有關(guān)微處理器、外設和系統架構的信息。MLD 文件包含定制軟件庫和為操作系統生成 BSP 的指令。

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

  

圖2:在 XPS 軟件平臺設置窗口進(jìn)行 μClinux 設置XPS 還會(huì )生成“auto-conf.in”文件,自動(dòng)配置過(guò)程會(huì )使用該文件為 micro;CLinux 內核構建 makefile。無(wú)需重新設計內核配置文件,就可以自動(dòng)重新構建內核;考慮到一個(gè)“auto-config.in”文件的條款內容大約有 380 行之多,這一功能節省的時(shí)間就頗為可觀(guān)。逐個(gè)手動(dòng)更新這些文件既容易出錯,又耗費時(shí)間。此文件的一小部分如圖 3 所示。

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

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

評論


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