嵌入式系统开发流程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P-12/78 P-12/77
2.2 嵌入式系統軟體之開發流程
因此,C/C++程式設計語言仍然是嵌入式系統的軟體開發流 程的主流工具,也促進了嵌入式系統產業的繁榮。 不過,嵌入式系統所需的 C/C++程式語言編譯器必須具備較 高的編譯效率,以便進行一些程式效能或容量上的最佳化。 尤其是 C++程式設計語言,由於語法繁複,編譯器的編譯效 率較差,必須持續改進中。 在嵌入式系統的特定模組或運算瓶頸要做最佳化時,會使用 組合語言去對系統程式做進一步地改良。
P-21/78 P-21/77
2.2 嵌入式系統軟體之開發流程
硬體發展板(Development board)或軟體模擬器(Simulator),
主要是提供開發完成的嵌入式系統軟體執行檔進行測試與驗
證。軟體模擬器的測試與驗證工作只需要在開發主機上就可
以進行,不過軟體模擬器的測試與驗證功能有限,通常只能 模擬處理器核心的工作狀態與反應變化。如果要測試與驗證 完整的記憶體資料變化或周邊介面裝置,還是必須在硬體發 展板上進行測試與驗證。
P-15/78 P-15/77
2.2 嵌入式系統軟體之開發流程
編 譯 鏈 結 偵 錯 工 具 鍊 (Toolchain) , 配 合 整 合 開 發 環 境 (Integrated Development Environment, IDE)工具,負責 執行嵌入式軟體的編輯、編譯、鏈結、偵錯、及下載等工 作。如果要在 Windows 開發平台上使用 GNU 工具鍊,必須 再安裝Cygwin模擬環境。
P-8/78 P-8/77
2.1 嵌入式系統軟體之開發環境
內部電路仿真器 (ICE)負責轉換開發主機與系統單晶片之間的 傳送訊號。 開發主機可以透過內部電路仿真器 (ICE)將測試樣本傳送進系 統單晶片進行測試,再將系統單晶片內的測試結果傳出,將 可大幅縮減系統單晶片的測試複雜度。 有愈來愈多的嵌入式系統單晶片甚至內建了簡易的內部電路 仿真器(ICE)電路。 內部電路仿真器 (ICE)最不可替代的功能就是完整的程式追蹤 功能。它可以即時地反應嵌入式系統的實際系統狀態、處理 器工作模式、及應用系統控制響應等,以便進行程式分析與 程式最佳化。
第二章 嵌入式系統開發流程
課程綱要
2.1 2.2 2.3 2.4 2.5 嵌入式系統軟體之開發環境 嵌入式系統軟體之開發流程 嵌入式系統開機流程 嵌入式系統中層作業系統之開發重點 結論
P-2/78 P-2/77
課程綱要
2.1 2.2 2.3 2.4 2.5 嵌入式系統軟體之開發環境 嵌入式系統軟體之開發流程 嵌入式系統開機流程 嵌入式系統中層作業系統之開發重點 結論
GCC (the GNU Compiler Collection)
P-17/78 P-17/77
2.2 嵌入式系統軟體之開發流程
gcc等工具鍊是GNU計畫最大的貢獻
gcc 是 FSF 最有名的程式之一,目前是 C,C++,Objective C 三合一的編譯器。 只 要 寫 好 一 個 新 的 程 式 語 言 的 frontend , 因 為 gcc backend 己經可以支援不少架構,此程式語言立刻就可以在 不同架構的處理器之上編譯與執行。 除了C程式語言之外,gcc編譯器還有支援 Fortran 90、ada9x、 Pascal等程式語言的編譯能力。
P-13/78 P-13/77
2.2 嵌入式系統軟體之開發流程
安裝軟體發展工具套件通常是嵌入式系統軟體開發流程中 的第一步驟。 需要安裝的嵌入式系統軟體發展工具套件,包括:
整合開發環境(Integrated Development Environment, IDE) 工具 編譯鏈結偵錯工具鍊(Toolchain) 作業系統(Operating System)相關套件 硬體發展板(Development board)或硬體模擬器(Simulator)
P-20/78 P-20/77
2.2 嵌入式系統軟體之開發流程
作業系統(Operating System)相關套件,提供嵌入式系統軟 體目的檔 (Object file) 進行鏈結時所需的作業系統程式庫 (Library)。如果嵌入式目標平台有整合嵌入式作業系統程式 庫時,才會需要安裝此套件。
P-7/78 P-7/77
2.1 嵌入式系統軟體之開發環境
因此,這些系統單晶片都會 依 據 國 際 測 試 標 準 IEEE 1149.1的規範,在系統單晶 片 內 部 設 計 邊 界 掃 瞄 (Boundary Scan) 電 路 與 暫 存器,並保留四、五根接腳 做 為 測 試 存 取 埠 (Test Access Port) ,以便開發主 機透過內部電路仿真器 (ICE) 去控制與觀察晶片內的電路 節點與訊號。
BGA Ball Grid Array。球閘陣列封裝。 為第三代面矩陣式(Area Array)IC封裝技術,係在晶粒底 部以陣列的方式佈置許多錫球,以錫球代替傳統以金屬導線架在周圍做引腳的方式。此種封裝技術的好 Βιβλιοθήκη Baidu在於同樣尺寸面積下,引腳數可以變多,其封裝面積及重量只達QFP的一半。目前資訊家電與3C產品 己多應用BGA封裝技術。 BGA封裝在電子產品中,主要應用於300接腳數以上高密度構裝的產品,如晶片組、CPU、Flash、部份通 訊用IC等;由於BGA封裝所具有的良好電氣、散熱性質,以及可有效縮小封裝體面積的特性,使其需求 成長率遠高於其他型態的封裝方式。
P-14/78 P-14/77
2.2 嵌入式系統軟體之開發流程
整合開發環境(Integrated Development Environment, IDE) 工具,主要是提供一個整合的圖形操作介面,以便軟體工程 師可以方便地進行嵌入式系統的整個軟體開發流程工作。包 括嵌入式軟體的編輯、編譯、鏈結、偵錯、及下載等步驟, 都可以在整合開發環境工具中進行。
P-9/78 P-9/77
課程綱要
2.1 2.2 2.3 2.4 2.5 嵌入式系統軟體之開發環境 嵌入式系統軟體之開發流程 嵌入式系統開機流程 嵌入式系統中層作業系統之開發重點 結論
P-10/78 P-10/77
2.2 嵌入式系統軟體之開發流程
P-11/78 P-11/77
2.2 嵌入式系統軟體之開發流程
P-16/78 P-16/77
2.2 嵌入式系統軟體之開發流程
何謂GNU工具鍊?
GNU 是 GNU„s Not Unix 的縮寫, 在GNU貣草憲章中, GNU 計畫發貣人 Stallman 提到, UNIX 雖然不是最好的作業系統, 但是至少不會太差,而他自信有能力把 UNIX 不足的地方補全, 使它成為一個優良的作業系統, 就是名為 GNU 的作業系統。 GNU 當初的策略就是先發展 UNIX 現有的程式。因為確定 GNU 會是一個與 UNIX 相容的系統,而 UNIX 下的標準介面都已經 蠻完備了, 只要照著標準完成的程式,將來 GNU Kernel完成 後,立刻可以擁有所有 UNIX 的公用程式,因此會先有 emacs、 gcc 等 utility 產生出來。 其中 gcc 更是 GNU 計畫能夠自立更生的主力,不需要依靠 Non-Free Software 來產生 / 編譯自己的作業系統(Operating System)相關套件。
P-3/78 P-3/77
Cross-Platform Development
The method of embedded system‟s software development calls
Cross-platform development Software for an embedded system is developed on one platform but runs on another
P-6/78 P-6/77
2.1 嵌入式系統軟體之開發環境
在嵌入式系統的軟體開發環境中,由於需要將開發主機中產 生的執行映像檔(image file),下載到嵌入式目標平台上。開 發主機與嵌入式目標平台之間需要透過串列埠、網路埠、或 內部電路仿真器(In-Circuit Emulator, ICE)來進行通訊。 內部電路仿真器(ICE),在當前電腦輔助設計工具非常發達的 情況下,仍然是最有效且不可或缺的嵌入式系統輔助工具。 因為當前的嵌入式處理器與周邊元件,都是整合在系統單晶 片中。而系統單晶片的接腳,動輒二三百根,而且都是採用 BGA等封裝,測試儀器根本無法直接量測晶片的接腳。
P-18/78 P-18/77
2.2 嵌入式系統軟體之開發流程
Linux其實是半路殺出的程咬金? Linux 作業系統的發展時間遠比 GNU 作業系統晚。然而, 這個娃娃作業系統以兩個禮拜出一次修正版的速度快速 地成長茁壯。 Linux 作業系統在短短的幾年內崛貣,也使用 GPL 的版權 聲明,儼然有取代GNU 作業系統晚之勢。 GNU 計畫後來也有發行以 Linux 為核心的 GNU 作業系統計 畫。這個計畫就是GNU計畫大力支持的 Debian Linux。 Debian Linux是一套具有商業水準的Linux作業系統 。
Definition in embedded system
Platform: combination of hardware, operation system, and software development tools Host system: the system on which the embedded software is developed Target system: the embedded system under development Cross compiler: a compiler runs on one type of processor architecture but produces object code for a different type of processor architecture
如同通用電腦系統的軟體開發流程,在嵌入式系統的軟體開 發流程中,主要還是以 C/C++ 程式設計語言為主,組合語言 為輔。 因為 C/C++ 程式設計語言是屬於一種中高階的程式語言,可 以提高嵌入式系統工程師的工作效率,充分發揮出嵌入式處 理器日益提昇的性能,並且縮短產品的上市時間 (Time to market)。 此外, C/C++程式設計語言便於移植與修改,使不同的嵌入 式系統產品的升級與繼承更迅速,並且讓嵌入式系統工程師 方便交流。
P-19/78 P-19/77
2.2 嵌入式系統軟體之開發流程
何謂General Public License (GPL)?
GNU 計畫的精神是希望軟體的原始碼應該要自由流通,軟體公司不 應該把原始碼據為己有,賺取發行 binary code的金錢,而是收取整 合與服務的費用而已 GPL的規定是先依著作權法獲得軟體原始碼的智慧財產權,再透過 GPL的規定釋放此權力給大眾。只要程式設計師遵守GPL規定,不把 原始碼與修改過的原始碼據為己有,就可以享有GNU 計畫所提供的 免費軟體與原始程式碼。
P-4/78 P-4/77
2.1 嵌入式系統軟體之開發環境
在一般電腦上進行嵌 入式系統軟體的開發 程序
在嵌入式系統平台上執行 由開發工具所建立出來的 嵌入式軟體
P-5/78 P-5/77
2.1 嵌入式系統軟體之開發環境
由於嵌入式系統的軟硬體資源相當有限,而且又沒有非常友 好的人機操作介面,因此所有嵌入式系統軟體的編輯、編譯、 及偵錯等工作,皆是由開發主機(通常就是效能比較優越的 個人電腦)來進行。 然後再透過開發主機,將編譯連結妥當的執行映像檔下載到 嵌入式系統平台上做執行與測試。這就是所謂的交叉開發 (Cross Development)的軟體開發環境。這也是嵌入式系統 的軟體開發環境與通用電腦系統的軟體開發環境,最大不同 之處。