欧美日韩国产一区二区三区播放-欧美日韩国产一区二区三区-欧美日韩国产一区二区-欧美日韩国产一区-bl双性高h-bl双性调教

低溫18650 3500
無磁低溫18650 2200
過針刺低溫18650 2200
低溫磷酸3.2V 20Ah
23年專注鋰電池定制

嵌入式技術開發(fā)總結及思考

鉅大LARGE  |  點擊量:840次  |  2020年02月12日  

從事嵌入式開發(fā)一年了,有些感想跟大家談談。可能很多朋友會像我當初一樣,為前途而煩惱,為不知道儲備什么知識而苦惱,所以寫點東西給這些朋友們提供參考。另外,也可鞭策自己,讓自己看到自己的不足,認清以后的發(fā)展方向。


首先IT是一個需要不斷學習的行業(yè),沒有任何一個行業(yè)像我們這樣需要不斷地接觸新東西,學習新知識,如同《學計算機的你傷不起呀》中吼的那樣,搞上層開發(fā)的,各種編程語言搞死你;搞系統(tǒng)開發(fā)的,各種系統(tǒng)搞死你;做底層的,各種匯編,芯片,指令集搞死你;當然了,無論做哪層,各種編譯器,工具,軟硬件知識等等都能搞死你。隨便一類學問中的一小部分都是一摞磚一般的書啊。不懂的也可以來21ic問哦。其次嵌入式行業(yè)更像是IT中的IT。標準缺乏,規(guī)格多變,技術變化又特快,剛流行的技術可能沒兩年就會失去生機。比如塞班,Nokia放棄了,Intel的MeGoo吧,也沒動靜了,現(xiàn)在安卓火的很,說不定過幾年就像今天的塞班,感覺像是永遠跟不上時代的節(jié)奏。


所以,很多人都說IT是吃青春飯的,一點不為過,等到年紀大了,或許真的做技術會力不從心吧。


話說嵌入式這個行業(yè)到底需要什么樣的技術人才?

仔細觀察各種招聘的崗位要求吧,無非是


1、通用要求:比如什么學歷,多少年工作經(jīng)驗,有創(chuàng)新精神,抗壓能力強,吃苦耐勞,善于溝通,態(tài)度認真等等等等……


2、專業(yè)要求:這個可真的多了去了,但無非就是各種精通。什么精通控制理論,精通電路設計,精通各種硬件驅動開發(fā),精通linux內核以及裁剪,精通C/C++/Java語言,精通DSp,精通ARM,精通什么linux/ecos/ucos/wince/VxWorks,精通嵌入式數(shù)據(jù)庫,精通多線程編程,精通各種網(wǎng)絡協(xié)議,精通各種總線協(xié)議,精通塞班/安卓/IOS平臺應用開發(fā),精通匯編,編譯器,二進制工具;精通各種媒體封裝格式,編解碼;精通通信技術;精通硬件原理圖;精通pCB設計;精通計算機結構;精通bootloader,精通……感覺只要是行業(yè)內的就要精通(我了個去!我感覺精通一門就得好久。。。)


看完這些,尤其是專業(yè)要求,頭大了吧?

那么我們就分析一下上面的要求吧。各個公司就的通用要求像是互相復制粘貼的一樣,比如學歷(個人認為學力明顯更重要),比如經(jīng)驗(是有n年的經(jīng)驗,還有n年前的經(jīng)驗用了n年?),還有個人秉性,我都不知道各個公司怎么在員工入職前考察。專業(yè)要求呢(其實精通其中幾樣就挺了不起了),一看就讓人頭暈,了解了嵌入式開發(fā)的結構可能就好理解些了。


從技術實現(xiàn)上講,嵌入式的產(chǎn)品分為兩大類:一類簡單的,沒有操作系統(tǒng)支持的;一類復雜的,有操作系統(tǒng)的。就目前發(fā)展方向看,后一種是趨勢。前一種從程序實現(xiàn)上可分為3層:硬件層,驅動層,應用層;后一種分為4層:硬件層,驅動層,系統(tǒng)層,應用層。


所以嵌入式的開發(fā)大致需要這么從下到上4類工程師:嵌入式硬件開發(fā)、嵌入式驅動開發(fā)、嵌入式系統(tǒng)開發(fā)、嵌入式軟件開發(fā)。


他們應該會哪些技能呢?

1、嵌入式硬件開發(fā):這是硬件工程師來做,一般出身為自動化,電子,通信等專業(yè),他們要求熟悉電路等知識,非常熟悉各種常用元器件,掌握模擬電路和數(shù)字電路設計的開發(fā)能力,熟悉硬件開發(fā)模式和設計模式,熟悉各種芯片及外圍設備,熟悉8位16位32位處理器嵌入式硬件平臺開發(fā)。有的要求有FpGA的開發(fā)經(jīng)驗,精通常用的硬件設計工具:protel/pADS(powerpCB)/Cadence/OrCad。一般要有4~8層高速pCB設計經(jīng)驗。由于本人不是做硬件的,對這一塊的不熟悉,所以不敢妄言。


