開發
開發模式:
本機開發:本機開發也就是在目標機(在嵌入式系統中通常把嵌入式系統或設備簡稱爲目標機)中直接
進行操作系統移植及應用程序的開發。在這種方式下進行開發,首先就得在目標機中安裝操作
系統,並且具有良好的人機開發界面。
交叉開發:意思就是在一臺主機(在嵌入式系統中通常把通用PC稱爲主機)上進行操作系統的裁剪,以
及編寫應用程序,在主機上應用交叉編譯環境編譯內核及應用程序,然後把目標代碼下載到目
標機上運行。這就需要在主機上安裝、配置交叉編譯環境(交叉開發工具鏈),使其能夠編譯
成在目標機上運行的目標代碼。
模擬開發:建立在交叉開發環境基礎之上。除了主機和目標機以外,還得提供一個在主機上模擬目標機
的環境,使得開發好的內核和程序直接在這個環境下運行以驗證其正確性,這就不需要每次的
修改都下載到目標機中,待程序正確後再下載到目標機上運行。這樣就可以達到在沒有目標機
的情況下調試軟件的目的。比較著名的模擬開發環境有SkyEye,它能夠模擬如ARM等處理器
的開發環境。模擬硬件環境是一件比較複雜的工程,所以多數商業嵌入式系統的開發採用的是
交叉開發模式。
開發方式:
Crash and Burn:
1. 在宿主機上編寫代碼
2. 在宿主機上編譯應用程序,生成可執行程序
3. 固化(Burn)到目標機的存儲器(EPROM/FLASH等)中
4. 啓動運行,若正確則轉到7
5. 不正確則在宿主機上改寫代碼,糾正錯誤
6. 返回2重複操作
7. 固化成功,結束
ROM Monitor:
ROM Monitor是固化在目標機上的一段程序,用來監視目標機上被調試程序的運行,與HOST端的程序一起完成對目標機上的應用程序的調試。此時宿主機上要有一個和ROM Monitor相配的交叉調試器。該調試方法中目標機復位後首先執行的就是ROM Monitor。
1. 在宿主機上編寫代碼
2. 在宿主機上試用調試模式交叉編譯應用程序,生成可執行程序
3. 將代碼下載到目標機上的RAM空間
4. 用戶試用調試器進行交叉調試
5. 如果正確轉8
6. 不正確則在調試器幫助下定位錯我
7. 修改錯誤,重複2~7
8. 將程序固化到目標機上,結束
ROM Emulator:
用ROM Emulator 替代目標機上的ROM芯片
不完全的調試方法
ICE(In-Circuit Emulator 常用的開發方法):
替代目標機上的CPU設備
廠家提供的開發板
價格昂貴,不利於團隊開發
所仿CPU有限
OCD(On Chip Debugging):
OCD 是CPU芯片提供的一種調試功能
存在各種實現方式、標準不統一:
1. BDM(Backgroud Debugging Mode)
2. JTAG(Joint Test Access Group)
3. OnCE(On Chip Emulation)
Simulator:
軟件仿真器。在宿主機上虛擬目標機。
仿真內容:
仿真處理器
仿真外設
仿真環境
適用範圍:對時間特性沒有嚴格要求、沒有特殊外設、只需要驗證邏輯正確的應用程序。