嵌入式軟件開(kāi)發(fā)工程師路線(嵌入式軟件工程師主要做什么)
本篇文章給大家談?wù)勄度胧杰浖_(kāi)發(fā)工程師路線,以及嵌入式軟件工程師主要做什么對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
嵌入式工程師的學(xué)習(xí)路線是什么?
關(guān)于這個(gè)方向,我認(rèn)為大概分3個(gè)階段:
1、嵌入式linux上層應(yīng)用,包括QT的GUI開(kāi)發(fā)
2、嵌入式linux系統(tǒng)開(kāi)發(fā)
3、嵌入式linux驅(qū)動(dòng)開(kāi)發(fā)
嵌入式目前主要面向的幾個(gè)操作系統(tǒng)是,LINUX,WINCE、VxWorks等等
Linux是開(kāi)源免費(fèi)的,而且其源代碼是開(kāi)放的,更加適合我們學(xué)習(xí)嵌入式。
所以你可以嘗試以下路線:
(1) C語(yǔ)言是所有編程語(yǔ)言中的強(qiáng)者,單片機(jī)、DSP、類似ARM的種種芯片的編程都可以用C語(yǔ)言搞定),因此必須非常熟練的掌握。
推薦書(shū)籍:《The C Programming Language》 這本經(jīng)典的教材是老外寫的,也有中譯版本。
(2) 操作系統(tǒng)原理,是必需的,如果你是計(jì)算機(jī)專業(yè)畢業(yè)那也就無(wú)所謂了,如果是非計(jì)算機(jī)專業(yè)的就必須找一本比較淺顯的計(jì)算機(jī)原理書(shū)籍看一看,把啥叫“進(jìn)程”“線程”“系統(tǒng)調(diào)度”等等基本問(wèn)題搞清楚。
(3)Linux操作系統(tǒng)就是用C語(yǔ)言編寫的,所以你也應(yīng)該先學(xué)習(xí)下Linux方面的編程,只有你會(huì)應(yīng)用了,才能近一步去了解其內(nèi)核的精髓。
推薦書(shū)籍:《UNIX環(huán)境高級(jí)編程》(第2版)
(4) 了解ARM的架構(gòu),原理,以及其匯編指令,我們?cè)谇度胧介_(kāi)發(fā)中,一般很少去寫匯編,但是最起碼的要求是能夠看懂a(chǎn)rm匯編。
(5) 系統(tǒng)移植的時(shí)候,就需要你從最下層的bootloader開(kāi)始,然后內(nèi)核移植,文件系統(tǒng)移植等。而移植這部分對(duì)硬件的依賴是非常大的,其配置步驟也相對(duì)復(fù)雜,也沒(méi)有太多詳細(xì)資料。
(6) 驅(qū)動(dòng)開(kāi)發(fā)
linux驅(qū)動(dòng)程序設(shè)計(jì)既是個(gè)極富有挑戰(zhàn)性的領(lǐng)域,又是一個(gè)博大精深的內(nèi)容。
linux驅(qū)動(dòng)程序設(shè)計(jì)本質(zhì)是屬于linux內(nèi)核編程范疇的,因而是對(duì)linux內(nèi)核和內(nèi)核編程是有要求的。在學(xué)習(xí)前你要想了解linux內(nèi)核的組成,因?yàn)槊恳徊糠忠敿?xì)研究的話足夠可以擴(kuò)展成一本厚書(shū)。
以上只不過(guò)是大概的框架,在實(shí)際的開(kāi)發(fā)中還會(huì)涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說(shuō)學(xué)習(xí)嵌入式的周期較長(zhǎng),門檻較高,自學(xué)的話更是需要較強(qiáng)的學(xué)習(xí)能力和專業(yè)功底。只要能堅(jiān)持下來(lái)一定會(huì)取得成功!
…………………………………………
嵌入式非常難,看書(shū)的話比較晦澀難懂,不容易入門,我個(gè)人比較偏向于看視頻教程,因?yàn)橛欣蠋煄е容^容易入門。給看看一篇文章是關(guān)于一位專科生怎么自學(xué)嵌入式的。
做個(gè)自我介紹,我07年考上一所很爛??泼褶k的學(xué)校,學(xué)的是生物專業(yè),具體的學(xué)校名稱我就不說(shuō)出來(lái)獻(xiàn)丑了。09年我就輟學(xué)了,我在那樣的學(xué)校,一年學(xué)費(fèi)要1萬(wàn)多,但是根本沒(méi)有人學(xué)習(xí),我實(shí)在看不到希望,我就退學(xué)了。
退學(xué)后我也迷茫,大專都沒(méi)有畢業(yè),我真的不知道我能干什么,我在糾結(jié)著我能做什么。所以輟學(xué)后我一段時(shí)間,我想去找工作,因?yàn)槲冶容^沉默寡言,不是很會(huì)說(shuō)話,我不適合去應(yīng)聘做業(yè)務(wù)。我想應(yīng)聘做技術(shù)的,可是處處碰壁。
一次偶然的機(jī)會(huì),我才聽(tīng)到嵌入式這個(gè)行業(yè)。那天我去新華書(shū)店,在計(jì)算機(jī)分類那邊想找本書(shū)學(xué)習(xí)。后來(lái)有個(gè)女孩子走過(guò)來(lái),問(wèn)我是不是讀計(jì)算機(jī)的,有沒(méi)有興趣學(xué)習(xí)嵌入式,然后給我介紹了一下嵌入式現(xiàn)在的火熱情況,告訴我學(xué)嵌入式多么的有前景,給我了一份傳單,嵌入式培訓(xùn)的廣告。聽(tīng)了她的介紹,我心里癢癢的,確實(shí)我很想去學(xué)會(huì)一門自己的技術(shù),靠自己的雙手吃飯。
回家后,我就上網(wǎng)查了下嵌入式,確實(shí)是當(dāng)今比較熱門的行業(yè),也是比較好找工作的,工資也是相對(duì)比較高。我就下決心想學(xué)嵌入式了。于是我去找嵌入式培訓(xùn)的相關(guān)信息,說(shuō)真的,我也很迷茫,我不知道培訓(xùn)是否真的能像他們宣傳的那樣好,所以我就想了解一段時(shí)間再做打算。
后來(lái),我在百度知道看到一篇讓我很鼓舞的文章,是一個(gè)嵌入式高手介紹沒(méi)有基礎(chǔ)的朋友怎么自學(xué)入門學(xué)嵌入式,文章寫的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí)。他提到一個(gè)方法就是看視頻,因?yàn)榭磿?shū)實(shí)在太枯燥和費(fèi)解的,很多我們也看不懂。這點(diǎn)我真的很認(rèn)同,我自己看書(shū)往往看不了幾頁(yè)。
我在想,為什么別人都能自學(xué)成才,我也可以的!我要相信自己,所以我就想自學(xué),如果實(shí)在學(xué)不會(huì)我再去培訓(xùn)。
主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個(gè)能夠告訴我該怎么學(xué)的視頻,一套從入門到精通的視頻,一個(gè)比較完整的資料,最好能有老師教,不懂可以請(qǐng)教的。
后來(lái)我又找到一份很好的視頻,是在IT學(xué)習(xí)聯(lián)盟網(wǎng)站推出的一份視頻《零基礎(chǔ)嵌入式就業(yè)班》(喜歡《零基礎(chǔ)嵌入式就業(yè)班》的可以復(fù)制 sina.lt/qKh 粘貼瀏覽器按回車鍵即打開(kāi))。里面的教程還不錯(cuò),很完整,可以讓我從基礎(chǔ)的開(kāi)始學(xué)起。視頻比較便宜。
下面介紹下我的學(xué)習(xí)流程,希望對(duì)和我一樣完全沒(méi)有基礎(chǔ)的朋友有所幫助。
收到他們寄過(guò)來(lái)的光盤后,我就開(kāi)始學(xué)習(xí)了,由于我沒(méi)有什么基礎(chǔ),我就從最簡(jiǎn)單的C語(yǔ)言視頻教程學(xué)起,話說(shuō)簡(jiǎn)單,其實(shí)我還是很多不懂的,我只好請(qǐng)教他們,他們還是很熱心的,都幫我解決了。C語(yǔ)言我差不多學(xué)了一個(gè)禮拜,接下來(lái)我就學(xué)了linux的基本命令,我在他們提供linux虛擬機(jī)上都有做練習(xí),敲linux的基本命令,寫簡(jiǎn)單的C語(yǔ)言代碼,差不多也就三個(gè)禮拜。我每天都在不停的寫一些簡(jiǎn)單的代碼,這樣一月后我基本掌握了C和linux的基本操作。
接下來(lái)我就去學(xué)習(xí)了人家的視頻的培訓(xùn)教程,是整套的,和去參加培訓(xùn)沒(méi)有多大的區(qū)別,這一看就是兩個(gè)月,學(xué)習(xí)了ARM的基本原理,學(xué)習(xí)嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對(duì)linux也有更深層次的理解了,明白了嵌入式應(yīng)用到底是怎么做的,但是驅(qū)動(dòng)我只是有一點(diǎn)點(diǎn)的了解,這個(gè)相對(duì)難一點(diǎn),我想以后再慢慢啃。
這兩個(gè)月,除了吃飯睡覺(jué),我?guī)缀醵荚趯W(xué)習(xí)。因?yàn)槲抑缼缀鯖](méi)有基礎(chǔ),比別人差勁,我只能堅(jiān)持努力著,我不能放棄,我必要要靠自己來(lái)養(yǎng)活自己,必須學(xué)好這門技術(shù),然后我就把不懂的問(wèn)題總結(jié)記下來(lái),這樣慢慢積累了一段時(shí)間,我發(fā)現(xiàn)自己真的有點(diǎn)入門了。
最后的一個(gè)月,我就去看關(guān)于實(shí)踐部分的內(nèi)容,了解嵌入式項(xiàng)目具體的開(kāi)發(fā)流程,需要什么樣的知識(shí),我就開(kāi)始準(zhǔn)備這方面的知識(shí),也就是學(xué)習(xí)這方面的視頻,同時(shí)他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準(zhǔn)備。我就到網(wǎng)上找了很多嵌入式的題目,把他們理解的記下來(lái),這樣差不多準(zhǔn)備了20天左右
我覺(jué)得自己差不多入門了,會(huì)做一些簡(jiǎn)單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡(jiǎn)歷,因?yàn)槲覍W(xué)歷的問(wèn)題,??茮](méi)有畢業(yè),說(shuō)真的,大公司沒(méi)有人會(huì)要我,所以我投的都是民營(yíng)的小公司,我希望自己的努力有所回報(bào)。沒(méi)有想過(guò)幾天過(guò)后,就有面試了,但是第一次面試我失敗了,雖然我自認(rèn)為筆試很好,因?yàn)槲抑白隽藴?zhǔn)備,但是他們的要求比較嚴(yán)格,需要有一年的項(xiàng)目經(jīng)驗(yàn),所以我沒(méi)有被選中。
后來(lái)陸續(xù)面試了幾家公司,終于功夫不負(fù)有心人。我終于面試上的,是在閔行的一家民營(yíng)的企業(yè),公司規(guī)模比較小,我的職務(wù)是嵌入式linux應(yīng)用開(kāi)發(fā),做安防產(chǎn)品的應(yīng)用的。我想我也比較幸運(yùn),經(jīng)理很看重我的努力,就決定錄用我,開(kāi)的工資是3500一個(gè)月,雖然我知道在上海3500只能過(guò)溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養(yǎng),我自己也能養(yǎng)活自己的。我想只要我繼續(xù)努力,我工資一定會(huì)翻倍的。
把本文寫出來(lái),希望能讓和我一樣的沒(méi)有基礎(chǔ)的朋友有信心,其實(shí)我們沒(méi)有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會(huì)成功。
…………………………………………………………
希望不久的將來(lái)你也成為嵌入式的高手。
嵌入式軟件工程師主要做什么工作?
嵌入式軟件工程師平時(shí)的工作就是負(fù)責(zé)嵌入式軟件系統(tǒng)的規(guī)劃、設(shè)計(jì)、編碼、測(cè)試等工作。
嵌入式分為操作系統(tǒng)和硬件兩個(gè)方面,就業(yè)的方向更廣、更深,就業(yè)機(jī)會(huì)和入職待遇比普通軟件工程師好。開(kāi)發(fā)一些與硬件關(guān)系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅(qū)動(dòng)硬件,往上支持操作系統(tǒng)),最初級(jí)的硬件驅(qū)動(dòng)程序等。
要求技能和發(fā)展方向
嵌入式工程師需要具有C語(yǔ)言或C++語(yǔ)言、匯編語(yǔ)言、操作系統(tǒng)等基礎(chǔ);熟悉模擬電子技術(shù)和數(shù)字電子技術(shù)等硬件知識(shí);了解處理器體系結(jié)構(gòu)。
積累豐富開(kāi)發(fā)經(jīng)驗(yàn)的嵌入式軟件開(kāi)發(fā)工程師可以向嵌入式系統(tǒng)開(kāi)發(fā)工程師發(fā)展,從而晉升為產(chǎn)品研發(fā)經(jīng)理或IT項(xiàng)目經(jīng)理。
對(duì)測(cè)試?yán)碚摵头椒ㄓ幸欢私獾那度胧杰浖_(kāi)發(fā)工程師還可以轉(zhuǎn)作嵌入式系統(tǒng)測(cè)試工程師,最終也可發(fā)展為IT項(xiàng)目經(jīng)理。如果想創(chuàng)業(yè),做自已的產(chǎn)品,嵌入式軟件開(kāi)發(fā)可以開(kāi)發(fā)出專利產(chǎn)品。
嵌入式工程師的職業(yè)發(fā)展路徑
從個(gè)人整體發(fā)展來(lái)說(shuō),如果想創(chuàng)業(yè),做自已的產(chǎn)品,嵌入式軟件開(kāi)發(fā)可以開(kāi)發(fā)出專利產(chǎn)品。
另一個(gè)發(fā)展路徑是:積累豐富開(kāi)發(fā)經(jīng)驗(yàn)的嵌入式軟件開(kāi)發(fā)工程師可以向嵌入式系統(tǒng)開(kāi)發(fā)工程師發(fā)展,從而晉升為產(chǎn)品研發(fā)經(jīng)理或IT項(xiàng)目經(jīng)理。對(duì)測(cè)試?yán)碚摵头椒ㄓ幸欢私獾那度胧杰浖_(kāi)發(fā)工程師還可以轉(zhuǎn)作嵌入式系統(tǒng)測(cè)試工程師,最終也可發(fā)展為IT項(xiàng)目經(jīng)理。
嵌入式軟件工程師需要學(xué)什么?
嵌入式軟件工程師需要具備簡(jiǎn)單的硬件電路設(shè)計(jì)能力。
需要懂得C語(yǔ)言和一些簡(jiǎn)單的匯編語(yǔ)言編程;能夠閱讀一般嵌入式系統(tǒng)的原理圖;至少熟悉一種嵌入式系統(tǒng)的軟件開(kāi)發(fā)環(huán)境;熟悉一種嵌入式系統(tǒng)軟件的開(kāi)發(fā)過(guò)程;必要硬件基礎(chǔ)知識(shí);理解常見(jiàn)的嵌入式操作系統(tǒng)的工作原理。
需要懂得:(1)懂得C語(yǔ)言和一些簡(jiǎn)單的匯編語(yǔ)言編程。
(2)能夠閱讀一般嵌入式系統(tǒng)的原理圖。
(3)至少熟悉一種嵌入式系統(tǒng)的軟件開(kāi)發(fā)環(huán)境。
(4)熟悉一種嵌入式系統(tǒng)軟件的開(kāi)發(fā)過(guò)程,如:?jiǎn)纹瑱C(jī)系統(tǒng)、DSP系統(tǒng)、ARM系統(tǒng)或其它的一些潛入式系統(tǒng)。
(5)理解常見(jiàn)的嵌入式操作系統(tǒng)的工作原理,理解線程、進(jìn)程、信號(hào)量、消息機(jī)制、同步與互拆、并發(fā)控制等軟件編程時(shí)用到的概念。
(6)必要硬件基礎(chǔ)知識(shí)。
嵌入式軟件開(kāi)發(fā)工程師路線的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于嵌入式軟件工程師主要做什么、嵌入式軟件開(kāi)發(fā)工程師路線的信息別忘了在本站進(jìn)行查找喔。