嵌入式軟件開發工程師路線(嵌入式軟件開發崗位)

軟件開發 2422
本篇文章(zhāng)給大家談談嵌入式軟件開發工程師路線,以及嵌入式軟件開發崗位對應的(de)知識點,希望對各位有(yǒu)所幫助,不要忘了收藏本站喔。 本文目錄一(yī)覽: 1、嵌入式軟件工程師需要學(xué)什麽?

本篇文章(zhāng)給大家談談嵌入式軟件開發工程師路線,以及嵌入式軟件開發崗位對應的(de)知識點,希望對各位有(yǒu)所幫助,不要忘了收藏本站喔。

本文目錄一(yī)覽:

嵌入式軟件工程師需要學(xué)什麽?

嵌入式軟件工程師需要具備簡單的(de)硬件電路設計能力。

需要懂得C語言和(hé)一(yī)些簡單的(de)彙編語言編程;能夠閱讀一(yī)般嵌入式系統的(de)原理(lǐ)圖;至少熟悉一(yī)種嵌入式系統的(de)軟件開發環境;熟悉一(yī)種嵌入式系統軟件的(de)開發過程;必要硬件基礎知識;理(lǐ)解常見的(de)嵌入式操作系統的(de)工作原理(lǐ)。

需要懂得:(1)懂得C語言和(hé)一(yī)些簡單的(de)彙編語言編程。

(2)能夠閱讀一(yī)般嵌入式系統的(de)原理(lǐ)圖。

(3)至少熟悉一(yī)種嵌入式系統的(de)軟件開發環境。

(4)熟悉一(yī)種嵌入式系統軟件的(de)開發過程,如(rú):單片機(jī)系統、DSP系統、ARM系統或其它的(de)一(yī)些潛入式系統。

(5)理(lǐ)解常見的(de)嵌入式操作系統的(de)工作原理(lǐ),理(lǐ)解線程、進程、信号量、消息機(jī)制、同步與互拆、并發控制等軟件編程時用到的(de)概念。

(6)必要硬件基礎知識。

嵌入式工程師的(de)學(xué)習路線是什麽?

關于這個方向,我(wǒ)認為(wèi)大概分3個階段:

1、嵌入式linux上層應用,包括QT的(de)GUI開發

2、嵌入式linux系統開發

3、嵌入式linux驅動開發

嵌入式目前主要面向的(de)幾個操作系統是,LINUX,WINCE、VxWorks等等

Linux是開源免費的(de),而且其源代碼是開放的(de),更加适合我(wǒ)們(men)學(xué)習嵌入式。

所以你可(kě)以嘗試以下路線:

(1) C語言是所有(yǒu)編程語言中的(de)強者,單片機(jī)、DSP、類似ARM的(de)種種芯片的(de)編程都可(kě)以用C語言搞定),因此必須非常熟練的(de)掌握。

推薦書籍:《The C Programming Language》 這本經典的(de)教材是老外寫的(de),也有(yǒu)中譯版本。

(2) 操作系統原理(lǐ),是必需的(de),如(rú)果你是計算機(jī)專業畢業那也就無所謂了,如(rú)果是非計算機(jī)專業的(de)就必須找一(yī)本比較淺顯的(de)計算機(jī)原理(lǐ)書籍看一(yī)看,把啥叫“進程”“線程”“系統調度”等等基本問題搞清楚。

(3)Linux操作系統就是用C語言編寫的(de),所以你也應該先學(xué)習下Linux方面的(de)編程,隻有(yǒu)你會應用了,才能近一(yī)步去(qù)了解其內(nèi)核的(de)精髓。

推薦書籍:《UNIX環境高(gāo)級編程》(第2版)

(4) 了解ARM的(de)架構,原理(lǐ),以及其彙編指令,我(wǒ)們(men)在嵌入式開發中,一(yī)般很少去(qù)寫彙編,但是最起碼的(de)要求是能夠看懂arm彙編。

(5) 系統移植的(de)時候,就需要你從最下層的(de)bootloader開始,然後內(nèi)核移植,文件系統移植等。而移植這部分對硬件的(de)依賴是非常大的(de),其配置步驟也相對複雜,也沒有(yǒu)太多詳細資料。

(6) 驅動開發

linux驅動程序設計既是個極富有(yǒu)挑戰性的(de)領域,又是一(yī)個博大精深的(de)內(nèi)容。

