當前位置:首頁 » 課程設計 » 嵌入式學習課程

嵌入式學習課程

發布時間: 2021-02-03 17:55:32

❶ 嵌入式系統要學習的課程,還有課程安排

現在是計算機系大三學生,從數模電路,C++,C51單片機……到嵌入式系統U/cosII等課程都學了,以後想從事嵌入式開發(Linux),要再學什麼,順序怎樣?

首先C語言,這個是毋庸置疑的,不管是做嵌入式軟體還是硬體開發的人員,對C語言的掌握這個是必需的,特別是對於以後致力於嵌入式軟體開發的人,現在絕大部分都是用C語言,你說不掌握它可以嗎?至於如何學習C語言,我想這些基礎的知識每個人都有自己的方法,關鍵要去學習,看書也好,網上找些視頻看也好。很多人會問,C語言要學到怎麼樣,我覺得這沒有標準的答案。我想至少你在明白了一些基礎的概念後,就該寫代碼了,動手才是最重要的,當你動手了,遇到問題了,再反過來學習,反過來查查課本,那時的收獲就不是你死看書能得到的。

其次,應該對操作系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬體的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關系,多看看,結合以後的項目經驗,會有更好的理解的。

還有應該學習嵌入式系統,如linux或者wince下的編程,這些對以後做應用的編程很有幫助,當然,如果做手機的話,那可以學習MTK、塞班、Android等操作系統,Android是以後發展的趨勢,現在很熱門,Android也是基於linux系統封裝的,所以建議先學習下linux。

還有,應該學習下單片機或者ARM或者MIPS,很多人說我沒有單片機的經驗,直接學ARM可以嗎?我覺得那完全沒有問題的,當然如果你學習過單片機,那最好不過了,以後學習ARM就更簡單了。

最後如果你把以上的知識都有所了解後,就該去閱讀閱讀一些優秀的代碼,比如結合arm晶元手冊學習去學習下UBOOT的源代碼,了解下最小的系統開發,那對你整個嵌入式開發的非常有幫助的,可以的話,還可以學習下linux的源代碼,當然如果你直接閱讀2.6的代碼,我想你會很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。

==========================================================
關於如何學習嵌入式,我剛才看到一篇很不錯的文章,是一個專科生介紹自己如何自學嵌入式,並找到嵌入式的工作,裡面介紹了他的學習方法和學習過程,希望對你有幫助。

專科生學嵌入式到找到工作的前前後後--學習的榜樣

先做個自我介紹,我07年考上一所很爛專科民辦的學校,學的是生物專業,具體的學校名稱我就不說出來獻丑了。09年我就輟學了,我在那樣的學校,一年學費要1萬多,但是根本沒有人學習,我實在看不到希望,我就退學了。

退學後我也迷茫,大專都沒有畢業,我真的不知道我能幹什麼,我在糾結著我能做什麼。所以輟學後我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應聘做業務。我想應聘做技術的,可是處處碰壁。

一次偶然的機會,我才聽到嵌入式這個行業。那天我去新華書店,在計算機分類那邊想找本書學習。後來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學習嵌入式,然後給我介紹了一下嵌入式現在的火熱情況,告訴我學嵌入式多麼的有前景,給我了一份傳單,嵌入式培訓的廣告。聽了她的介紹,我心裡癢癢的,確實我很想去學會一門自己的技術,靠自己的雙手吃飯。

回家後,我就上網查了下嵌入式,確實是當今比較熱門的行業,也是比較好找工作的,工資也是相對比較高。我就下決心想學嵌入式了。於是我去找嵌入式培訓的相關信息,說真的,我也很迷茫,我不知道培訓是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。

後來,我在網路知道看到一篇讓我很鼓舞的文章《如何學習嵌入式》,是一個嵌入式高手介紹沒有基礎的朋友怎麼自學入門學嵌入式,文章寫的很好,包含了如何學習,該怎麼學習。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。

