0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一位老嵌入式工程師的血淚史

工程師人生 ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師吳畏 ? 2018-06-22 15:20 ? 次閱讀

作為一名在嵌入式行業(yè)摸爬滾打許久的老鳥,回想自己的經(jīng)歷之路,那么漫長可又仿佛近在眼前。隨著學(xué)生的日益增多,偶爾之間,會(huì)想起自己曾經(jīng)的一個(gè)經(jīng)歷?!宋膬H獻(xiàn)給那些剛剛踏上硬件之路和還在徘徊的同學(xué)們,在此我簡要的記錄了我的學(xué)習(xí)經(jīng)歷和其間自己所獲的一些心得,以幫助初學(xué)者少走彎路。

我深知對于一個(gè)初學(xué)者來說,身邊有一個(gè)能手把手相授的老師該是多么幸福的事情,老師一句不經(jīng)意的話可能我們初學(xué)者要花上幾天甚至是幾個(gè)月的時(shí)間去思考和驗(yàn)證。遺憾的是,我們身邊并非總有這么一位老師。所幸的是而今網(wǎng)絡(luò)發(fā)達(dá),這致使我們不得不經(jīng)常求助于網(wǎng)絡(luò),網(wǎng)絡(luò)上豐富的個(gè)人經(jīng)驗(yàn)是非常值得借鑒的,我們能從一些文章中悟出一些東西,為我所用,或者從中感受精神動(dòng)力。

借此機(jī)會(huì)我想介紹一下我曾經(jīng)的工作團(tuán)隊(duì),因?yàn)樗麄儗ξ矣绊憳O大。團(tuán)隊(duì)有四個(gè)人,其一是擁有11年工作經(jīng)驗(yàn)且已擁有自己專利的高級工程師(我習(xí)慣叫他二導(dǎo),他是我為什么在團(tuán)隊(duì)的原因),一個(gè)是擁有5年經(jīng)驗(yàn)、熱心腸的工程師,還有兩個(gè)分別是電源視頻方面的專家和元老級人物。耳濡目染,自己漸漸的對硬件發(fā)生了濃厚的興趣。從單片機(jī),FPGA、SOPC硬件的搭建以及軟件編程,以及現(xiàn)在正在努力研究的ARM,我是憑著無限的熱情來做的。

但熱情不是唯一的原因,另一個(gè)原因是試驗(yàn)室提供了便捷的學(xué)習(xí)環(huán)境。這里有現(xiàn)成的winbond 51單片機(jī)、有偉福仿真器、advanced labtool 48uxp萬能編程器,一臺12萬的示波器,自己買了個(gè)萬能板。學(xué)習(xí)階段時(shí),找本書就能在上邊進(jìn)行試驗(yàn)了。從簡單的led閃爍、數(shù)碼管顯示、pwm到中斷、串口通信(單片機(jī)與單片機(jī)通信,單片機(jī)與pc通信)、I2Ceeprom讀寫、A/D轉(zhuǎn)換、溫度的測量等。當(dāng)時(shí)令我神魂顛倒的是每一個(gè)試驗(yàn)經(jīng)過資料的查找、程序的編寫以及調(diào)試、再到后來問題的解決,那份成就感與喜悅之情,相信只有經(jīng)歷過的人才能夠體會(huì)。正是有這份熱情和愛好,我常常在實(shí)驗(yàn)室呆上十二、三小時(shí),通常是晚飯?jiān)谑程贸粤撕笾苯拥津?yàn)室,晚上9點(diǎn)半回宿舍。雖說那時(shí)候沒有做過什么大項(xiàng)目,但是這每一個(gè)小小的實(shí)驗(yàn)都是我知識積累過程中的點(diǎn)滴,有了這積累,之后我才能涉足更大的項(xiàng)目。

剛進(jìn)實(shí)驗(yàn)室的時(shí)候,二導(dǎo)就給了我一塊開發(fā)版,是Altera公司的nios ep1c20 cyclone系列開發(fā)板,當(dāng)時(shí)是以大學(xué)計(jì)劃的名義買的,5000元人民幣。于是就開始了我的FPGA學(xué)習(xí)之路。之前學(xué)習(xí)過verilog,只停留在純粹的理論階段,編幾個(gè)小小的程序,用quartus-ii自帶的仿真軟件進(jìn)行一下仿真就ok了。