2、嵌入式驅動開發(fā):這個可以硬件工程師來做,也可以軟件工程師來做,主要還是取決于設備。目前驅動開發(fā),除非是簡單的設備驅動,實際上很多時候都是移植,所以更多的是需要掌握目標平臺的硬件和系統(tǒng)特性。所以至少得掌握一些操作系統(tǒng)、系統(tǒng)結構、計算機組成原理、數(shù)據(jù)結構相關知識。熟悉嵌入式ARM/MIpS/powerpC架構。具有單片機、某種或多種32位嵌入式處理器的移植開發(fā)能力,熟悉bootloader過程,具有扎實的硬件知識,理解硬件原理圖,能獨立完成相關硬件驅動調試,能夠根據(jù)芯片手冊編寫軟件驅動程序。如果涉及到網(wǎng)絡設備,或許還要掌握很多高層的網(wǎng)絡協(xié)議的原理。個人感覺這一塊雖然大部分不是很難,但卻是極為重要的。當然如果要在這一層次提供對上層的多線程支持,某些驅動也是很難寫的。


3、嵌入式系統(tǒng)開發(fā):這個沒聽說硬件工程師來做的。做這塊,熟悉操作系統(tǒng)的原理是必不可少的,比如內存管理,比如線程調度,比如文件系統(tǒng)等等;還要精通處理器體系結構、指令集、尋址方式、調試、匯編和混合編程等方面的內容;熟悉操作系統(tǒng)啟動流程。對于linux,要熟悉Linux配置文件的修改,掌握內核裁減、內核移植、交叉編譯、內核調試、啟動程序Bootloader編寫、根文件系統(tǒng)制作和集成部署Linux系統(tǒng)等整個流程。這一塊要是真寫起來,困難程度那是相當恐怖的,好在大多都是移植,很少聽說有公司要去開發(fā)個操作系統(tǒng)的,沒Google的實力啊。


4嵌入式軟件開發(fā):這個嘛,沒有操作系統(tǒng)的話,程序一般不會特別復雜,如果有操作系統(tǒng)的支持,又和一般的軟件開發(fā)很接近,所以盡可以看作是搞桌面開發(fā)。這個要求就是熟悉系統(tǒng)的ApI,精通C語言的高級編程知識,包括函數(shù)與程序結構、指針、數(shù)組、常用算法、庫函數(shù)的使用等知識、數(shù)據(jù)結構的基礎內容;掌握面向對象編程的基本思想,以及C++語言的基礎內容;精通嵌入式Linux下的程序設計,精通嵌入式Linux開發(fā)環(huán)境,包括系統(tǒng)編程、文件I/O、多進程和多線程、網(wǎng)絡編程、GUI圖形界面編程、數(shù)據(jù)庫;熟悉常用的圖形庫的編程,如QT、GTK、miniGUI、fltk、nano-x等,掌握各種應用層的網(wǎng)絡協(xié)議使用,以及各種音視頻技術等。


另外還有些以上四類都用得著的技能:

1基礎技能:搞嵌入式開發(fā),還有一些必不可少的基礎技能。


a)開發(fā)平臺的熟悉,目前的嵌入式開發(fā)大多數(shù)是在linux或者類linux下的環(huán)境下進行的,那么linux的使用應該熟悉吧,shell腳本得會寫吧,配置文件得會改吧,GCCGDB得會用吧,Make工具得會吧?


b)比如項目管理工具的使用,都什么年代了,不會用CVS,也不會用SVN?請問,你還活在軟件時代的原始社會么?


c)數(shù)據(jù)結構和算法,搞軟件開發(fā),不懂數(shù)據(jù)結構,不會算法優(yōu)化,不會衡量復雜度,太不靠譜了吧?當然,這個不是要求啥算法都會,啥數(shù)據(jù)結構都記得住,最起碼得知道有那么種東西,有什么作用,這樣用到的時候好歹也能查啊


d)編程語言,關于JAVA,我知道現(xiàn)在JAVA的異軍突起,很是震動了編程語言界,但是在嵌入式開發(fā)下,不會C或者C++語言,實在說不過去。當然現(xiàn)在很多手機應用完全用java寫的,如果你只想搞嵌入式的上層軟件開發(fā)又不想深入下去,只用JAVA也未嘗不可。關于匯編,嗯,這個可能挺難,畢竟跟具體的硬件架構(主要是CpU)有關,但是真的很有意思,而且在某些時候,它是不可替代的。


2特殊技能:對于嵌入式開發(fā)的某些部分必不可少,但對于有些(比如應用開發(fā))可能沒有多大用處。


a)數(shù)字電路,這個……主要是了解一些基本的電路知識,如門電路、邏輯電路、存儲器、寄存器,為了更好的理解嵌入式芯片,存儲器,外圍設備等硬件的設計,但往往在軟件開發(fā)中未必能用的到。因為大部分硬件都提供了很完整的軟件接口。