我在想,為什麼別人都能自學成才,我也可以的!我要相信自己,所以我就想自學,如果實在學不會我再去培訓。

主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統,我是想找一個能夠告訴我該怎麼學的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教,不懂可以請教的。

後來我又找到一份很好的視頻,是在嵌入式學習網推出的一份視頻《嵌入式視頻教程--零基礎手把手教你學嵌入式》,裡面的教程還不錯,很完整,可以讓我從基礎的開始學起。視頻不便宜啊,但是我也忍了,畢竟買幾本書都要幾百了,何況他們還有半年的技術咨詢和服務,算值了。

======這里我就不給出他們的網址,如果你也想要嵌入式視頻的話,那就自己去網路搜索:零基礎手把手教你學嵌入式。

下面介紹下我的學習流程,希望對和我一樣完全沒有基礎的朋友有所幫助。

收到他們寄過來的光碟後,我就開始學習了,由於我沒有什麼基礎,我就從最簡單的C語言視頻教程學起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學了一個禮拜,接下來我就學了linux的基本命令,我在他們提供linux虛擬機上都有做練習,敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月後我基本掌握了C和linux的基本操作。

接下來我就去學習了人家的視頻的培訓教程,是整套的,和去參加培訓沒有多大的區別,這一看就是兩個月,學習了ARM的基本原理,學習嵌入式系統的概念,也掌握了嵌入式的環境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應用到底是怎麼做的,但是驅動我只是有一點點的了解,這個相對難一點,我想以後再慢慢啃。

這兩個月,除了吃飯睡覺,我幾乎都在學習。因為我知道幾乎沒有基礎,比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養活自己,必須學好這門技術,同時我不懂的就問,這里真的很感謝他們的技術客服對我的任何問題都是耐心的解答,每天都我幾乎都有好幾個問題問他們,然後我就把不懂的問題總結記下來,這樣慢慢積累了一段時間,我發現自己真的有點入門了。

最後的一個月,我就去看關於實踐部分的內容,了解嵌入式項目具體的開發流程,需要什麼樣的知識,我就開始准備這方面的知識,也就是學習這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以後找工作做准備。我就到網上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多准備了20天左右

我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,於是我就到51job瘋狂的投簡歷,因為我學歷的問題,專科沒有畢業,說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過後,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了准備,但是他們的要求比較嚴格,需要有一年的項目經驗,所以我沒有被選中。

後來陸續面試了幾家公司,終於功夫不負有心人。我終於面試上的,是在閔行的一家民營的企業,公司規模比較小,我的職務是嵌入式linux應用開發,做安防產品的應用的。我想我也比較幸運,經理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500隻能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養,我自己也能養活自己的。我想只要我繼續努力,我工資一定會翻倍的。

把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。

最後祝願所有想學嵌入式的朋友更早的入門!

==========================================

上面的兩篇文章都是學嵌入式的經典文章,希望能幫到你,加油哦

❷ 嵌入式開發都要學習那些課程

看題主選擇哪條嵌入式方向了。
嵌入式開發主要分2個方向(當然了還有更細的分類)
嵌入式硬體開發工程師
嵌入式軟體開發工程師()

如果是偏硬體類:你需要懂電路,各種硬體(元器件),會看原理圖,這些你得精通,數電模電你得熟悉,語言:C是必須的,匯編你也得熟悉(電子專業的最合適不過了),ARM體系結構要很熟悉,因為你是走底層的,大概就是這樣的,linux也要熟悉(相對軟體開發工程師,會玩就行),還有一些,我一時也想不起來了。

如果是偏軟體類(我是這類的):相對硬體來說,我可以不需要精通電路,元器件,但是要得簡單的懂點點,原理圖要看的(這些在工作中可以和硬體人員慢慢溝通,問問他們,久了也就略知一二了)