用仿真軟件進(jìn)行仿真,往往能夠得出你所想要的結(jié)果,但是一旦下載芯片里邊運(yùn)行,問題就會(huì)接踵而至。萬事開頭難,我做的第一個(gè)實(shí)驗(yàn)是點(diǎn)亮led,自己編寫程序(幾行而已)、編譯、引腳分配、仿真、然后就用jtag下載線連接開發(fā)板和pc,將sof文件下載到芯片?,F(xiàn)在想起來這是多么簡單的幾個(gè)步驟,但是對于當(dāng)時(shí)的我來說,花費(fèi)了相當(dāng)?shù)臅r(shí)間和精力來查找資料和埋頭反復(fù)實(shí)驗(yàn)。特別是引腳的分配,文檔上只說需要這么做,那為什么要這么做呢?當(dāng)時(shí)沒有過多的想法,只想看到實(shí)驗(yàn)的結(jié)果,有了結(jié)果我就有了無限的成就感和高漲的熱情,所以當(dāng)經(jīng)過努力,第一個(gè)FPGA實(shí)驗(yàn)里的led終于按照意圖動(dòng)作的時(shí)候,那種激動(dòng)與當(dāng)初學(xué)習(xí)單片機(jī)時(shí)得以實(shí)現(xiàn)led閃爍的情形如出一轍。

我做實(shí)驗(yàn)的一個(gè)慣例同時(shí)也是一個(gè)經(jīng)驗(yàn)就是邊做實(shí)驗(yàn)邊看書,在實(shí)驗(yàn)中發(fā)現(xiàn)問題,遇到不懂的問題或者原理在查找相關(guān)的文檔。我習(xí)慣動(dòng)手,如果讓我坐在實(shí)驗(yàn)室看上1天的純理論書籍,而不讓動(dòng)手試驗(yàn),我想我的腦袋肯定會(huì)爆炸,正因?yàn)闆]有這樣看過書,所以這腦袋也一直健在。到后來學(xué)習(xí)ucos嵌入式操作系統(tǒng)我也采用了這個(gè)方法,我把它叫做“階梯成就感”(實(shí)在是寫這篇文章的時(shí)候突然覺得這個(gè)詞語非常貼切,臨時(shí)杜撰的)。抱著這種熱情,后來一點(diǎn)一點(diǎn)地深入學(xué)習(xí)FPGA,一些常規(guī)邏輯電路的設(shè)計(jì),包括邏輯門電路、數(shù)據(jù)選擇器、編譯碼器、加減乘除運(yùn)算器、移位器,到后來的稍微復(fù)雜的電路設(shè)計(jì),如FIFO、數(shù)字跑表、頻率計(jì)、狀態(tài)機(jī)、交通等的控制、卡式電話計(jì)費(fèi)系統(tǒng)以及UART等。

這些試驗(yàn)當(dāng)時(shí)我都是采用的verilog語言實(shí)現(xiàn)的。初接觸FPGA時(shí)本想學(xué)VHDL,那時(shí)的同學(xué)都用verilog,為了與他們討論問題的方便,就改學(xué)verilog了。一學(xué)不打緊,慢慢發(fā)現(xiàn)自己深深地愛上了verilog,對于我來說,它無疑更適合我。這也是我要推薦的一個(gè)經(jīng)驗(yàn),那就是多看看你周圍的人用的是什么工具,他們用的工具往往不是你最喜歡的或者不是當(dāng)前最廣泛最流行的,但你若要和他們交流討論問題,那還是遷就一下,和別人所用工具一樣,交流起來也會(huì)順暢方便。到實(shí)驗(yàn)室后,因?yàn)閷?shí)驗(yàn)室的員工都用偉福的仿真器,所以軟件當(dāng)然還是用偉福提供的。偉福的軟件我認(rèn)為不怎么好,只支持匯編,比起大名鼎鼎的keil c51遜了一大截,但除非你想等到自己有問題不會(huì)的時(shí)候周邊竟沒有人幫助你,不然在前期還是選擇偉福的軟件方便溝通。再后來,經(jīng)過自己的摸索和向身邊的工程師們請教,偉福用很熟悉了,匯編也有了自己的一套,這時(shí)候我開始在偉福里邊嵌入keil,用c語言來寫程序,但調(diào)試的時(shí)候用偉福軟件還是有缺陷,比如不能夠單步執(zhí)行等。所以再后來我就下載了keil c51軟件,從此以后便正式地在keil的開發(fā)界面下寫程序了。當(dāng)然仿真的時(shí)候也可以在keil環(huán)境下用偉福仿真器,我想偉福在制造自己產(chǎn)品的時(shí)候就已經(jīng)考慮到這點(diǎn)了,他們的一些產(chǎn)品肯定要考慮兼容主流軟件keil的。用了keil C51后就不想用偉福編譯軟件了,同樣的用了c寫程序后,就不想用匯編了。但是匯編是每一個(gè)硬件研發(fā)工程師們必備的,匯編有c不可企及之處,但有時(shí)候還非用匯編不可。匯編的運(yùn)行效率高,寫起來很是煩瑣,煩瑣規(guī)煩瑣,在某些特定的時(shí)刻,匯編還是發(fā)揮了它不可替代的作用。比如在將usoc移植到單片機(jī)的時(shí)候,與處理器相關(guān)的程序還真是必須用匯編來完成的。