b)操作系統(tǒng),這個說的是平臺上選用的操作系統(tǒng)。嵌入式產(chǎn)品操作系統(tǒng)是在太多了。但操作系統(tǒng)的內部設計原理都是殊途同歸。首先要去學習的是操作系統(tǒng)原理,去了解進程通信、內存管理、文件系統(tǒng)等幾個重要的部分,因為這些在軟件開發(fā)尤其是內核驅動開發(fā)時會用到。接下來可以去熟悉至少一種主流的操作系統(tǒng),Linux是一個很好的選擇,去了解它的內核架構,設備驅動架構,如何去編譯,裁剪,編寫應用程序,以及如何使用在具體的嵌入式產(chǎn)品上


c)計算機的組成/微機原理,主要是為了了解微型計算機的硬件工作原理,明白CpU、總線、I/O、存儲器等一些關鍵結構是怎么工作的,雖然是很枯燥的知識,但是對熟悉外圍設備硬件工作方式,及操作系統(tǒng),軟件架構的設計及優(yōu)化相當關鍵。


3擴展的能力,這些可能是要用到的。


a)通信協(xié)議,對于非應用層的通信協(xié)議,我實在不知道是不是該把它放入操作系統(tǒng)的范疇,因為很多操作系統(tǒng)是沒有網(wǎng)絡部分的,但是在很多方面它又是由操作系統(tǒng)提供。當然這些下層通信協(xié)議,貌似不太用關心,因為太多的開源協(xié)議棧了。應用層的網(wǎng)絡協(xié)議可能就要關心了,比如http,ftp,rtsp,rtmp,mms等等。


b)音視頻處理,比如文件封裝啊,音視頻的編解碼啊,各種音視頻的標準啊,還有流媒體什么的。Ffmpeg是一個很好的東西,建議學習一下。


c)信息安全,恩,這一塊貌似現(xiàn)在越來越受到重視了。


d)數(shù)據(jù)庫,唉,嵌入式設備能力越來越強啊!再搞搞我看也不用交叉編譯了。。


有時和同事討論起現(xiàn)在的行業(yè)需求,說到各個公司總是招不到人,程序員又總說找不到工作,自己就有很多感想,是公司要求高,還是程序員要求高?有時候看到一些招聘的職位要求,總是打擊到自己的信心,一條一條數(shù)下來,好像自己能做到的還真沒多少,只好讓自己再努力些再努力些;當然有時也會覺得某些招聘不靠譜,看那一條條的要求,個人感覺要是全做到,普通人怎么也得努力個十年八年的,這樣的大牛們,估計看不上給出的那薪資吧。


對于程序員來講,做技術真的是很累很難的一件事情。網(wǎng)上搜一下,遍地的抱怨貼,情感貼,都充分反映了這個職業(yè)對身體和情感的考驗。如果你不畏艱難,想把技術做下去,那么努力吧,也許某天你會隨便拿起一份招聘啟事,鄙視一眼:靠!就這點要求,老子去都掉價!,那么你就是真正的大牛了!


技術專區(qū)慕展上,世強帶來的SiC、GaN、三電平讓你的效率直達最high點如何利用二級輸出濾波器防止開關電源噪聲陶瓷垂直貼裝封裝(CVMp)的焊接注意事項及布局DC-DC轉換器的平均小信號數(shù)學建模及環(huán)路補償設計常用基準穩(wěn)壓電源產(chǎn)生辦法有哪些?

鉅大鋰電,22年專注鋰電池定制

鉅大核心技術能力

主站蜘蛛池模板: 99无人区卡一卡二卡三乱码 | 青草资源视频在线高清观看 | 国产黄色小视频在线观看 | 久草网视频在线观看 | 色花堂的网站永久地址 | 天堂在线免费观看中文版 | 黄页网站在线免费观看 | 国产成人综合久久亚洲精品 | 成人福利在线视频 | jav008.app| 日韩成年人视频 | 欧美在线视频免费观看 | 中文字幕在线二区 | 射逼网站| 国产真实强j视频在线观看 国产真实女人一级毛片 | 99无人区卡一卡二卡三乱码 | 亚洲精品欧美在线 | 欧美理论影院在线观看免费 | 国产成人精品一区二区三区 | 欧美日本免费 | 精品香蕉视频 | 插吧插吧综合网 | 一级毛片一级黄片 | 在线免费观看色 | 在线成人免费观看国产精品 | 国产亚洲欧美另类一区二区三区 | 国产在线观看青草视频 | 亚洲激情99 | 国产精品白嫩在线观看 | 欧美一级黄色片免费看 | 麻豆亚洲| 91网在线观看| 日本三级一区 | 欧美福利一区二区三区 | 五月天婷色 | 日韩精品专区 | 国内精品视频在线播放 | 国产精品国产高清国产专区 | 香蕉网站在线观看 | 久久久久99精品成人片三人毛片 | 精品视频免费在线观看 |