嵌入式工程師應該學什麼? 轉至英創公司

2021-08-26 08:07:41 字數 1856 閱讀 2006

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等),這給應用開發工程師帶來了極大的便利。

8. wince 的版權問題怎麼理解?

嵌入式工程師需要mysql 嵌入式工程師的發展路線

最近遇到很多處於迷茫中的新手,在糾結要不要去學嵌入式,主要問題在於嵌入式的門檻非常高,經驗少 或者非電子專業投身嵌入式行業能否發展下去。現在嵌入式開發行業的確發展很好,大多數從業者都是科班出身,但我們也看到很多非科班的人分享了自己的從業過程,也許起初知識不如科班的多,但他們經過持續數年學習實踐,也成...

嵌入式工程師step by step

近來嵌入式挺火,於是大家都往這裡擠。我想提醒大家的是,嵌入式馬上也會成為如今的軟體業。在你進來之前請先考慮清楚。但只要我們真的學精了一樣東西,不管它將來變成什麼樣,哪怕最後只剩下乙個人,那個人也一定就是你自己。很多人以為搞嵌入式就是隨便找本書看看,在電腦上編幾個程式就完事。非也,其實嵌入式的門檻是比...

嵌入式工程師筆試題

1.linux核心裡面,記憶體申請有哪幾個函式,各自的區別?kmalloc 連續物理記憶體 vmalloc 虛擬記憶體連續 物理上非連續 2.irq和fiq有什麼區別,在cpu裡面是是怎麼做的?irq 普通中斷 fiq 快速中斷 有自己的暫存器,省去暫存器內容儲存的時間。3.int a char b...