嵌入式系統的開發環境淺談(還是很淺) @ 嵌入式系統以上 - 隨意窩
文章推薦指數: 80 %
最主要的不同點在於:寫作Windows或Linux的程式時,程式編譯/連結之後的執行檔,就是運行於Windows或Linux上,所以測試/除錯都很容易。
嵌入式系統同樣是在PC上開發,但做 ...
嵌入式系統以上,行動與網路應用未滿-大黑狗偉大航道之航海雖然夢想與現實總是不斷的衝撞,唯有把自己義無反顧地放到偉大的航道上,才能知道自己到底還有多少潛能可以發揮,也才終於瞭解,究竟自己以前為了一份所謂固定的工作到底浪費了多少時間與天份。
想通後,一切都不難,現在大黑狗的工作目標就是三點:不斷學習,樂於分享,全力為自己奮鬥!日誌相簿影音好友名片
200705071645嵌入式系統的開發環境淺談(還是很淺)?嵌入式系統漫談
嵌入式系統的開發環境就和嵌入式系統本身一樣:不但具有多樣性,而且限制重重。
最主要的不同點在於:寫作Windows或Linux的程式時,程式編譯/連結之後的執行檔,就是運行於Windows或Linux上,所以測試/除錯都很容易。
嵌入式系統同樣是在PC上開發,但做出來的執行檔,顯然不能直接在PC上執行(再此我們先不討論模擬器的應用),必須透過下載或者“燒ROM”的流程,程式才能在真正的在機器(target)上執行。
所以嵌入式系統開發就牽涉到至少兩個平台,一個是PC,就是寫程式、編譯程式、除錯的地方,另一個則是程式真正運行的地方。
讓我們先看一個簡單的例子:
==============
菜鳥:『我手上有CPU廠商提供的評估板,插電之後板子上的LCD會顯示正在執行DEMO程式,這表示硬體應該是OK的;另外還有一台叫做ICE的設備,好像要利用這台機器才能下載自己寫的程式到板子上。
此外我讀了許多CPU廠商提供的文件和samplecode,但我還是不知道如何下手,一行程式都寫不下去,這種感覺蠻令人沮喪的。
』
(大黑狗:ICE(InCircuitEmulator)–這台機器連接PC與targetboard,讀者可以想像成:ICE會取代targetboard上的CPU,給目標程式提供一個完整的模擬環境,從而使開發者能夠非常清楚地瞭解程式在targetboard上的工作狀態,便於監視和測試程式。
)
韌體老鳥:『你開發環境都還沒架設好,就想著如何寫程式,難怪會無法下手。
想想你要在PC上寫Java程式,你需要準備什麼?』
菜鳥:『這我就熟了,要寫Java程式需要JavaVirtualMachine與Javacompiler,只要到Sun下載並安裝Java2SDK即可;通常我還會安裝BorlandJBuilder這個IDE(IntegratedDevelopmentEnvironment),這樣管理程式專案和除錯都比較方便。
如果我是要寫網路程式,如JSP或servlet,我還會在自己的機器上安裝ApacheTomcat,當作測試平台。
』
韌體老鳥:『觀念很清楚嘛,計算機系統不就是這一回事嗎?用剛剛Java的觀念,試著推想在這塊板子上寫程式需要架設什麼環境。
』
菜鳥:『我大概懂了,我把這個類比畫成一張表,請你幫我看看我想的對不對:』
JavaprogramonPC
EmbeddedSystem
“硬體”平台
PC+Windows+JVM
CPU廠商提供的評估板
Compilertools
Javacompiler
Cross-Compiler(通常由CPU廠商提供或指定)
library
JavaSDK
-Compilertools中內附ANSIClibrary
-CPU廠商提供的middleware
Editor
JBuilder
UltraEditor
程式專案管理
JBuilder
自己寫makefile與批次檔(.BAT)
除錯環境
JDB+JBuilder
Cross-Compiler或ICE廠商提供的除錯環境
除錯方法
Trace、breakpoint、watch、印出錯誤訊息…
透過ICE遠端除錯、印出錯誤訊息
技術文件
On-linedocument以及市面上林林總總的書籍
只有廠商提供的Datasheets
Samplecode
通常都是API的使用範例
通常是CPU各個功能或周邊設備驅動程式的範例
程式執行
“JavaMyProgram.class”
下載(透過ICE模擬、燒ROM、ROM模擬器、或自行撰寫的更新程式…等方法)
執行檔格式
.class
下載程式可以接受的格式(如ELF、HEX、S-Record或BinaryFiles)
(大黑狗:在A平台編譯運行於B平台程式的工具稱為Cross-compiler;一般都是在PC+Windows/Linux平台上開發運行於嵌入式CPU的程式,意即在PC編譯出來的程式內容為嵌入式CPU的機器碼,不能在PC上執行,必須透過某種方法下載到硬體版子上才能執行。
)
(大黑狗:CPU廠商為了推廣其CPU,通常會提供許多library,稱為Middleware;例如RTOS(real-timeOS)、filesystem、GUI、TCP/IP…等等。
)
(大黑狗:用ICE下載通常是下載到機器上的RAM,但當機器斷電後RAM裡面的內容就會消失;所以最終還是要透過燒ROM的方式將程式寫入唯讀的記憶體中,此後該機器才可獨立運作。
)
韌體老鳥:『所以除了“下載”這個動作外,嵌入式系統的開發似乎也沒有特別複雜的地方吧。
就利用這張表格,你可以把如何讓程式在評估板子上執行的所有步驟列出來嗎?』
菜鳥:『謝謝學長循循善誘的指導,我以可能不是那麼專案的用語,來試著排看看:』
1.在PC上安裝開發環境(包含cross-compiler、debuggingtool、editor、ICE的驅動程式等等)程式寫作
2.撰寫makefile(指示要做出執行檔之所有步驟的細節–通常包含編譯、連結以及執行檔格式轉換)
3.build程式(執行makefile中的所有指令)
4.利用ICE或其他工具將程式下載到機器上,並測試程式的執行結果
5.如果程式無誤的話,用燒錄器將程式燒錄到ROM中;則此後機器上電後就會執行新程式。
韌體老鳥:『差不多就是這樣;接下來先別急著寫自己的程式,直接用CPU或EVboard廠商提供的samplecode和makefile,把你剛剛自己列出來的步驟從頭到尾做一次看看。
』
===============
大黑狗要強調的重點是:嵌入式系統也是一個計算機系統,雖然其開發環境的功能不如PC程式的開發環境(如VisualStudio)那麼方便強大,但基本觀念是一樣的,都需要程式專案管理工具、compiler、editor、debuggingtools以及測試的硬體平台,此外程式寫作的基本技巧和觀念也沒有特殊之處。
初接觸嵌入式系統開發的工程師只要弄清楚這個觀念,再請CPU或評估板廠商詳細示範一次開發環境的使用,應該都能很快進入狀況。
另外一個重點是:不同的產品開發案可能會使用不同的CPU,所以就會有不同的開發環境;好的嵌入式系統開發工程師不會花太多時間去熟悉一個新的開發環境,基本上只要會用就好了,需要什麼功能再去查datasheet或直接問廠商即可。
最快的方法就是:利用廠商提供的samplecode,試著自己編譯、下載、執行並使用debuggingtool的各個功能,如單步執行、設中斷點、觀察CPU暫存器等等。
接著以廠商的samplecode為基礎,開始修改並新增自己的程式,再逐步擴充為自己的程式專案。
今天先對嵌入式系統開發環境做一個簡單的描述,此後大黑狗會再深入談這方面的事情。
embedded_system_book/Xuite日誌/回應(0)/引用(0)沒有上一則|日誌首頁|沒有下一則回應
加我為好友日誌相簿影音
我的相簿
embeddedsystem_book's新文章“現代嵌入式系統專案開發實務1.0”全圖文Web版上線"現代嵌入式系統專案實務"第一版全書圖文網頁版即將無料開放淺探新聞報導的時間價值與再利用追尋新社群網路服務的爆炸點大黑狗的網路服務NO.1-HeyGo!Times(黑狗日報)簡介大黑狗軟體公司2011計畫-"捍衛網路隱私,我的資料我做主"iPad觸控筆DIY中國網路公司競爭的黑暗面-使用者桌面控制權的爭奪戰網路應用發展的下個十年:GameFramework+SocialNetworking嵌入式系統開發之道講座投影片開放下載
全部展開|全部收合
關鍵字
embeddedsystem_book's新回應沒有新回應!
延伸文章資訊
- 1嵌入式系統- 維基百科,自由的百科全書
嵌入式系統的軟體是為某種應用客製化的,而不是像個人電腦那樣的由終端使用者安裝的商品,因此可以使用各種不同的基本CPU架構:既有范紐曼型架構也有不同程度的哈佛結構; ...
- 2嵌入式系統軟體開發鑑定科目 - TQC考生服務網
一) 嵌入式系統的基本硬體架構技術(1) 嵌入式系統的基本架構 ... 嵌入式系統之效能(效能分析、軟硬體統合設計等) ... 應用系統的驅動程式(Driver) 設計.
- 3從零開始! 邁向嵌入式開發C語言程式設計入門 - 博客來
本書從最基礎的語法介紹開始, 逐步介紹嵌入式程式設計經常使用的位元運算、邏輯運算、迴圈應用等技巧的說明, 奠定未來微處理器和嵌入式系統開發的基礎。
- 4嵌入式系統的開發環境淺談(還是很淺) @ 嵌入式系統以上 - 隨意窩
最主要的不同點在於:寫作Windows或Linux的程式時,程式編譯/連結之後的執行檔,就是運行於Windows或Linux上,所以測試/除錯都很容易。 嵌入式系統同樣是在PC上開發,但做 ...
- 5嵌入式系統開發的基本流程是什麼 - IT人
嵌入式系統開發是對於除了電腦之外的所有電子裝置上作業系統的開發,開發物件有手機,掌上電腦,機電系統等,一般由嵌入式微處理器、外圍硬體裝置、 ...