下面要說重點了(主要偏LINUX系統),C語言必須完成掌握,匯編需要熟悉,熟悉一門面向對象語言(C++/JAVA等),我比較熟悉的是C++,因為偏軟體類,你走的路線應該是中--上層(也就是OS層+APP層)
必須至少掌握一門IDE開發工具(比如QT,MFC,QT尤其重要)
ARM體系結構必須掌握
LINUX系統必須熟悉(當然了,如果選擇WIN_CE的話,也是你的自由)
LINUX內核必須熟悉
嵌入式軟體工程師一般的必須任務是什麼呢:
1:u-boot的移植,編譯
2:內核的裁剪,編譯,移植
3:linux驅動的編譯,編譯,移植
4:文件系統的創建,編譯,移植
5:應用程序你得會寫(主要用QT寫),當然你去玩android,你還得會java
寫完了還不算完,你得用在板子上,所以,你要如果將寫好的程序,交叉編譯移植到板子上面去才行
基本都是這些了吧,一時沒想到其它的

語言組織能力有限
可以追問

❸ 搞嵌入式開發需要學習那些課程

轉載:

嵌入式軟體方面最重要的課程包括:

(1)

嵌入式微處理器結構與應用:這是一門嵌入式硬體基礎課程,我院用這門課取代了傳統的「微機原理與介面」課程(目前國內已有少部分高校IT專業這樣做了,因為講x86微機原理與介面很難找到實際用處,只為教學而已)。我們說過,嵌入式是軟硬體結合的技術,搞嵌入式軟體的人應對ARM處理器工作原理和介面技術有充分了解,包括ARM的匯編指令系統。若不了解處理器原理,怎麼能控制硬體工作,怎麼能寫出節省內存又運行高速的最優代碼(嵌入式軟體設計特別講究時空效率),怎麼能寫出驅動程序(驅動程序都是與硬體打交道的)?很多公司招聘嵌入式軟體人員時都要求熟悉ARM處理器,將來若同學到公司中從事嵌入式軟體開發,公司都會給你一本該設備的硬體規格說明書
(xxx
Specification),您必須能看懂其中的內存分布和埠使用等最基本的說明(就像x86匯編一樣),否則怎麼設計軟體。有些同學覺得嵌入式處理器課程較枯燥,這主要是硬體課程都較抽象的原因,等我們的嵌入式實驗室10月份建好後,您做了一些實驗後就會覺得看得見摸得著。還有同學對ARM匯編不感興趣,以為嵌入式開發用C語言就足夠了。其實不應僅是將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎麼能在該處理器寫出最優的C語言代碼。在嵌入式開發的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像採集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。當您在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬體設計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬體人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。

(2) 嵌入式操作系統類課程

除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強,所以也可稱為實時操作系統Real Time

Operating

System.從事嵌入式的人至少須掌握一個嵌入式操作系統(當然掌握兩個更好),這在嵌入式的所有技術中是最為關鍵的了。目前最重要的RTOS主要包括:

第一類、傳統的經典RTOS:最主要的便是Vxworks操作系統,以及其Tornado開發平台。Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),並且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發。像Bell-alcatel、Lucent、華為等通信企業在開發產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往用不起。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉)。但無論如何,Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。

第二類、嵌入式Linux操作系統:Linux的前途除作為伺服器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟體多、呼擁者眾,這樣嵌入式產品成本會低。Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,並且實時性不強。目前應用在嵌入式領域的Linux系統主要有兩類:一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在ARM7上跑;另一類是跑在ARM

9上的,一般是將Linux

2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM

9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發難度稍大。另外,目前我們能發現很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由於ucOS/II較簡單,且開源,非常適合入門者學習實時操作系統原理,但由於ucOS/II功能有限,實用用得較少,所以我院不將其作為教學重點,要學習就應學直接實用的,比如

