關於嵌入式 linux/wince幾個很重要的幾個問題

來源:互聯網
上載者:User

  最近有不少客戶就嵌入式系統開發入門方面提出了一些問題,我們感覺很有代表性,所以英創工程師把這些問題進行了匯總解答,希望能對想做嵌入式開發的工程師有一點協助。

 

1. 進行嵌入式開發必須弄懂ARM彙編指令集嗎?
        書店裡有很多入門級的書,第一章不是介紹ARM指令集,就是介紹ARM的CPU資源,這給很多初學者一個很不好的直觀感覺,就是學習ARM一定要把組合語言和CPU資源搞明白。然而,這兩個方面,沒有實際的去做一下,只是紙上談兵,怎麼又搞得明白呢,於是,讓很多初學者,知難而退。

        其實,選ARM很大的目的就是為了跑嵌入式作業系統,最常見的當然是Linux和WinCE作業系統。嵌入式作業系統為開發人員提供了幾乎完整的基於C語言的工作環境,所以基於這兩個作業系統進行的開發,在大多數情況下都沒有必要先去搞懂ARM的彙編指令集和全部的CPU資源。當然,有了一定的技術基礎後,CPU資源也有必要去瞭解,但是,我們建議是在實踐中去瞭解這些問題,而不是在開始的時候通過看所謂的入門書進行似是而非的學習。

 

2. 必須使用ADS嗎?
        還是剛才所說的,好多入門書,為了說明ARM指令集中指令的使用方法便使用了ADS或者IAR開發環境,這樣,就使得初入門的使用者錯誤地理解為開發ARM就是用ADS開發環境(筆者初學時,就是這麼認為的,幸虧及時有人指路,才沒有在這個環境上花太多的時間),然而,根據不同的CPU,ADS設定是十分麻煩的,因為CPU是很複雜的,經常有使用者就卡在這裡,無法超越,時間長了,也就放棄了嵌入式開發了。

        其實,ADS只是調試啟動代碼的一種環境,而這樣的代碼,CPU廠家已經寫好了,這些代碼也可以在Linux或者WinCE的開發環境中編譯,所以,完全可以不考慮ADS 的使用。當然,如果你想在ARM上“裸奔”,那是另外的說法了。

 

3. 如何選擇作業系統?
        除了上面提到的Linux和WinCE外,還有幾十種嵌入式作業系統,只不過Linux和WinCE 是最常見和最通用的嵌入式作業系統,其它就比較側重於專業領域。那麼如何在這幾十種作業系統中,選擇適合自己的作業系統呢?

        第一:如果自己所選的CPU不支援MMU,那麼如果需要作業系統的話,一般選擇uC/OS-II作業系統,注意uC/OS-II不是免費的作業系統,儘管它的源碼是公開的。

        第二:如果自己所選的CPU支援MMU,最好選Linux或WinCE。在Linux和WinCE之間的選擇與很多因素有關,如最終產品的數量、產品開發週期、工程師的技術背景等等。一般來講基於Linux的產品開發週期更長,對工程師的要求更高,表面上看上去沒有License費用,因此比較適合批量較大、對成本敏感的產品。相反WinCE由於工具完善,易於上手,只要用過VC的工程師均能很快轉入嵌入式系統應用程式的開發。

 

4. 怎麼選擇開發語言?
        在嵌入式開發領域,首選是C語言,因為C是中級語言,即可以用來寫應用程式,也能用來寫驅動程式。根據資料顯示,使用C語言的嵌入式程式員佔70%。其次是C++,應用程式可以用C++編寫,更方便些。其它語言只佔了1%。

 

5. Linux應用程式的開發環境是什嗎?
        Linux是以公用社區的形式發展起來的,基於此,很多商業級的Linux開發工具,由於價格、可用性等原因,並沒有得到普遍應用。目前大多數的Linux應用開發還是停留在命令列的方式,對開發人員的門檻要求較高。使用者編寫好的程式,首先在裝有Linux 的PC機上測試好後,再用交叉編譯環境把代碼編譯成能在ARM Linux下啟動並執行程式。

 


6. WinCE應用程式的開發環境是什嗎?
        eVC是微軟提供的WinCE應用程式開發工具之一,其介面和VC非常相似,很容易入門,其還有一個優點,就是是免費的,不存在著作權問題。從效能上看,eVC比任何Linux的開發工具的效能都強很多了。另外,WinCE還可以使用微軟的Visual Stdio.Net整合開發工具進行應用開發(可以選擇使用的語言套件括C++/C#/VB等),這給應用開發工程師帶來了極大的便利。

 

7. 嵌入式開發怎麼實現線上調試呢?
        說到線上調試,做過單片機的工程師,第一想到的就是模擬機,那麼,嵌入式作業系統怎麼實現線上調試呢?對於調試Linux和WinCE的應用程式,可以直接通過網線或者USB介面實現線上調試,效果可以達到使用單片機模擬機的效果,可以設定斷點、可以看到寄存器值和變數值等Just-in-Time 偵錯資訊。如果要調試Linux或者WinCE的核心系統,就只有去購買價格不菲的模擬系統了。但是對於大多數工程師來說,能在C語言源碼級進行調試就足以滿足要求,實際上,更多的時候,是簡單地在應用程式中插入printf語句,把需要查看的資訊列印出來,就可完成應用程式的調試了,因為這樣處理能保證系統都於實際真實的運行狀態之中。

 

8. WinCE 的著作權問題怎麼理解?
        著作權問題是困擾工程師的很大的問題。中國的特點就是喜歡免費,所以,一說收費,工程師就立馬拒絕了。其實工程師應該去瞭解一下如何收費,收多少費,收的這個費用對於企業來說合不合理?

        說到開發基於WinCE的嵌入式系統,往往會提到PlatformBuilder,這是微軟為平台開發人員提供的一次性收費開發工具。但幸運的是,如果僅僅從事嵌入式系統的應用開發,則根本用不到PlatformBuilder。微軟對每個基於WinCE的最終產品有一個License費用,其中對嵌入式系統最常用的Core License 費用在30人民幣左右,工程師可以拿這個數字和開發其它作業系統的費用比一比,這個佔多大比例。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.