再后來,學(xué)習(xí)sopc。從最小系統(tǒng)硬件平臺的搭建,到簡單的led閃爍程序的編寫,到sof文件在芯片上跑起來,看著led的亮與滅,心中熱情澎湃。每一次接觸新知識都有一種發(fā)自內(nèi)心的激動(dòng),每一次接觸的新東西我都從最簡單的led閃爍開始,從單片機(jī)到FPGA到sopc再到ucos,每天一個(gè)小小的進(jìn)步能讓我燃起對工作的熱情,只要有這每天小小的看得見的“階梯成就感”,就能激發(fā)我對更多知識的追求。在此期間本人比較欣賞Altera公司推出的可編程片上系統(tǒng)即sopc,它解放了我們搭建硬件系統(tǒng)的煩瑣,僅僅需要按照需求在系統(tǒng)里邊加上自己的IP核和一些必須的外設(shè)。Altera公司或者其他的第三方公司已經(jīng)為我們提供了性能和功能很完善的IP核,我們所要做的只是將這些IP核加入到我們的系統(tǒng)里完成我們需要的功能。硬件系統(tǒng)完成后,需要在Altera公司提供的nios IDE環(huán)境下對硬件系統(tǒng)進(jìn)行軟件編程,在這里,完全用c語言來完成所需要的功能。與前邊學(xué)習(xí)單片機(jī)、FPGA一樣,第一個(gè)實(shí)驗(yàn)還是led閃爍,然后慢慢的轉(zhuǎn)向一些比較復(fù)雜的功能設(shè)計(jì)上去,也無非是實(shí)現(xiàn)以前用verilog實(shí)現(xiàn)過的一些功能。兩者的區(qū)別是:一種完全用verilog語言來實(shí)現(xiàn)全部功能;一種需要先用sopc builder搭建硬件系統(tǒng),然后在nios ide中進(jìn)行軟件的編程。這兩種方法都能夠?qū)崿F(xiàn)需要的功能,但是后者更方便快捷,因?yàn)樵谶@種方法里,我們使用的是“拿來主義”,IP核已經(jīng)實(shí)現(xiàn)了我們的功能,要做的僅僅是去利用它而已。

再后來學(xué)習(xí)ucos嵌入式操作系統(tǒng),主要是運(yùn)用在FPGA里面。nios已經(jīng)為使用者移植好了,不需要修改任何文件。在nios用戶界面里進(jìn)行一些相應(yīng)的設(shè)置就可以使用了。Altera公司為我們提供的模板里邊有幾個(gè)很好的例子,任務(wù)管理、信號量、郵箱傳遞、事件標(biāo)志、時(shí)間管理等提供了很好的模板,我們需要做的是認(rèn)真的閱讀,研究它,必要的話對模板進(jìn)行一些改寫來完成自己的功能,這是模仿的更高境界了,把他的一些東西進(jìn)行吸收轉(zhuǎn)化成為自己的東西,我想這是一個(gè)硬件愛好者和初學(xué)者非常樂于做的事情。