uClinux就很實用。況且熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟體,對加深操作系統的認識也有幫助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發,Fujitum則是在自己的處理器上大搞Linux開發。目前在嵌入式Linux領域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上;二是能寫Linux驅動程序的人;三是熟悉Linux內核裁減和優化的人。我院在該嵌入式Linux方面的課程系列是:本科生操作系統必修課,然後是Linux程序設計選修課,最後是嵌入式Linux系統選修課。我院在Linux方面目前已有較強力量,魏老師和張老師熟悉Linux開發,金老師和唐老師熟悉Linux系統管理。

第三類、 Windows

CE嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已佔據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發平台主要為WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,由於WinCE開發都是大家熟悉的VC++環境,所以我院學過Windows程序設計課程的同學都不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低於嵌入式Linux。對於急於完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那麼好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。根據不同的側重點,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統專用於PDA上(掌上電腦),另一個是MS SmartPhone操作系統用於智能手機上(帶PDA功能的手機),兩者也都屬於WinCE平台。在PDA和手機市場上,除WinCE外,著名的PDA嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?我院可能是全國高校中唯一一家開設專門的「Windows CE嵌入式操作系統「課程的學校,這主要是基於以下原因:我院本身前面便有Windows程序設計課程,同學學過VC++後再學WinCE,非常方便自然,通過學習WinCE同樣也可了解嵌入式軟體的一般開發過程,對Linux有懼怕心理的同學也很合適。很顯然,嵌入式Linux永遠不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更願意接受MS的平台,就像各國政府都在大力推LINUX已好長時間,但您能看到幾個在PC機上真正使用LINUX的用戶?據我觀察,目前在嵌入式平台上,LINUX是叫得最響,但還是WinCE實際用得更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮;

二是微軟亞洲研究院對我院WinCE課程的支持計劃,我們也很希望將來我院能有同學通過微軟的面試去實習。WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領域之一,他們很需要精通WinCE的人。

總結關於嵌入式操作系統類課程,若您覺得自己功底較深且能鑽研下去,則可去學嵌入式Linux;若您覺得自己VC++功底較好且想短平快地學嵌入式開發,則我院的WinCE課程是最好的選擇。

(3) 嵌入式開發的其它相關軟體課程

搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關領域包括:

A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼演算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。為此,我院已預訂了一位能開設數字圖像處理課程的博士。

B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。首先,大多數嵌入式設備都要連入區域網或Internet,所以首先應掌握TCP/IP協議及其編程,這是需首要掌握的基本技術;其次,無線通信是目前的大趨勢,所以掌握無線通信協議及編程也是是很重要的。無結通信協議包括無線區域網通信協議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。

C、網路與信息安全技術:如加密技術,數字證書CA等。我院有這方面的選修課。

D、DSP技術:DSP是Digital Signal

Process數字信號處理的意思,DSP處理器通過硬體實現數字信號處理演算法,如高速數據採集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬體專業的課程,對於搞軟體的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統、數字信號處理等課程基礎,對於學習MPEG編解碼原理會有很大幫助。

(4)嵌入式開發的相關硬體基礎

對於軟體工程專業的學生,從事嵌入式軟體開發,像數字電路、計算機組成原理、嵌入式微處理器結構等硬體課程是較重要的。另外,匯編語言、C/C++、數據結構和演算法、特別是操作系統等軟體基礎課也是十分重要的。我們的主要目地是能看懂硬體工作原理,但重點應是在嵌入式軟體,特別操作系統級軟體,那將是我們的優勢。

我們的研究生里有些是學電子、通信類專業過來的,有較好的模擬電路和單片機基礎,學嵌入式非常合適。嵌入式本身就是從單片機發展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統。另外,為追求更高速的信號處理速度,現在在一些速度要求較高的場合,有不少公司是將一些DSP演算法,如MPEG壓縮解壓縮演算法等用硬體來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術,這方面的人目前市場上也很缺。

❹ 如何自學嵌入式

