一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

嵌入式工程師必須知道的事

時(shí)間:2025-10-17 10:15:29 小英 嵌入式培訓 我要投稿
  • 相關(guān)推薦

嵌入式工程師必須知道的事

  如果你是一個(gè)嵌入式開(kāi)發(fā)的學(xué)習者,那么就應該跟小編來(lái)看看以下這篇為即將進(jìn)入嵌入式開(kāi)發(fā)的工程師們詳細講述嵌入式的概念、嵌入式開(kāi)發(fā)之間的異同以及應該如何做出選擇。是一些經(jīng)驗之談,希望對大家有所幫助。

  嵌入式工程師必須知道的事

  一.工程師眼中的“嵌入式系統”

  在工程師看來(lái):著(zhù)重理解“嵌入”的概念,主要從三個(gè)方面來(lái)理解:

  1.從硬件上,將基于CPU的外圍器件,整合到CPU芯片內部,比如早期基于X86體系結構下的計算機,CPU只是有運算器和累加器的功能,一切芯片要靠外部橋路來(lái)擴展實(shí)現,象串口之類(lèi)的都是靠外部的16C550/2的串口控制器芯片實(shí)現。目前這種串口控制器芯片早已集成到CPU內部。還有PC機有顯卡,而多數嵌入式處理器都帶有LCD控制器,但某種意義上就相當于顯卡。比較高端的ARM類(lèi)IntelXscale架構下的IXP網(wǎng)絡(luò )處理器CPU內部集成PCI控制器(可配成支持4個(gè)PCI從設備或配成自身為CPI從設備);還集成3個(gè)NPE網(wǎng)絡(luò )處理器引擎,其中兩個(gè)對應于兩個(gè)MAC地址,可用于網(wǎng)關(guān)交換用,而另外一個(gè)NPE網(wǎng)絡(luò )處理器引擎支持DSL,只要外面再加個(gè)PHY芯片即可實(shí)現DSL上網(wǎng)功能。IXP系列最高主頻可以達到1.8G,支持2G內存,1G×10或10G×1的以太網(wǎng)口或Febrechannel的光通道。IXP系列應該是目標基于A(yíng)RM體系結構下由Intel進(jìn)行整合后成Xscale內核的最高的處理器了。

  2、從軟件上,就是在定制操作系統內核里將應用一并選入,編譯后將內核下載到ROM中。而在定制操作系統內核時(shí)所選擇的應用程序組件就是完成了軟件的“嵌入”,比如WinCE在內核定制時(shí),會(huì )有相應選擇,其中就是wordpad,PDF,MediaPlay等等選擇,如果我們選擇了,在CE啟動(dòng)后,就可以在界面中找到這些東西,如果是以前PC上的windows操作系統,多半的東西都需要我們得新再裝。

  3、把軟件內核或應用文件系統等東西燒到嵌入式系統硬件平臺中的ROM中就實(shí)現了一個(gè)真正的“嵌入”。以上的定義是我在6、7年前給嵌入式系統下自話(huà)側重于理解型的定義,書(shū)上的定義也有很多,但在這個(gè)領(lǐng)域范圍內,誰(shuí)都不敢說(shuō)自己的定義是十分確切的,包括那些專(zhuān)家學(xué)者們,因為畢竟嵌入式系統是計算機范疇下的一門(mén)綜合性學(xué)科。

  二.嵌入式系統的分層及對口專(zhuān)業(yè)要求

  嵌入式系統分為4層,硬件層、驅動(dòng)層、操作系統層和應用層。

  1.硬件層:是整個(gè)嵌入式系統的根本。如果現在單片機及接口這塊很熟悉,并且能用C和匯編語(yǔ)言來(lái)編程的話(huà),從嵌入式系統的硬件層走起來(lái)相對容易,硬件層也是驅動(dòng)層的基礎,一個(gè)優(yōu)秀的驅動(dòng)工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設計的,同時(shí)還要對操作系統內核及其調度有相當的熟悉。但硬件平臺是基礎,增值還要靠軟件。

  硬件層比較適合于電子、通信、自動(dòng)化、機電一體、信息工程類(lèi)專(zhuān)業(yè)的人來(lái)搞。需要掌握的專(zhuān)業(yè)基礎知識有:?jiǎn)纹瑱C原理及接口技術(shù)、微機原理及接口技術(shù)、C語(yǔ)言等。

  2.驅動(dòng)層:這部分相對而言比較難。驅動(dòng)工程師不僅要能看懂電路圖,還要能對操作系統內核十分的精通,以便其所寫(xiě)的驅動(dòng)程序在系統調用時(shí),不會(huì )獨占操作系統時(shí)間片,而導致其它任務(wù)不能運行。若不懂操作系統內核架構和實(shí)時(shí)調度性,沒(méi)有良好的驅動(dòng)編寫(xiě)風(fēng)格,按大多數書(shū)上所說(shuō)添加的驅動(dòng)的方式,這樣可能連個(gè)初級的驅動(dòng)工程師的水平都達不到,所寫(xiě)的驅動(dòng)在應用調用時(shí)就如同windows下我們打開(kāi)一個(gè)程序運行后,再打開(kāi)一個(gè)程序時(shí),要不就是中斷以前的程序,要不就是等上一會(huì )才能運行后來(lái)打開(kāi)的程序。想做個(gè)好的驅動(dòng)人員沒(méi)有三、四年功底,操作系統內核不研究上幾遍,不是太容易成功的,但其工資在嵌入式系統四層中是最高的。驅動(dòng)層比較適合于電子、通信、自動(dòng)化、機電一體、信息工程類(lèi)專(zhuān)業(yè)尤其是計算機偏體系結構類(lèi)專(zhuān)業(yè)的人來(lái)搞。當然除硬件層所具備的基礎學(xué)科外,還要對數據結構與算法、操作系統原理、編譯原理都要十分精通。

  3.操作系統層:對于操作系統層而言目前可能只能說(shuō)是簡(jiǎn)單的移植,而很少有人來(lái)自已寫(xiě)操作系統,或者寫(xiě)出缺胳膊少腿的操作系統來(lái),這部分工作大都由驅動(dòng)工程師來(lái)完成。操作系統是負責系統任務(wù)的調試、磁盤(pán)和文件的管理,而嵌入式系統的實(shí)時(shí)性十分重要。據說(shuō),XP操作系統是微軟投入300人用兩年時(shí)間才搞定的,總時(shí)工時(shí)是600人/年;中科院軟件所自己的女?huà)zHopen操作系統估計也得花幾百人/年才能搞定。因此這部分工作相對來(lái)講沒(méi)有太大意義。

  4.應用層:相對來(lái)講較為容易。如果會(huì )在windows下進(jìn)行編程接口函數調用,到操作系統下只是編譯和開(kāi)發(fā)環(huán)境有相應的變化而已。如果涉及Java方面的編程也是如此。嵌入式系統中涉及算法的由專(zhuān)業(yè)算法的人來(lái)處理,不必歸結到嵌入式系統范疇內。但如果涉及嵌入式系統下面的嵌入式數據庫、基于嵌入式系統的網(wǎng)絡(luò )編程和基于某些應用層面的協(xié)議應用開(kāi)發(fā)(比如基于SIP、H.323、Astrisk)方面,又較為復雜,并且有度了。

  三.目標與定位

  先有目標,再去定位。

  學(xué)ARM,從硬件上講,一方面就是學(xué)習接口電路設計,另一方面就是學(xué)習匯編和C語(yǔ)言的板級編程。從軟件上講,就是要學(xué)習基于A(yíng)RM處理器的操作系統層面的驅動(dòng)和移植。這些對于初學(xué)者來(lái)說(shuō)必須明確,要么從硬件著(zhù)手開(kāi)始學(xué),要么從操作系統的熟悉到應用開(kāi)始學(xué),但不管學(xué)什么,只要不是純的操作系統級以上基于A(yíng)PI的應用層的編程,硬件的寄存器類(lèi)的東西還是要能看懂的、基于板級的匯編和C編程還是要會(huì )的。因此針對于嵌入式系統的硬件層和驅動(dòng)層的人來(lái)說(shuō),ARM的接口電路設計、ARM的C語(yǔ)言和匯編語(yǔ)言編程及調試開(kāi)發(fā)環(huán)境還是需要掌握的。

  對于初學(xué)者必然要把握住方向,自己的目標是什么,自己要在哪一層面上走。然后再著(zhù)手學(xué)習才比較好,與ARM相關(guān)的嵌入式系統的較為實(shí)際的兩個(gè)層面硬件層和驅動(dòng)層,不管學(xué)好了那一層都會(huì )很有前途的。如果想從嵌入式系統的應用層面的走的話(huà),可能與ARM及其它體系相去較遠,要著(zhù)重研究基嵌入式操作系統的環(huán)境應用與相應開(kāi)發(fā)工具鏈,比如WinCE操作系統下的EVC應用開(kāi)發(fā)(與windows下的VC相類(lèi)似),如果想再有突破就往某些音視頻類(lèi)的協(xié)議上靠,比如VOIP領(lǐng)域的基于SIP或H.323協(xié)議的應用層開(kāi)發(fā),或是基于嵌入式網(wǎng)絡(luò )數據庫的開(kāi)發(fā)等等。

  對于初學(xué)者來(lái)講,要量力而行,不要認為驅動(dòng)層工資高就把它當成方向了,要結合自身特點(diǎn),嵌入式系統四個(gè)層面上無(wú)論哪個(gè)層面上來(lái)講都是有高人存在,當然高人也對應的高工資。我是做硬件層的,以前每月工資中個(gè)人所得稅要被扣上近3千大元。當然我一方面充當工程師的角色,一方面充當主管人物的角色,兩個(gè)職位我一個(gè)人干,但上班時(shí)間就那些。硬件這方面上可能與我PK的人很少了,才讓我拿到那么多的工資。

  四.如何選擇合適的開(kāi)發(fā)系統

  很多ARM初學(xué)者都希望有一套自己能用的系統,但他們往往會(huì )產(chǎn)生一種錯誤認識,就是認為處理器版本越高越好,性能越高越好,就象很多人認為ARM9比ARM7好,我想對于初學(xué)者在此方面以此入門(mén)還應該理智,開(kāi)發(fā)系統的選擇最終要看自己往嵌入式系統的哪個(gè)方向上走,是做驅動(dòng)開(kāi)發(fā)還是應用,還是做嵌入式系統硬件層設計與板級測試。如果想從操作系統層面或應用層面上走,不管是驅動(dòng)還是應用,當然處理器性能越高越好了,但這個(gè)東西自學(xué),有十分大的困難,不是幾個(gè)月或半年或是一年二年能搞定的事。

  在某種意義上講,ARM7與ARM9的差別就是在某些功能指令集上豐富了些,主頻提高一些而已,就比如286和386。對于用戶(hù)來(lái)講可能覺(jué)察不到什么,只能是感覺(jué)速度有些快而已。

  ARM7比較適合于那些想從硬件層面上走的人,因為ARM7系列處理器內部帶MMU的很少,而且比較好控制。就比如S3C44B0來(lái)講,可以很容易將Cache關(guān)了,而且內部接口寄存器很容易看明白,各種接口對于用硬件程序控制或AXD單步命令行指令都可以控制起來(lái);51單片機的思想很容易搞懂,就當成個(gè)32位的單片機,從而消除很多51工程師想轉為嵌入式系統硬件ARM開(kāi)發(fā)工程師的困惑,從而不會(huì )被業(yè)界某些不是真正懂嵌入式爛公司帶到操作系統層面上去,讓他們望而生畏,讓業(yè)界更加缺少這方面的人才。

  而嵌入式系統不管硬件設計還是軟件驅動(dòng)方面都是十分注重接口這部分的,選擇平臺還要考察一個(gè)處理器的外部資源,你接觸外部資源越多,越熟悉他們,以后就業(yè)成功的機率就越高,這就是招聘時(shí)所說(shuō)的有無(wú)“相關(guān)技能”,因為一個(gè)人不可能在短短幾年內把所有的處理器都接觸一遍,而招聘單位所用的處理器就可能是我們完全沒(méi)有見(jiàn)過(guò)的,就拿臺灣數十家小公司(市價(jià)幾千萬(wàn))的公司生產(chǎn)的ARM類(lèi)處理器,也很好用,但這些東西通用性太差,用這些處理器的公司就只能招有相關(guān)工作經(jīng)驗的人了,那什么是相關(guān)工作經(jīng)驗,在硬件上講的是外圍接口設計,在軟件上講是操作系統方面相關(guān)接口驅動(dòng)及應用開(kāi)發(fā)經(jīng)驗。我從業(yè)近十年,2000年ARM出現,我一開(kāi)始做ARM7,然后直接跑到了Xscale(這個(gè)板本在A(yíng)RM10-11之間),一做就是五年,招人面試都不下數百人,在這些方面還是深有體會(huì )的。

  我個(gè)人認為三星的S3C44b0對初學(xué)者來(lái)說(shuō)比較合適,為什么這么說(shuō)?因為接口資源比較豐富,技術(shù)成熟,資料較多,應該十分適合于初學(xué)者。有問(wèn)題可能很容易找人幫且解決,因為大多數人都很熟悉,就如同51類(lèi)的單片機,有N多位專(zhuān)家級的人物可以給你幫忙,相關(guān)問(wèn)題得以很快解答,所然業(yè)界認為這款ARM都用得爛了,但對于初學(xué)者來(lái),卻是件好事。

  總的來(lái)說(shuō),開(kāi)發(fā)系統的選擇,要看自己的未來(lái)從業(yè)目標方向,要看開(kāi)發(fā)板接口資源,還要看業(yè)界的通用性。

  五.成為高級嵌入式系統硬件工程師要具備的技能

  對于硬件來(lái)講有幾個(gè)方向,就單純信號來(lái)分為數字和模擬。模擬比較難搞,一般需要很長(cháng)的經(jīng)驗積累,單單一個(gè)阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著(zhù)技術(shù)的發(fā)展,出現了模擬電路數字化。比如手機的Modem射頻模塊,都采用成熟的套片,而當年國際上只有兩家公司有此技術(shù),自我感覺(jué)模擬功能不太強的人,不太適合搞這個(gè),如果真能搞定到手機的射頻模塊,只要達到一般程度可能月薪都在15K以上。

  另一類(lèi)就是數字部分了,在大方向上又可分為51/ARM的單片機類(lèi),DSP類(lèi),FPGA類(lèi)。國內FPGA的工程師大多是在IC設計公司從事IP核的前端驗證,這部分不搞到門(mén)級,前途不太明朗,即使做個(gè)IC前端驗證工程師,也要搞上幾年才能勝任。DSP硬件接口比較定型,如果不向驅動(dòng)或是算法上靠攏,前途也不會(huì )太大。而ARM單片機類(lèi)的內容就較多,業(yè)界產(chǎn)品占用量大,應用人群廣,因此就業(yè)空間極大。而硬件設計最體現水平和水準的就是接口設計這塊,這是各個(gè)高級硬件工程師相互PK、判定水平高低的依據。而接口設計這塊最關(guān)鍵的是看時(shí)序,而不是簡(jiǎn)單的連接,比如PXA255處理器I2C要求速度在100Kbps,如果把一個(gè)I2C外圍器件,最高還達不到100kbps的與它相接,必然要導致設計的失敗。這樣的情況有很多,比如51單片機可以在總線(xiàn)接LCD,但為什么這種LCD就不能掛在A(yíng)RM的總線(xiàn)上,還有ARM7總線(xiàn)上可以外接Winband的SD卡控制器,但為什么這種控制器接不到ARM9或是Xscale處理器上,這些都是問(wèn)題。因此接口并不是一種簡(jiǎn)單的連接,要看時(shí)序,要看參數。一個(gè)優(yōu)秀的硬件工程師應該能夠在沒(méi)有參考方案的前提下設計出一個(gè)在成本和性能上更加優(yōu)秀的產(chǎn)品,靠現有的方案,也要進(jìn)行適當的可行性裁剪,但不是胡亂的來(lái),我遇到一個(gè)工程師把方案中的5V變1.8V的DC芯片,直接更換成LDO,有時(shí)就會(huì )把CPU燒上幾個(gè)。前幾天還有人希望我幫忙把他們以前基于PXA255平臺的手持GPS設備做下程序優(yōu)化,我問(wèn)了一下情況,地圖是存在SD卡中的,而SD卡與PXA255的MMC控制器間采用的SPI接口,因此導致地圖讀取速度十分的慢,這種情況是設計中嚴重的缺陷,而不是程序的問(wèn)題。因此我提了幾條建議,讓他們更新試下再說(shuō)。

  因此想成為一個(gè)優(yōu)秀的工程師,需要對系統整體性的把握和對已有電路的理解,換句話(huà)說(shuō),給你一套電路圖你能看明白多少,看不明白80%以上的話(huà),說(shuō)明你離優(yōu)秀的工程師還差得遠。其次是電路的調試能力和審圖能力,但最最基本的能力還是原理圖設計、PCB繪制、邏輯設計這塊。這是指的硬件設計工程師,從上面的硬件設計工程師中還可以分出ECAD工程師,就是專(zhuān)業(yè)的畫(huà)PCB板的工程師,和EMC設計工程師,幫人家解決EMC的問(wèn)題。硬件工程師再往上就是板級測試工程師,就是C語(yǔ)言功底很好的硬件工程師,在電路板調試過(guò)程中能通過(guò)自已編寫(xiě)的測試程序對硬件功能進(jìn)行驗證。然后再交給基于操作系統級的驅動(dòng)開(kāi)發(fā)人員?傊,硬件的內容很多很雜,硬件哪方面練成了都會(huì )成為一個(gè)高手,我時(shí)常會(huì )給人家做下方案評估,很多高級硬件工程師設計的東西,經(jīng)常被我一句話(huà)否定。因此工程師做到我這種地步,也會(huì )得罪些人,但硬件的確會(huì )有很多不為人知的東西,讓很多高級硬件工程師也摸不到頭腦。

  那么高級硬件工程師技術(shù)技能都要具備哪些?首先要掌握EDA設計的輔助工具類(lèi)如ProtelORCADPowperPCBMaplux2ISE、VDHL語(yǔ)言,要能用到這些工具畫(huà)圖畫(huà)板做邏輯設計,再有就是接口設計審圖能力,再者就是調試能力,如果能走到總體方案設計這塊,那就基本上快成為資深工程師了。

  深入了解各種器件特性,選擇最合適的處理器、外圍器件、操作系統和軟件庫,盡可能地優(yōu)化軟件設計,最貼切地滿(mǎn)足應用需求,以獲得最好的系統性?xún)r(jià)比,是嵌入式系統設計開(kāi)發(fā)的精髓。

  硬件是要靠經(jīng)驗,也要靠積累的,十年磨一劍,百年磨一針。

  不過(guò)最后提醒大家:追求技術(shù)不是人生的唯一目的,切不可把它當成喜悅的唯一源泉,平時(shí)身邊有很多美好的事物都值得用心去珍惜。呵呵,我已經(jīng)在擔心自己的智力是否會(huì )在30歲到來(lái)之前枯竭了.好好珍惜短暫的大學(xué)生活,好好珍惜自己的青春,不要整天呆在實(shí)驗室,左手鍵盤(pán)右手烙鐵的。

  學(xué)習嵌入式的步驟

  (一)基礎準備

  明確學(xué)習方向為L(cháng)inux方向,熟悉嵌入式Linux系統操作平臺。搞清楚系統的安裝和使用方法,避免影響學(xué)習效率。對于零基礎小白來(lái)說(shuō),熟悉嵌入式Linux系統操作平臺至關(guān)重要?梢赃x擇在自己的電腦上直接安裝Linux系統,也可以使用虛擬機或遠程服務(wù)器進(jìn)行練習。通過(guò)實(shí)際操作,逐漸熟悉Linux的基本命令行操作、文件和目錄管理以及權限設置等功能,為后續的嵌入式學(xué)習打下堅實(shí)的基礎。

  (二)逐步深入學(xué)習

  掌握Linux基本操作

  學(xué)習使用命令行、管理文件和目錄、設置權限和用戶(hù)等操作。Linux的命令行是其強大之處,通過(guò)命令可以快速執行各種任務(wù)。管理文件和目錄能夠讓開(kāi)發(fā)者高效地組織和查找項目文件。設置權限和用戶(hù)則可以保證系統的安全性和穩定性,不同的用戶(hù)可以擁有不同的權限,防止誤操作和數據泄露。

  學(xué)習C語(yǔ)言基礎

  C語(yǔ)言是嵌入式開(kāi)發(fā)的基石,可直接操作底層資源,也是很多操作系統和庫的實(shí)現語(yǔ)言。C語(yǔ)言接近硬件,能夠直接操作內存和寄存器等底層資源,在嵌入式開(kāi)發(fā)中起著(zhù)至關(guān)重要的作用。同時(shí),很多操作系統和庫也是用C語(yǔ)言實(shí)現的。

  了解數據結構

  數據結構用于組織和存儲數據,不同結構有不同特點(diǎn)。數據結構是嵌入式開(kāi)發(fā)中提高程序效率和可讀性的重要手段。不同的數據結構有不同的特點(diǎn)和適用場(chǎng)景,需要根據實(shí)際情況進(jìn)行選擇。

  邁入系統編程

  涉及文件編程、進(jìn)程控制、多線(xiàn)程編程和網(wǎng)絡(luò )編程。系統編程在嵌入式開(kāi)發(fā)中涉及文件編程、進(jìn)程控制、多線(xiàn)程編程和網(wǎng)絡(luò )編程等內容,需要理解操作系統的原理和機制,如文件系統、進(jìn)程狀態(tài)、線(xiàn)程同步、套接字通信等。

  入門(mén)單片機

  51單片機適合初學(xué)者,了解硬件原理和操作方法。51單片機對硬件知識要求不高,是入門(mén)的首選。學(xué)習51單片機可以了解硬件的基本原理和操作方法,如如何連接電源、如何配置引腳、如何編寫(xiě)驅動(dòng)程序等。

  深入學(xué)習STM32

  基于A(yíng)RM架構的32位單片機,性能更強。STM32是一種基于A(yíng)RM架構的32位單片機,性能比51單片機更強大。它有很多種類(lèi)和型號,可以滿(mǎn)足不同的需求和場(chǎng)景。

  進(jìn)階ARMCortexA

  主流處理器架構,可運行Linux操作系統。ARMCortexA系列是當前主流的處理器架構,可運行Linux操作系統,支持多任務(wù)和多線(xiàn)程。

【嵌入式工程師必須知道的事】相關(guān)文章:

留學(xué)韓國前必須知道的事09-10

關(guān)于游戲設計你必須知道的事05-07

留學(xué)愛(ài)爾蘭前你必須知道的事07-14

孩子想學(xué)好舞蹈必須知道的事10-23

日本留學(xué)五個(gè)必須要知道的事10-22

幼兒家長(cháng)必須知道的33件事05-27

日本留學(xué)租房你必須知道的事06-07

2017考研調劑你必須知道的那些事09-14

赴英國留學(xué)哪些事必須要知道05-23

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看