在進(jìn)行FPGA學(xué)習(xí)的時(shí)候,我遇到過問題停滯不前,試驗(yàn)沒有進(jìn)展,心情沮喪的時(shí)候。那時(shí)對底層硬件一無所知,連對基本的原理圖也看不太懂,更別說程序在開發(fā)板上是怎么運(yùn)行的了。再到后來進(jìn)行nios開發(fā)的時(shí)候,這種沮喪感與日俱增,每天感受不到一點(diǎn)進(jìn)步,真是很漫長難熬的日子。一次,我和辦公室的一個(gè)工程師聊天,談到了我的困惑,他建議我先學(xué)習(xí)單片機(jī),自己搭建硬件平臺,從最小系統(tǒng)做起。這個(gè)工程師古道熱腸,學(xué)習(xí)方面的問題他總是很耐心地幫助解答,讓我受益匪淺,我很慶幸能夠在這種環(huán)境當(dāng)中學(xué)習(xí)。還有我的導(dǎo)師,他是一個(gè)擁有近30年硬件開發(fā)經(jīng)驗(yàn)的資深研究員,開始工作的時(shí)候我什么都不懂,但總喜歡往導(dǎo)師辦公室跑,喜歡和他瞎聊。他為人和藹可親,容易接近,和他交流的時(shí)候總能得到一些職業(yè)和人生方面的忠告,這些忠告將伴隨著我一生。到后來,事情逐漸有了轉(zhuǎn)機(jī),我也慢慢適應(yīng)了這種心情,調(diào)整好了心態(tài)。現(xiàn)在想起來,慶幸自己并沒有絕望,沒有對自己熱愛的硬件失去信心。我想說的還是那句老話:遇到問題的時(shí)候,當(dāng)我們感覺事情沒法進(jìn)展下去的時(shí)候,不妨換一種方式,與周邊的人聊聊,或許會(huì)有改變?;蛟S這就是學(xué)習(xí)嵌入式中最大的困難吧!人生總是有很多坎坷,我們的學(xué)習(xí)職業(yè)生涯也是如此。正是因?yàn)槿绱耍覀兘?jīng)歷了風(fēng)雨,方能看見彩虹!如果你目前想學(xué)嵌入式確沒有方向,或者正處于學(xué)習(xí)中存在問題又不知道如何解決的話,這邊你可以私我,樓主這些年也有不少干貨,相信一定可以幫助你走向新的篇章。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18909

    瀏覽量

    300703
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1563

    瀏覽量

    68375
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式熱門領(lǐng)域有哪些?

    個(gè)備受關(guān)注的領(lǐng)域,已經(jīng)在汽車行業(yè)展現(xiàn)出革命性的影響。在自動(dòng)駕駛領(lǐng)域,嵌入式系統(tǒng)的重要性日益突出,它們被廣泛應(yīng)用于與傳感器和控制系統(tǒng)配合,實(shí)現(xiàn)車輛的自主運(yùn)行。自動(dòng)駕駛技術(shù)的急速發(fā)展為嵌入式系統(tǒng)
    發(fā)表于 07-16 09:23

    嵌入式軟件工程師如何提升自己?

    ,可以為自己的職業(yè)生涯打下堅(jiān)實(shí)的基礎(chǔ),并實(shí)現(xiàn)個(gè)人的職業(yè)目標(biāo)。愿每一位嵌入式軟件工程師都能在這個(gè)充滿挑戰(zhàn)和機(jī)遇的領(lǐng)域中取得成功!
    發(fā)表于 06-12 11:20

    從事嵌入式方向,定要軟硬件通吃?

    嵌入式系統(tǒng)開發(fā)領(lǐng)域,軟件和硬件的界限常常模糊不清。個(gè)常見的問題是,嵌入式軟件工程師是否需要了解硬件。本文將探討這問題的重要性,并分析
    的頭像 發(fā)表于 06-05 08:10 ?927次閱讀
    從事<b class='flag-5'>嵌入式</b>方向,<b class='flag-5'>一</b>定要軟硬件通吃?

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件
    發(fā)表于 05-16 11:00

    款適合嵌入式工程師使用的在線工具

    款適合嵌入式工程師使用的在線工具,工具有如下功能,如下圖所示: 1. 報(bào)文校驗(yàn)功能,如下圖所示 2. UDP服務(wù)端測試工具:該UDP服務(wù)端工具可以理解為 “UDP服務(wù)端” 或者 “服務(wù)器
    發(fā)表于 04-09 22:20

    一位硬件工程師的歷練之路:從入門學(xué)習(xí)理論到... #搞笑 #硬件工程師 #電子工程師 #揚(yáng)興科技

    硬件工程師揚(yáng)興科技
    揚(yáng)興科技
    發(fā)布于 :2024年03月13日 17:50:21

    嵌入式工程師需要掌握哪些技術(shù)?

    嵌入式工程師需要掌握哪些技術(shù)? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域中的重要組成部分,它們存在于我們生活的方方面面,從智能手機(jī)到汽車控制系統(tǒng),從家電到醫(yī)療設(shè)備。因此,對于那些想要進(jìn)入嵌入式行業(yè)的
    發(fā)表于 03-04 16:38

    嵌入式人工智能的就業(yè)方向有哪些?

    的發(fā)展方向有很多,門檻高低不樣。下面給大家列舉些相應(yīng)崗位所需具備的技能: 嵌入式Linux,C語言開發(fā)工程師,Linux軟件開發(fā)
    發(fā)表于 02-26 10:17

    嵌入式工程師的漲薪經(jīng)歷

    下面是一位嵌入式工程師的漲薪經(jīng)歷,希望可以幫助到你,幫到其他的在校學(xué)生。 ? 階段 1 大到大三這個(gè)階段我與大多數(shù)學(xué)生相同: ? 、學(xué)習(xí)
    的頭像 發(fā)表于 01-05 08:39 ?386次閱讀

    嵌入式軟件工程師常用的

    最近我換工作了,看見不同嵌入式軟件工程師用的平臺都不樣,所以我整理了下。PlatformIO:多平臺支持:PlatformIO支持多種嵌入式
    的頭像 發(fā)表于 12-24 08:00 ?591次閱讀
    <b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>工程師</b>常用的

    有沒有誰做過DSP、微型逆變器/微逆變/大型工業(yè)逆變器、嵌入式軟件的軟硬件高級工程師

    急需 DSP、微型逆變器/微逆變/大型工業(yè)逆變器、嵌入式軟件等豐富經(jīng)驗(yàn)的軟件高級工程師、硬件高級工程師,深圳,面議面議,自薦/推薦請聯(lián)系我。歡迎來詢zsrfwk@163.com
    發(fā)表于 12-14 17:32

    嵌入式硬件和軟件哪個(gè)好?

    嵌入式硬件和軟件哪個(gè)好? 嵌入式軟硬件工程師哪個(gè)更有前途呢?起來看看。 嵌入式是分為軟硬件工程師
    發(fā)表于 12-05 15:17

    嵌入式開發(fā)測試秘訣

    。 多年前,一位工程師為了對嵌入式擁有更深層次理解的追求,曾發(fā)出這樣的疑問:“我怎么才能知道并懂得我的系統(tǒng)到底在干些什么呢?”。同時(shí)代的嵌入式開發(fā)人員問得最多的問題大都圍繞“我怎么才能
    的頭像 發(fā)表于 11-24 16:18 ?462次閱讀

    中高級【嵌入式驅(qū)動(dòng)工程師】年薪50w內(nèi)可談

    中高級【嵌入式驅(qū)動(dòng)工程師】 年薪50w以內(nèi)可談 工作?地點(diǎn):北京市 了解更多 ?5年以上內(nèi)核驅(qū)動(dòng)開發(fā)經(jīng)驗(yàn) ??需要有國產(chǎn)化操作系統(tǒng)/芯片平臺的驅(qū)動(dòng)開發(fā)經(jīng)驗(yàn)(必須) 交換機(jī)/交換芯片驅(qū)動(dòng)開發(fā)經(jīng)驗(yàn)
    發(fā)表于 11-23 13:35

    如何成為名優(yōu)秀的嵌入式工程師?

    如何成為名優(yōu)秀的嵌入式工程師嵌入式學(xué)習(xí)的第步,首先是C語言。 1.理解內(nèi)存管理:C語言不同于高級語言,它不會(huì)自動(dòng)管理內(nèi)存。因此,你需
    發(fā)表于 11-07 15:36