學習嵌入式系統,首先應該明確什麼是嵌入式系統,否則費力去學,卻不知所學為何物,豈不惘然?嵌入式系統的定義很多,這也是困擾嵌入式系統學習的一個因素。筆者根據自己開發和教學過程中的理解,以及對各種嵌入式系統的應用進行總結,提出了嵌入式系統的簡單定義:嵌入式系統是嵌入式計算機系統的簡稱,這個定義突出嵌入式計算機系統和普通計算機系統的共性。下表列出了嵌入式系統的一些典型的應用:

智能機器人(S D R 4,火星登陸車)
娛樂和消費電子(Gameboy Advance,SonyPSP)
網路通信產品(Smartphone)
軍用設備(軍用PDA )
汽車(車載導航,自動駕駛,娛樂系統)
智能儀器(虛擬儀器)
安全防護(防火,防盜)
環境保護(探空氣球)
銀行和商業消費(ATM)
以火星登陸車為例來分析一下嵌入式系統的定義。火星登陸車雖然聽起來感覺在技術上有些高不可測,但是本質就是嵌入式計算機系統的應用,其核心就是一個計算機系統,而這個計算機系統的組成同傳統的計算機系統在本質上沒有什麼差別。兩者的顯著不同之處就在於,用於火星登陸車的計算機系統被安裝到了火星登陸車上。當然,一個計算機系統能夠被安裝在火星登陸車上,是需要進行很多特殊設計的。但是從本質上講,嵌入式系統的核心概念還在計算機系統。嵌入式系統學習的重點也在計算機系統上。一方面,學習者需要牢固掌握計算機系統本身的概念,更重要的是學習嵌入系統的開發過程同傳統計算機系統開發過程的差別。這里需要指出的是,很多學習者本來就沒有從事過完整計算機系統的開發,高校的教學是以程序設計為中心的,計算機系統的構成,操作系統的原理,編程語言等課程都是為了能夠讓學生更好的使用計算機系統進行程序設計,在現有的計算平台上來設計實現各種應用,學生一般沒有機會學習一個完整的計算機系統是如何構建,並親身參與到構建的每一個過程。而對於嵌入式系統而言,從事平台開發的人就是要親自去開發出一個完整的計算機系統,這個過程包括

  1. 需求分析、

2 硬體設計


3 驅動程序


4 Bootloader & BSP (板級支持包)


5 操作系統的移植

6 應用程序的開發


7 性能檢查


嵌入式系統教學的目的就是教會學生如何根據需求去建立滿足某種特殊行業需求的嵌入式計算機系統。讓學生學會如何構件硬體平台,進行硬體設計,選擇能夠滿足應用要求的最佳的嵌入式操作系統,並完成Bootloader,BSP和驅動程序的編寫,移植,調試等過程。為了滿足行業需求,最終要在所建立的系統上編寫調試相應的應用程序,並進行性能的測試和檢查。

❺ 嵌入式應該學那些課程

你看這個
http://..com/question/337246080.html?oldq=1

❻ 嵌入式開發需要學什麼

