最近有不少客戶就嵌入式系統(tǒng)開發(fā)入門方面提出了一些問題,我們感覺很有代表性,所以英創(chuàng)工程師把這些問題進(jìn)行了匯總解答,希望能對(duì)想做嵌入式開發(fā)的工程師有一點(diǎn)幫助。
1. 進(jìn)行嵌入式開發(fā)必須弄懂ARM匯編指令集嗎?
書店里有很多入門級(jí)的書,第一章不是介紹ARM指令集,就是介紹ARM的CPU資源,這給很多初學(xué)者一個(gè)很不好的直觀感覺,就是學(xué)習(xí)ARM一定要把匯編語言和CPU資源搞明白。然而,這兩個(gè)方面,沒有實(shí)際的去做一下,只是紙上談兵,怎么又搞得明白呢,于是,讓很多初學(xué)者,知難而退。
其實(shí),選ARM很大的目的就是為了跑嵌入式操作系統(tǒng),最常見的當(dāng)然是Linux和WinCE操作系統(tǒng)。嵌入式操作系統(tǒng)為開發(fā)人員提供了幾乎完整的基于C語言的工作環(huán)境,所以基于這兩個(gè)操作系統(tǒng)進(jìn)行的開發(fā),在大多數(shù)情況下都沒有必要先去搞懂ARM的匯編指令集和全部的CPU資源。當(dāng)然,有了一定的技術(shù)基礎(chǔ)后,CPU資源也有必要去了解,但是,我們建議是在實(shí)踐中去了解這些問題,而不是在開始的時(shí)候通過看所謂的入門書進(jìn)行似是而非的學(xué)習(xí)。
2. 必須使用ADS嗎?
還是剛才所說的,好多入門書,為了說明ARM指令集中指令的使用方法便使用了ADS或者IAR開發(fā)環(huán)境,這樣,就使得初入門的用戶錯(cuò)誤地理解為開發(fā)ARM就是用ADS開發(fā)環(huán)境(筆者初學(xué)時(shí),就是這么認(rèn)為的,幸虧及時(shí)有人指路,才沒有在這個(gè)環(huán)境上花太多的時(shí)間),然而,根據(jù)不同的CPU,ADS設(shè)置是十分麻煩的,因?yàn)镃PU是很復(fù)雜的,經(jīng)常有用戶就卡在這里,無法超越,時(shí)間長了,也就放棄了嵌入式開發(fā)了。
其實(shí),ADS只是調(diào)試啟動(dòng)代碼的一種環(huán)境,而這樣的代碼,CPU廠家已經(jīng)寫好了,這些代碼也可以在Linux或者WinCE的開發(fā)環(huán)境中編譯,所以,完全可以不考慮ADS 的使用。當(dāng)然,如果你想在ARM上“裸奔”,那是另外的說法了。
3. 如何選擇操作系統(tǒng)?
除了上面提到的Linux和WinCE外,還有幾十種嵌入式操作系統(tǒng),只不過Linux和WinCE 是最常見和最通用的嵌入式操作系統(tǒng),其它就比較側(cè)重于專業(yè)領(lǐng)域。那么如何在這幾十種操作系統(tǒng)中,選擇適合自己的操作系統(tǒng)呢?
第一:如果自己所選的CPU不支持MMU,那么如果需要操作系統(tǒng)的話,一般選擇uC/OS-II操作系統(tǒng),注意uC/OS-II不是免費(fèi)的操作系統(tǒng),盡管它的源碼是公開的。
第二:如果自己所選的CPU支持MMU,最好選Linux或WinCE。在Linux和WinCE之間的選擇與很多因素有關(guān),如最終產(chǎn)品的數(shù)量、產(chǎn)品開發(fā)周期、工程師的技術(shù)背景等等。一般來講基于Linux的產(chǎn)品開發(fā)周期更長,對(duì)工程師的要求更高,表面上看上去沒有License費(fèi)用,因此比較適合批量較大、對(duì)成本敏感的產(chǎn)品。相反WinCE由于工具完善,易于上手,只要用過VC的工程師均能很快轉(zhuǎn)入嵌入式系統(tǒng)應(yīng)用程序的開發(fā)。
4. 怎么選擇開發(fā)語言?
在嵌入式開發(fā)領(lǐng)域,首選是C語言,因?yàn)镃是中級(jí)語言,即可以用來寫應(yīng)用程序,也能用來寫驅(qū)動(dòng)程序。根據(jù)數(shù)據(jù)顯示,使用C語言的嵌入式程序員占70%。其次是C++,應(yīng)用程序可以用C++編寫,更方便些。其它語言只占了1%。
5. Linux應(yīng)用程序的開發(fā)環(huán)境是什么?
Linux是以公共社區(qū)的形式發(fā)展起來的,基于此,很多商業(yè)級(jí)的Linux開發(fā)工具,由于價(jià)格、可用性等原因,并沒有得到普遍應(yīng)用。目前大多數(shù)的Linux應(yīng)用開發(fā)還是停留在命令行的方式,對(duì)開發(fā)者的門檻要求較高。用戶編寫好的程序,首先在裝有Linux 的PC機(jī)上測(cè)試好后,再用交叉編譯環(huán)境把代碼編譯成能在ARM Linux下運(yùn)行的程序。
6. WinCE應(yīng)用程序的開發(fā)環(huán)境是什么?
eVC是微軟提供的WinCE應(yīng)用程序開發(fā)工具之一,其界面和VC非常相似,很容易入門,其還有一個(gè)優(yōu)點(diǎn),就是是免費(fèi)的,不存在版權(quán)問題。從性能上看,eVC比任何Linux的開發(fā)工具的性能都強(qiáng)很多了。另外,WinCE還可以使用微軟的Visual Stdio.Net集成開發(fā)工具進(jìn)行應(yīng)用開發(fā)(可以選擇使用的語言包括C++/C#/VB等),這給應(yīng)用開發(fā)工程師帶來了極大的便利。
7. 嵌入式開發(fā)怎么實(shí)現(xiàn)在線調(diào)試呢?
說到在線調(diào)試,做過單片機(jī)的工程師,第一想到的就是仿真機(jī),那么,嵌入式操作系統(tǒng)怎么實(shí)現(xiàn)在線調(diào)試呢?對(duì)于調(diào)試Linux和WinCE的應(yīng)用程序,可以直接通過網(wǎng)線或者USB接口實(shí)現(xiàn)在線調(diào)試,效果可以達(dá)到使用單片機(jī)仿真機(jī)的效果,可以設(shè)置斷點(diǎn)、可以看到寄存器值和變量值等實(shí)時(shí)調(diào)試信息。如果要調(diào)試Linux或者WinCE的內(nèi)核系統(tǒng),就只有去購買價(jià)格不菲的仿真系統(tǒng)了。但是對(duì)于大多數(shù)工程師來說,能在C語言源碼級(jí)進(jìn)行調(diào)試就足以滿足要求,實(shí)際上,更多的時(shí)候,是簡單地在應(yīng)用程序中插入printf語句,把需要查看的信息打印出來,就可完成應(yīng)用程序的調(diào)試了,因?yàn)檫@樣處理能保證系統(tǒng)都于實(shí)際真實(shí)的運(yùn)行狀態(tài)之中。
8. WinCE 的版權(quán)問題怎么理解?
版權(quán)問題是困擾工程師的很大的問題。中國的特點(diǎn)就是喜歡免費(fèi),所以,一說收費(fèi),工程師就立馬拒絕了。其實(shí)工程師應(yīng)該去了解一下如何收費(fèi),收多少費(fèi),收的這個(gè)費(fèi)用對(duì)于企業(yè)來說合不合理?
說到開發(fā)基于WinCE的嵌入式系統(tǒng),往往會(huì)提到PlatformBuilder,這是微軟為平臺(tái)開發(fā)者提供的一次性收費(fèi)開發(fā)工具。但幸運(yùn)的是,如果僅僅從事嵌入式系統(tǒng)的應(yīng)用開發(fā),則根本用不到PlatformBuilder。微軟對(duì)每個(gè)基于WinCE的最終產(chǎn)品有一個(gè)License費(fèi)用,其中對(duì)嵌入式系統(tǒng)最常用的Core License 費(fèi)用在30人民幣左右,工程師可以拿這個(gè)數(shù)字和開發(fā)其它操作系統(tǒng)的費(fèi)用比一比,這個(gè)占多大比例。
英創(chuàng)公司的嵌入式主板,已經(jīng)提供了WinCE 的正版授權(quán),所以,選擇英創(chuàng)公司的嵌入式主板,不存在版權(quán)問題。開發(fā)WinCE 應(yīng)用程序除了免費(fèi)的EVC外,還有VS(visual studio 2005),這個(gè)對(duì)于大多數(shù)Windows應(yīng)用程序工程師并不陌生,盡管這個(gè)軟件是要付費(fèi)的,但獲得起來并不困難。在嵌入式環(huán)境,只要應(yīng)用程序運(yùn)行的操作系統(tǒng)環(huán)境是經(jīng)授權(quán)的,那么對(duì)微軟來講就不存在版權(quán)問題。這樣看來,你的產(chǎn)品只是多出來不到30元人民幣的WinCE License費(fèi)用(如果是購買英創(chuàng)的產(chǎn)品,英創(chuàng)實(shí)際已經(jīng)幫用戶繳納了這部分費(fèi)用)。如果產(chǎn)品的成本對(duì)這個(gè)費(fèi)用都非常敏感的話,我們測(cè)算,那也許意味著系統(tǒng)不能使用任何操作系統(tǒng)。
-
WINDOWS
+關(guān)注
關(guān)注
4文章
3586瀏覽量
89963 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6092瀏覽量
35845
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論