標籤:c++ 利用 模擬 window inux 分享圖片 錯誤 穩定性 software
嵌入式系統發展到今天,對應於各種微處理器的硬體平台一般都是通用的、固定的、成熟的,這就大大減少了由硬體系統引入錯誤的機會。此外,由於嵌入式 作業系統屏蔽了底層硬體的複雜性,使得開發人員通過作業系統提供的API函數就可以完成大部分工作,因此大大簡化了開發過程,提高了系統的穩定性。嵌入式系 統的開發人員現在已經從反覆進行硬體平台設計的過程中解脫出來,從而可以將主要精力放在滿足特定的需求上。
嵌入式系統通常是一個資源受限的系統,因此直接在嵌入式系統的硬體平台上編寫軟體比較困難,有時候甚至是不可能的。目前一般採用的解決辦法是首先在通用電腦上編寫程式,然後通過交叉編譯產生目標平台上可以啟動並執行二進位代碼格式,最後再下載到目標平台上的特定位置上運行。
需要交叉開發環境(Cross Development Environment)的支援是嵌入式應用軟體開發時的一個顯著特點,交叉開發環境是指編譯、連結和調試嵌入式應用軟體的環境,它與運行嵌入式應用軟體的環境有所不同,通常採用宿主機/目標機模式。
宿主機(Host)是一台通用電腦(如PC機或者工作站),它通過串口或者乙太網路介面與目標機通訊。宿主機的軟硬體資源比較豐富,不但包括功能強 大的作業系統(如Windows和Linux),而且還有各種各樣優秀的開發工具(如WindRiver的Tornado、Microsoft的 Embedded Visual C++等),能夠大大提高嵌入式應用軟體的開發速度和效率。
目標機(Target)一般在嵌入式應用軟體開發期間使用,用來區別與嵌入式系統通訊的宿主機,它可以是嵌入式應用軟體的實際運行環境,也可以是能 夠替代實際運行環境的模擬系統,但軟硬體資源通常都比較有限。嵌入式系統的交叉開發環境一般包括交叉編譯器、交叉調試器和系統模擬器,其中交叉編譯器用於 在宿主機上產生能在目標機上啟動並執行代碼,而交叉調試器和系統模擬器則用於在宿主機與目標機間完成嵌入式軟體的調試。在採用宿主機/目標機模式開發嵌入式應 用軟體時,首先利用宿主機上豐富的資源和良好的開發環境開發和模擬偵錯目標機上的軟體,然後通過串口或者以網路將交叉編譯產生的目標代碼傳輸並裝載到目標 機上,並在監控程式或者作業系統的支援下利用交叉調試器進行分析和調試,最後目標機在特定環境下脫離宿主機單獨運行。
建立交叉開發環境是進行嵌入式軟體開發的第一步,目前常用的交叉開發環境主要有開放和商業兩種類型。開放的交叉開發環境的典型代表是GNU工具鏈、 目前已經能夠支援x86、ARM、MIPS、PowerPC等多種處理器。商業的交叉開發環境則主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。
什麼是嵌入式開發?嵌入式軟體開發入門教程