嵌入式開發要學哪些?在這個技術瞬息萬變的年代,嵌入式技術毫無疑問也得緊跟技術發展,這對於初涉行業的新人而言,擺在面前的問題很明顯,嵌入式開發我得學習哪些技術點才能跟隨企業的腳步呢?我願意談談我接近十年對嵌入式開發的看法。
我的職業生涯起步於嵌入式開發,那時候在日企從事汽車的嵌入式開發,最後也曾當過三年的講師。不過現在依然混跡於嵌入式底層,以及android底層研發。可能還是覺得研發才是我的最愛。那麼針對嵌入式開發要學哪些我簡單的說一下,僅代表當前主流觀點。
嵌入式開發作為新人,第一步C語言,有很多人自認為自己C語言很厲害,但是實際上一個從事嵌入式開發的老人,至少需要3-5年你才敢對C語言說精通,特別涉及到的常用的指針、數組、數據類型、運算符與表達式、控制語句時?你真的都懂么?這些是學習嵌入式最基礎的知識。
第二步,有了這些代碼的基礎你才能能根據需求寫程序,也就是常說的應用層,應用層是相對簡單的。要有理解和編碼調試的能力,如系統編程、標準的I/O,文件I/O,庫的製作等等。一般而言這種應用層開發有1-2個月的時間都能學會。剩下的就是大量的編碼來提升自己的經驗。但只會這些也能找到工作,但我相信你看完下面的發現那絕對不是你的夢想!
第三步,更高級的內容也是最難的內容,前兩步更多是讓你會根據需求編碼,但是如何能讓你的程序能在硬體平台上運行,這才是真正的難題。所以每當再進一步的話,我們會發現我們什麼有很多的東西都運行的是Linux系統,可是他們和我的PC運行的Linux有什麼區別呢,為什麼我電腦要用風扇而手機不用風扇呢,我們打開網頁查找手機的詳細參數的時候,會看到Cortex-A15
、四核
、ARM等等字眼,什麼是ARM,什麼是Cortex-A15,這需要進一步的了解。
了解完ARM之後,就需要利用開發板了。這時操作系統的移植又成了一個比較重要的內容了,什麼是bootloader,什麼是kernel,什麼是rootfs等等……。
花了很長時間系統做好了,發現板子上很多的什麼不能用,怎麼辦呢?這時我們需要寫一些驅動來驅動這些設備,這時我們需要知道,什麼是字元設備驅動、塊設備驅動、網路設備驅動,為了更好的寫驅動我們需要了解更多的硬體相關的東西,我們需要看懂晶元手冊,我們需要看懂原理圖,只有我們懂我們的設備,才能更好的驅動它。等等,這里就列舉更多的內容了,因為還有很多。
所以對於嵌入式開發者來說,他們都經歷了學習的痛苦。有句話說的好,不經歷風雨怎麼見彩虹。對於學習嵌入式我比較不贊成自學,他不同於一般的應用層開發。你會面臨很多問題。問網路?太慢了!來機構學習雖然花了一部分錢,從時間成本和效率上來講,無疑還是比較值得的。

❼ 嵌入式方向要學習什麼課程

最重要的是要學好c語言,精通最好。這是首要的要求!

其次要學的課程有:
操作系統原理
硬體原理
硬體及介面技術
外圍設備
設備驅動
匯編語言
介面技術
如果你想從事嵌入式linux 那麼還要學習如下課程
linux操作系統原理
linux內核編程
linux設備驅動程序
linux網路編程
AT&T匯編程序設計

剩下的這些也是必須看的,

嵌入式系統開發過程
嵌入式系統開發實例
嵌入式項目開發流程

其他的還需要 學一些嵌入式系統開發平台相關的東西

例如 了解arm7 arm9平台等等

也有幾個方向 如基於linux的 win ce的 等等

最後一條建議:學好 單片機

單片機是嵌入式系統最重要的基礎

❽ 求研究生嵌入式方向學習的課程

我也在學嵌入式系統,本來是自動化專業。看了很多的介紹,下面轉載的很不錯,我所了解的基本都在裡面了。
現在正在自學 C++, 數據結構,操作系統,軟體基礎等。
你看了會有幫助的。

嵌入式軟體方面最重要的課程包括:

(1)

嵌入式微處理器結構與應用:這是一門嵌入式硬體基礎課程,我院用這門課取代了傳統的「微機原理與介面」課程(目前國內已有少部分高校IT專業這樣做了,因為講x86微機原理與介面很難找到實際用處,只為教學而已)。我們說過,嵌入式是軟硬體結合的技術,搞嵌入式軟體的人應對ARM處理器工作原理和介面技術有充分了解,包括ARM的匯編指令系統。若不了解處理器原理,怎麼能控制硬體工作,怎麼能寫出節省內存又運行高速的最優代碼(嵌入式軟體設計特別講究時空效率),怎麼能寫出驅動程序(驅動程序都是與硬體打交道的)?很多公司招聘嵌入式軟體人員時都要求熟悉ARM處理器,將來若同學到公司中從事嵌入式軟體開發,公司都會給你一本該設備的硬體規格說明書
(xxx
Specification),您必須能看懂其中的內存分布和埠使用等最基本的說明(就像x86匯編一樣),否則怎麼設計軟體。有些同學覺得嵌入式處理器課程較枯燥,這主要是硬體課程都較抽象的原因,等我們的嵌入式實驗室10月份建好後,您做了一些實驗後就會覺得看得見摸得著。還有同學對ARM匯編不感興趣,以為嵌入式開發用C語言就足夠了。其實不應僅是將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎麼能在該處理器寫出最優的C語言代碼。在嵌入式開發的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像採集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。當您在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬體設計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬體人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。