linux驅動程序設計本質是屬于linux內(nèi)核編程範疇的(de),因而是對linux內(nèi)核和(hé)內(nèi)核編程是有(yǒu)要求的(de)。在學(xué)習前你要想了解linux內(nèi)核的(de)組成,因為(wèi)每一(yī)部分要詳細研究的(de)話足夠可(kě)以擴展成一(yī)本厚書。

以上隻不過是大概的(de)框架,在實際的(de)開發中還會涉及很多東西,比如(rú):交叉編譯、makefile、shell腳本等等,所以說學(xué)習嵌入式的(de)周期較長(cháng),門檻較高(gāo),自(zì)學(xué)的(de)話更是需要較強的(de)學(xué)習能力和(hé)專業功底。隻要能堅持下來一(yī)定會取得成功!

…………………………………………

嵌入式非常難,看書的(de)話比較晦澀難懂,不容易入門,我(wǒ)個人比較偏向于看視(shì)頻教程,因為(wèi)有(yǒu)老師帶着比較容易入門。給看看一(yī)篇文章(zhāng)是關于一(yī)位專科(kē)生怎麽自(zì)學(xué)嵌入式的(de)。

做(zuò)個自(zì)我(wǒ)介紹,我(wǒ)07年(nián)考上一(yī)所很爛專科(kē)民辦的(de)學(xué)校,學(xué)的(de)是生物專業,具體的(de)學(xué)校名稱我(wǒ)就不說出來獻醜了。09年(nián)我(wǒ)就辍學(xué)了,我(wǒ)在那樣的(de)學(xué)校,一(yī)年(nián)學(xué)費要1萬多,但是根本沒有(yǒu)人學(xué)習,我(wǒ)實在看不到希望,我(wǒ)就退學(xué)了。

退學(xué)後我(wǒ)也迷茫,大專都沒有(yǒu)畢業,我(wǒ)真的(de)不知道(dào)我(wǒ)能幹什麽,我(wǒ)在糾結着我(wǒ)能做(zuò)什麽。所以辍學(xué)後我(wǒ)一(yī)段時間,我(wǒ)想去(qù)找工作,因為(wèi)我(wǒ)比較沉默寡言,不是很會說話,我(wǒ)不适合去(qù)應聘做(zuò)業務。我(wǒ)想應聘做(zuò)技術的(de),可(kě)是處處碰壁。

一(yī)次偶然的(de)機(jī)會,我(wǒ)才聽到嵌入式這個行(xíng)業。那天我(wǒ)去(qù)新華書店,在計算機(jī)分類那邊想找本書學(xué)習。後來有(yǒu)個女孩子(zǐ)走過來,問我(wǒ)是不是讀計算機(jī)的(de),有(yǒu)沒有(yǒu)興趣學(xué)習嵌入式,然後給我(wǒ)介紹了一(yī)下嵌入式現在的(de)火熱情況,告訴我(wǒ)學(xué)嵌入式多麽的(de)有(yǒu)前景,給我(wǒ)了一(yī)份傳單,嵌入式培訓的(de)廣告。聽了她的(de)介紹,我(wǒ)心裏癢癢的(de),确實我(wǒ)很想去(qù)學(xué)會一(yī)門自(zì)己的(de)技術,靠自(zì)己的(de)雙手吃飯。

回家後,我(wǒ)就上網查了下嵌入式,确實是當今比較熱門的(de)行(xíng)業,也是比較好找工作的(de),工資也是相對比較高(gāo)。我(wǒ)就下決心想學(xué)嵌入式了。于是我(wǒ)去(qù)找嵌入式培訓的(de)相關信息,說真的(de),我(wǒ)也很迷茫,我(wǒ)不知道(dào)培訓是否真的(de)能像他們(men)宣傳的(de)那樣好,所以我(wǒ)就想了解一(yī)段時間再做(zuò)打算。

後來,我(wǒ)在百度知道(dào)看到一(yī)篇讓我(wǒ)很鼓舞的(de)文章(zhāng),是一(yī)個嵌入式高(gāo)手介紹沒有(yǒu)基礎的(de)朋(péng)友怎麽自(zì)學(xué)入門學(xué)嵌入式,文章(zhāng)寫的(de)很好,包含了如(rú)何學(xué)習,該怎麽學(xué)習。他提到一(yī)個方法就是看視(shì)頻,因為(wèi)看書實在太枯燥和(hé)費解的(de),很多我(wǒ)們(men)也看不懂。這點我(wǒ)真的(de)很認同,我(wǒ)自(zì)己看書往往看不了幾頁。