(2) 嵌入式操作系統類課程

除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強,所以也可稱為實時操作系統Real Time

Operating

System.從事嵌入式的人至少須掌握一個嵌入式操作系統(當然掌握兩個更好),這在嵌入式的所有技術中是最為關鍵的了。目前最重要的RTOS主要包括:

第一類、傳統的經典RTOS:最主要的便是Vxworks操作系統,以及其Tornado開發平台。Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),並且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發。像Bell-alcatel、Lucent、華為等通信企業在開發產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往用不起。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉)。但無論如何,Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。

第二類、嵌入式Linux操作系統:Linux的前途除作為伺服器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟體多、呼擁者眾,這樣嵌入式產品成本會低。Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,並且實時性不強。目前應用在嵌入式領域的Linux系統主要有兩類:一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在ARM7上跑;另一類是跑在ARM

9上的,一般是將Linux

2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM

9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發難度稍大。另外,目前我們能發現很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由於ucOS/II較簡單,且開源,非常適合入門者學習實時操作系統原理,但由於ucOS/II功能有限,實用用得較少,所以我院不將其作為教學重點,要學習就應學直接實用的,比如

uClinux就很實用。況且熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟體,對加深操作系統的認識也有幫助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發,Fujitum則是在自己的處理器上大搞Linux開發。目前在嵌入式Linux領域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上;二是能寫Linux驅動程序的人;三是熟悉Linux內核裁減和優化的人。我院在該嵌入式Linux方面的課程系列是:本科生操作系統必修課,然後是Linux程序設計選修課,最後是嵌入式Linux系統選修課。我院在Linux方面目前已有較強力量,魏老師和張老師熟悉Linux開發,金老師和唐老師熟悉Linux系統管理。

第三類、 Windows

CE嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已佔據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發平台主要為WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,由於WinCE開發都是大家熟悉的VC++環境,所以我院學過Windows程序設計課程的同學都不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低於嵌入式Linux。對於急於完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那麼好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。根據不同的側重點,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統專用於PDA上(掌上電腦),另一個是MS SmartPhone操作系統用於智能手機上(帶PDA功能的手機),兩者也都屬於WinCE平台。在PDA和手機市場上,除WinCE外,著名的PDA嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?我院可能是全國高校中唯一一家開設專門的「Windows CE嵌入式操作系統「課程的學校,這主要是基於以下原因:我院本身前面便有Windows程序設計課程,同學學過VC++後再學WinCE,非常方便自然,通過學習WinCE同樣也可了解嵌入式軟體的一般開發過程,對Linux有懼怕心理的同學也很合適。很顯然,嵌入式Linux永遠不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更願意接受MS的平台,就像各國政府都在大力推LINUX已好長時間,但您能看到幾個在PC機上真正使用LINUX的用戶?據我觀察,目前在嵌入式平台上,LINUX是叫得最響,但還是WinCE實際用得更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮;

二是微軟亞洲研究院對我院WinCE課程的支持計劃,我們也很希望將來我院能有同學通過微軟的面試去實習。WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領域之一,他們很需要精通WinCE的人。

總結關於嵌入式操作系統類課程,若您覺得自己功底較深且能鑽研下去,則可去學嵌入式Linux;若您覺得自己VC++功底較好且想短平快地學嵌入式開發,則我院的WinCE課程是最好的選擇。