我(wǒ)在想,為(wèi)什麽别人都能自(zì)學(xué)成才,我(wǒ)也可(kě)以的(de)!我(wǒ)要相信自(zì)己,所以我(wǒ)就想自(zì)學(xué),如(rú)果實在學(xué)不會我(wǒ)再去(qù)培訓。

主意一(yī)定,我(wǒ)就去(qù)搜索嵌入式的(de)視(shì)頻,雖然零星找到一(yī)些嵌入式的(de)視(shì)頻,但是都不系統,我(wǒ)是想找一(yī)個能夠告訴我(wǒ)該怎麽學(xué)的(de)視(shì)頻,一(yī)套從入門到精通的(de)視(shì)頻,一(yī)個比較完整的(de)資料,最好能有(yǒu)老師教,不懂可(kě)以請教的(de)。

後來我(wǒ)又找到一(yī)份很好的(de)視(shì)頻,是在IT學(xué)習聯盟網站推出的(de)一(yī)份視(shì)頻《零基礎嵌入式就業班》(喜歡《零基礎嵌入式就業班》的(de)可(kě)以複制 sina.lt/qKh 粘貼浏覽器按回車鍵即打開)。裏面的(de)教程還不錯,很完整,可(kě)以讓我(wǒ)從基礎的(de)開始學(xué)起。視(shì)頻比較便宜。

下面介紹下我(wǒ)的(de)學(xué)習流程,希望對和(hé)我(wǒ)一(yī)樣完全沒有(yǒu)基礎的(de)朋(péng)友有(yǒu)所幫助。

收到他們(men)寄過來的(de)光盤後,我(wǒ)就開始學(xué)習了,由于我(wǒ)沒有(yǒu)什麽基礎,我(wǒ)就從最簡單的(de)C語言視(shì)頻教程學(xué)起,話說簡單,其實我(wǒ)還是很多不懂的(de),我(wǒ)隻好請教他們(men),他們(men)還是很熱心的(de),都幫我(wǒ)解決了。C語言我(wǒ)差不多學(xué)了一(yī)個禮拜,接下來我(wǒ)就學(xué)了linux的(de)基本命令,我(wǒ)在他們(men)提供linux虛拟機(jī)上都有(yǒu)做(zuò)練習,敲linux的(de)基本命令,寫簡單的(de)C語言代碼,差不多也就三個禮拜。我(wǒ)每天都在不停的(de)寫一(yī)些簡單的(de)代碼,這樣一(yī)月後我(wǒ)基本掌握了C和(hé)linux的(de)基本操作。

接下來我(wǒ)就去(qù)學(xué)習了人家的(de)視(shì)頻的(de)培訓教程,是整套的(de),和(hé)去(qù)參加培訓沒有(yǒu)多大的(de)區别,這一(yī)看就是兩個月,學(xué)習了ARM的(de)基本原理(lǐ),學(xué)習嵌入式系統的(de)概念,也掌握了嵌入式的(de)環境的(de)一(yī)些搭建,對linux也有(yǒu)更深層次的(de)理(lǐ)解了,明白了嵌入式應用到底是怎麽做(zuò)的(de),但是驅動我(wǒ)隻是有(yǒu)一(yī)點點的(de)了解,這個相對難一(yī)點,我(wǒ)想以後再慢慢啃。

這兩個月,除了吃飯睡覺,我(wǒ)幾乎都在學(xué)習。因為(wèi)我(wǒ)知道(dào)幾乎沒有(yǒu)基礎,比别人差勁,我(wǒ)隻能堅持努力着,我(wǒ)不能放棄,我(wǒ)必要要靠自(zì)己來養活自(zì)己,必須學(xué)好這門技術,然後我(wǒ)就把不懂的(de)問題總結記下來,這樣慢慢積累了一(yī)段時間,我(wǒ)發現自(zì)己真的(de)有(yǒu)點入門了。

最後的(de)一(yī)個月,我(wǒ)就去(qù)看關于實踐部分的(de)內(nèi)容,了解嵌入式項目具體的(de)開發流程,需要什麽樣的(de)知識,我(wǒ)就開始準備這方面的(de)知識,也就是學(xué)習這方面的(de)視(shì)頻,同時他們(men)建議我(wǒ)去(qù)找了找一(yī)些嵌入式面試的(de)題目,為(wèi)自(zì)己以後找工作做(zuò)準備。我(wǒ)就到網上找了很多嵌入式的(de)題目,把他們(men)理(lǐ)解的(de)記下來,這樣差不多準備了20天左右

我(wǒ)覺得自(zì)己差不多入門了,會做(zuò)一(yī)些簡單的(de)東西了。我(wǒ)就想去(qù)找工作看看,于是我(wǒ)就到51job瘋狂的(de)投簡曆,因為(wèi)我(wǒ)學(xué)曆的(de)問題,專科(kē)沒有(yǒu)畢業,說真的(de),大公司沒有(yǒu)人會要我(wǒ),所以我(wǒ)投的(de)都是民營的(de)小公司,我(wǒ)希望自(zì)己的(de)努力有(yǒu)所回報。沒有(yǒu)想過幾天過後,就有(yǒu)面試了,但是第一(yī)次面試我(wǒ)失敗了,雖然我(wǒ)自(zì)認為(wèi)筆(bǐ)試很好,因為(wèi)我(wǒ)之前做(zuò)了準備,但是他們(men)的(de)要求比較嚴格,需要有(yǒu)一(yī)年(nián)的(de)項目經驗,所以我(wǒ)沒有(yǒu)被選中。

後來陸續面試了幾家公司,終于功夫不負有(yǒu)心人。我(wǒ)終于面試上的(de),是在闵行(xíng)的(de)一(yī)家民營的(de)企業,公司規模比較小,我(wǒ)的(de)職務是嵌入式linux應用開發,做(zuò)安防産品的(de)應用的(de)。我(wǒ)想我(wǒ)也比較幸運,經理(lǐ)很看重我(wǒ)的(de)努力,就決定錄用我(wǒ),開的(de)工資是3500一(yī)個月,雖然我(wǒ)知道(dào)在上海3500隻能過溫飽的(de)生活,但是我(wǒ)想我(wǒ)足夠了。我(wǒ)至少不用每天都要靠父母養,我(wǒ)自(zì)己也能養活自(zì)己的(de)。我(wǒ)想隻要我(wǒ)繼續努力,我(wǒ)工資一(yī)定會翻倍的(de)。

把本文寫出來,希望能讓和(hé)我(wǒ)一(yī)樣的(de)沒有(yǒu)基礎的(de)朋(péng)友有(yǒu)信心,其實我(wǒ)們(men)沒有(yǒu)必要自(zì)卑,我(wǒ)們(men)不比别人笨,隻要我(wǒ)們(men)肯努力,我(wǒ)們(men)一(yī)樣會成功。

…………………………………………………………

希望不久的(de)将來你也成為(wèi)嵌入式的(de)高(gāo)手。

嵌入式工程師的(de)職業發展路徑

從個人整體發展來說,如(rú)果想創業,做(zuò)自(zì)已的(de)産品,嵌入式軟件開發可(kě)以開發出專利産品。

另一(yī)個發展路徑是:積累豐富開發經驗的(de)嵌入式軟件開發工程師可(kě)以向嵌入式系統開發工程師發展,從而晉升為(wèi)産品研發經理(lǐ)或IT項目經理(lǐ)。對測試理(lǐ)論和(hé)方法有(yǒu)一(yī)定了解的(de)嵌入式軟件開發工程師還可(kě)以轉作嵌入式系統測試工程師,最終也可(kě)發展為(wèi)IT項目經理(lǐ)。

嵌入式工程師的(de)學(xué)習路線

嵌入式系統方向

嵌入式系統無疑是當前最熱門最有(yǒu)發展前途的(de)IT應用領域之一(yī)。嵌入式系統用在一(yī)些特定專用設備上,通常這些設備的(de)硬件資源(如(rú)處理(lǐ)器、存儲器等)非常有(yǒu)限,并且對成本很敏感,有(yǒu)時對實時響應要求很高(gāo)等。特别是随着消費家電的(de)智能化,嵌入式更顯重要。像我(wǒ)們(men)平常常見到的(de)手機(jī)、PDA、電子(zǐ)字典、可(kě)視(shì)電話、VCD/DVD/MP3 Player、數字相機(jī)(DC)、數字攝像機(jī)(DV)、U-Disk、機(jī)頂盒(Set Top Box)、高(gāo)清電視(shì)(HDTV)、遊戲機(jī)、智能玩具、交換機(jī)、路由器、數控設備或儀表、汽車電子(zǐ)、家電控制系統、醫療儀器、航天航空設備..等等都是典型的(de)嵌入式系統。

嵌入式系統是軟硬結合的(de)東西,搞嵌入式開發的(de)人有(yǒu)兩類。