(3) 嵌入式開發的其它相關軟體課程

搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關領域包括:

A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼演算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。為此,我院已預訂了一位能開設數字圖像處理課程的博士。

B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。首先,大多數嵌入式設備都要連入區域網或Internet,所以首先應掌握TCP/IP協議及其編程,這是需首要掌握的基本技術;其次,無線通信是目前的大趨勢,所以掌握無線通信協議及編程也是是很重要的。無結通信協議包括無線區域網通信協議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。

C、網路與信息安全技術:如加密技術,數字證書CA等。我院有這方面的選修課。

D、DSP技術:DSP是Digital Signal

Process數字信號處理的意思,DSP處理器通過硬體實現數字信號處理演算法,如高速數據採集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬體專業的課程,對於搞軟體的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統、數字信號處理等課程基礎,對於學習MPEG編解碼原理會有很大幫助。

(4)嵌入式開發的相關硬體基礎

對於軟體工程專業的學生,從事嵌入式軟體開發,像數字電路、計算機組成原理、嵌入式微處理器結構等硬體課程是較重要的。另外,匯編語言、C/C++、數據結構和演算法、特別是操作系統等軟體基礎課也是十分重要的。我們的主要目地是能看懂硬體工作原理,但重點應是在嵌入式軟體,特別操作系統級軟體,那將是我們的優勢。

我們的研究生里有些是學電子、通信類專業過來的,有較好的模擬電路和單片機基礎,學嵌入式非常合適。嵌入式本身就是從單片機發展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統。另外,為追求更高速的信號處理速度,現在在一些速度要求較高的場合,有不少公司是將一些DSP演算法,如MPEG壓縮解壓縮演算法等用硬體來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術,這方面的人目前市場上也很缺。

❾ 想學嵌入式,需要學習哪些先修課呢

如果做嵌入式的應用軟抄件,可以不學硬體,沒有關系。學學linux、安卓之類的操作系統,QT之類的GUI等編程就可以了。
如果做驅動開發,就需要學一些控制器相關的硬體知識,其實只要好好看看用的控制器的數據手冊,學學操作系統也就可以了。
學軟體工程的不會考慮做嵌入式硬體吧,不用學模電之類的硬體課程了。

❿ 嵌入式工程師都學什麼課程

c和c++這兩種語言是必學的,要是能再看看匯編語言更好。
操作系統也要學,版其中linux必學,這個用的多權。有時間windows
ce也可以學學,我還見過有用qnx的,這倆你隨便吧。
然後就是硬體知識必學,arm這類知識一定要清楚。
然後就是一些大學基礎課程,像數學、數據結構、演算法設計、計算機組成和原理一定要好好學,語言會過時,系統會更新,但這些知識永遠都不會過時,他們才是最重要的,並且能教會你學知識的本領。
最後一項萬年不變,就是英語一定要學好!
差不多了,再加上充分實踐,你就可以向嵌入式工程師看齊了~

熱點內容
幼師專業怎麼樣 發布:2021-03-16 21:42:13 瀏覽:24
音樂小毛驢故事 發布:2021-03-16 21:40:57 瀏覽:196
昂立中學生教育閘北 發布:2021-03-16 21:40:47 瀏覽:568
建築業一建報考條件 發布:2021-03-16 21:39:53 瀏覽:666
2017年教師資格注冊結果 發布:2021-03-16 21:39:49 瀏覽:642
中國教師資格證查分 發布:2021-03-16 21:39:41 瀏覽:133
踵什麼成語有哪些 發布:2021-03-16 21:38:20 瀏覽:962
東營幼師專業學校 發布:2021-03-16 21:35:26 瀏覽:467
機械電子研究生課程 發布:2021-03-16 21:33:36 瀏覽:875
杭州朝日教育培訓中心怎麼樣 發布:2021-03-16 21:33:28 瀏覽:238