一(yī)類是學(xué)電子(zǐ)工程、通信工程等偏硬件專業出身的(de)人,他們(men)主要是搞硬件設計,有(yǒu)時要開發一(yī)些與硬件關系最密切的(de)最底層軟件,如(rú)BootLoader、Board Support Package(像PC的(de)BIOS一(yī)樣,往下驅動硬件,往上支持操作系統),最初級的(de)硬件驅動程序等。他們(men)的(de)優勢是對硬件原理(lǐ)非常清楚,不足是他們(men)更擅長(cháng)定義各種硬件接口,但對複雜軟件系統往往力不從心(例如(rú)嵌入式操作系統原理(lǐ)和(hé)複雜應用軟件等)。

另一(yī)類是學(xué)軟件、計算機(jī)專業出身的(de)人,主要從事嵌入式操作系統和(hé)應用軟件的(de)開發。如(rú)果我(wǒ)們(men)學(xué)軟件的(de)人對硬件原理(lǐ)和(hé)接口有(yǒu)較好的(de)掌握,我(wǒ)們(men)完全也可(kě)寫BSP和(hé)硬件驅動程序。嵌入式硬件設計完後,各種功能就全靠軟件來實現了,嵌入式設備的(de)增值很大程度上取決于嵌入式軟件,這占了嵌入式系統的(de)最主要工作(目前有(yǒu)很多公司将硬件設計包給了專門的(de)硬件公司,稍複雜的(de)硬件都交給台灣或國(guó)外公司設計,國(guó)內(nèi)的(de)硬件設計力量很弱,很多嵌入式公司自(zì)己隻負責開發軟件,因為(wèi)公司都知道(dào),嵌入式産品的(de)差異很大程度在軟件上,在軟件方面是最有(yǒu)"花頭"可(kě)做(zuò)的(de)),所以我(wǒ)們(men)搞軟件的(de)人完全不用擔心我(wǒ)們(men)在嵌入式市(shì)場上的(de)用武之地(dì),越是智能設備越是複雜系統,軟件越起關鍵作用,而且這是目前的(de)趨勢。

有(yǒu)沒有(yǒu)嵌入式開發的(de)學(xué)習路線,越詳細越好

看方向

如(rú)果選擇嵌入式硬件開發,就不懂了

軟件開發的(de)話,分底層和(hé)應用層

我(wǒ)是從事wince驅動開發的(de)(快滿一(yī)年(nián)),

以wince為(wèi)例,底層就是boot、bsp修改、驅動開發這幾部分

學(xué)習路線:

1、買個開發闆

2、按照開發闆上的(de)例子(zǐ)玩玩,ARM彙編稍微能看懂,寫點簡單的(de)程序跑跑,對彙編有(yǒu)個大概的(de)了解,bootloader等等會多少涉及點彙編的(de)東西

然後就是開發闆上的(de)一(yī)些驅動玩玩。如(rú)果可(kě)以拿相似的(de)BSP移植到開發闆上就更好了,對BSP就有(yǒu)更多的(de)認識了,學(xué)完以上可(kě)能可(kě)以找到工作,在工作中進一(yī)步加深理(lǐ)解

如(rú)果是應用的(de)話,wince,我(wǒ)們(men)寫應用用的(de)是VS2005,VC++,和(hé)PC的(de)開發基本差不多

學(xué)完一(yī)個操作系統,切換到另一(yī)個平台相對而言還是蠻快的(de),基本都是相通的(de)

我(wǒ)之前的(de)經驗是,我(wǒ)買了開發闆玩了ADS程序寫了小型的(de)程序,就是把LED啊、液晶屏啊、等等驅起來,然後,在linux下玩驅動,寫了幾個簡單的(de)流驅動,去(qù)應聘,鬼使神差被招進去(qù)玩wince驅動了,感覺差得不是很多,玩了2周就開始上手,2個月之後,底層這塊就都扔給我(wǒ)了

以上,僅供參考(至于開發闆,如(rú)果是消費電子(zǐ)類的(de),好像三星的(de)S3C系列用的(de)人比較多,開發闆也很多,工業類的(de)就不懂了。至于選哪家開發闆廠家,百度google一(yī)下)

嵌入式軟件開發工程師路線的(de)介紹就聊到這裏吧(ba),感謝你花時間閱讀本站內(nèi)容,更多關于嵌入式軟件開發崗位、嵌入式軟件開發工程師路線的(de)信息别忘了在本站進行(xíng)查找喔。

掃碼二維碼