1. gzyueqian
      13352868059

      嵌入式職業(yè)發(fā)展方向有哪些?中國嵌入式培訓排行榜

      更新時間: 2018-12-10 14:03:07來源: 嵌入式培訓瀏覽量:3781

          很多人對嵌入式應該學些什么說的很復雜或者很簡單,這次呢小編就以主流的嵌入式linux操作系統(tǒng)為例來展開。

          相信很多人只能做單片機開發(fā),比如C51或者STM32(比較常見)等,當然了他們也可以跑一些小型的操作系統(tǒng)比如μC/OS-II或μC/OS-III等,當然了這些也是基于C語言的學習,也是和硬件在打交道,屬于C語言直接調(diào)用庫函數(shù)或者直接操作寄存器,也能夠讓硬件正常的工作,沒錯,會這些你也能有一份工作,學的深入的也會有不錯的工作,正所謂360行行行出狀元嘛,但是當你在這個方向工作三五年之后你會發(fā)現(xiàn)你進入到了瓶頸期,為什么呢?因為你會發(fā)現(xiàn)你的技術(shù)處于某個高度,很難得到提升,而且有很多東西感覺屬于這個行業(yè),想嘗試著去做,但是就是沒有能力去做,這個時候不是你能力不夠,而是你的技術(shù)儲備不夠了。你需要去打通一下任督二脈,那么這個時候建議你上手真正的嵌入式開發(fā)

          嵌入式門檻的學習比較高的原因,因為中間需要很多的技術(shù)儲備,如果不能打通中間環(huán)節(jié),那么你就只能停留在單片機開發(fā)的層面。那么接下來我大致的幫大家理一下這一塊的一個思路,若有不足之處還望各位海涵,錯誤和漏洞肯定是有的,希望大家能稍稍包涵一下,在此謝過學習嵌入式開發(fā)首先你需要有一個良好的C語言功底,你需要對C語言可以說是熟練掌握,當然了各種運算符和表達式以及類型的范圍是基礎(chǔ)中的基礎(chǔ),判斷選擇循環(huán)的語句肯定不能用錯,static、extern,const,等的用法和對變量函數(shù)的作用域等的影響都是基礎(chǔ),typedef,struct,union,#define的各種用法和坑肯定要掌握,說實話掌握上面這些再加上指針和數(shù)組的用法基本上做單片機開發(fā)就沒有問題了,但是如果是嵌入式開發(fā),對C語言你還需要對各種數(shù)組,指針,數(shù)組指針,指針數(shù)組,函數(shù)指針,回調(diào)函數(shù)的用法熟練掌握,為什么呢?因為驅(qū)動的部分基本上都是函數(shù)指針和回調(diào)函數(shù)來實現(xiàn)對各種接口的支持。這個是對C部分的一個要求,相對來說要求較高,不過貴在應用嘛,快速掌握這些和通過幾年時間掌握這些其實就是時間的問題,相信多數(shù)人事耗不起這個時間的。

          第二個你需要掌握的內(nèi)容是數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)是對數(shù)據(jù)的組織結(jié)構(gòu)(鄙人陋見),那么這個時候鏈表的強大就會出現(xiàn)在你的面前,很多人感覺數(shù)據(jù)結(jié)構(gòu)的學習很難,的確很難,我給大家簡單的說下小弟以為的難點在哪里,難點在于他需要你去梳理數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系,以前咱們是直接遍歷,現(xiàn)在要實現(xiàn)對數(shù)據(jù)的增刪改查加排序等功能,同時還要把這些數(shù)據(jù)當做一個節(jié)點栓在一根(單鏈表等)或兩根繩子(雙鏈表等)上,那么怎么先給你的數(shù)據(jù)申請個位置(malloc一個節(jié)點,按照你定義的節(jié)點形式)然后在鏈表上遍歷找到合適的位置插入就可以的,同時后面的繩子還不能斷對吧,保證數(shù)據(jù)的完整性。一本不錯的書是《大話數(shù)據(jù)結(jié)構(gòu)》(我沒看完,不過很不錯)。那么對嵌入式來說,數(shù)據(jù)結(jié)構(gòu)學到那種程度就可以了呢?我相信這個是大家關(guān)注的問題,因為數(shù)據(jù)結(jié)構(gòu)那么多東西,都學完還不累死了啊。我這里簡單的發(fā)表一下建議,數(shù)據(jù)結(jié)構(gòu)將前面的單鏈表,雙鏈表,循環(huán)鏈表,棧,隊列全部拿下(能自己畫畫節(jié)點的圖,能獨立實現(xiàn)代碼)就夠了,樹的話了解樹的遞歸創(chuàng)建和遍歷就可以的了,再內(nèi)核中出現(xiàn)多的就是鏈表,希望大家好好掌握,為后面打下堅實的基礎(chǔ)。而對于圖的話,那是算法工程師的事了,因為圖的多數(shù)應用都位于算法中,這里就不做過多的介紹了。不過還是要給大家強調(diào)一下,如果想深入學習嵌入式開發(fā),那么C語言的掌握還有數(shù)據(jù)結(jié)構(gòu)部分的思想是重重之中。

          拿下C和數(shù)據(jù)結(jié)構(gòu)之后其實你發(fā)現(xiàn)你還是停留在裸機的開發(fā),要想進入嵌入式的開發(fā),那么你需要切入到Ubuntu的學習,當然了個人建議前面的C語言和數(shù)據(jù)結(jié)構(gòu)也在Ubuntu下開發(fā)會更好,因為嵌入式開發(fā)目前Ubuntu環(huán)境是上手的。(這里做個廣告,粵嵌教育嵌入式培訓機構(gòu)的整套嵌入式課程都是在Ubuntu的環(huán)境下學習的。)要想進入Ubuntu的學習那么你需要一把鑰匙,熟悉shell命令,能實現(xiàn)像windows下那樣復制粘貼拷貝重命名查找….,當然了都是通過命令實現(xiàn)的,此外你還需要熟悉vi編輯器,這款強大的ide,可以百度一下vi的配置,把在vi環(huán)境下的代碼編輯作為你初入嵌入式必須攻克的一個門檻(很重要),當你基本的shell命令和vi使用拿下了之后,你就拿到了這把鑰匙(估計突擊這一塊也就兩三天就能拿下)。

          后面你可以看到要想與內(nèi)核打交道你需要拿下文件IO和庫函數(shù),為什么呢 ,你會發(fā)現(xiàn)之前的C和數(shù)據(jù)結(jié)構(gòu)基本上都沒有對文件進行過操作,而嵌入式linux當中號稱是”一切皆文件”,因為在驅(qū)動開發(fā)中不管你是什么設備對我來說都是一樣的,都只是一個文件而已,嵌入式linux下有七種文件類型,bcd-lsp,大家可以自己去擴展一下,那么在嵌入式linux下將你所有的設備都抽象成各種文件,字符設備文件,塊設備文件,網(wǎng)絡設備文件,普通文件等等,這也就是說要想學習嵌入式linux,學習驅(qū)動,你必須掌握嵌入式linux下對各種文件的操作,比如對文件的打開,讀,寫,ioctl,關(guān)閉以及問目錄的打開關(guān)閉等。嵌入式linux下提供了兩套標準,一個是文件IO,一個是標準IO,區(qū)別簡單說就是是否有流緩沖區(qū)(具體可以自己去擴展),這里區(qū)別一下嵌入式linux下支持的是文件IO,其實這個難度也不大,基礎(chǔ)較好的人不用一周就能掌握,當然應用的熟練度肯定是有待斟酌的了。


          那么拿下了文件IO和標準IO就萬事大吉了嗎?不是的,這里我們稍稍談一下嵌入式linux內(nèi)核是怎么工作的,它是通過對進程和線程的調(diào)度來完成各種任務的,那么這個時候你想一想,你該做什么啊?是的,沒猜錯,你需要把嵌入式linux下7中進程間通信方式給拿下,比如無名管道,有名管道,信號,信號量,共享內(nèi)存和消息隊列以及網(wǎng)絡通信,不過由于進程的資源消耗可能稍大,所以引入了線程,那么你需要掌握線程的同步和互斥的機制,同時再深入理解一下調(diào)度的概念以及與進程線程間的關(guān)系,做個小項目練練手,那么恭喜你,學到這里已經(jīng)可以找到一份應用層的工作了,比如網(wǎng)絡開發(fā)等等。


          不過俗話說學無止境嘛,一條路走到黑,索性把驅(qū)動也拿下吧,只有拿下驅(qū)動,你才能夠從層的硬件一直到上層的應用然后再從上層的應用到層的驅(qū)動打通整個閉環(huán),你會發(fā)現(xiàn)很多東西對你來說都是小case的了,驅(qū)動開發(fā)的硬件肯定是ARM的了,如果你有51和STM32等硬件基礎(chǔ),恭喜你這一塊很快就能突破,如果你是軟件出身不懂硬件,沒關(guān)系,有好的指導(比如說粵嵌教育嵌入式培訓機構(gòu):又打廣告了,哈哈~~)你也可以快速上手,其實我們以前也想把路走好,但是就是不知道走那條路,所以走了很多彎路,說白了就是少個人引導你前進。不過嘛,做技術(shù)的都喜歡按照自己的想法,自己認為正確的方向前進,我也是,哈哈。說了很多廢話,簡單的說一下如何上手學習驅(qū)動,首先你需要將環(huán)境搭建起來,你需要知道如何編譯內(nèi)核,如何將內(nèi)核在板子上跑起來,這個是步。當然了學驅(qū)動寫的個驅(qū)動肯定也是點燈(點燈大法好),然后慢慢的接觸一下嵌入式linux下如果去寫一個簡單的字符設備驅(qū)動,學到后面你會發(fā)現(xiàn)驅(qū)動基本上就是在套框架,比如字符設備框架,Platform框架,IIC框架,SPI框架,INPUT輸入子系統(tǒng)框架,misc,USB等等框架,那么驅(qū)動到底是做什么的呢?驅(qū)動向下操作硬件,向上提供接口,簡單點說就是你以前配置硬件寄存器讓硬件正常工作,那么你先在驅(qū)動中也去相同方式配置硬件,只不過是要將配置硬件的過程何時的套入驅(qū)動的框架當中,同時向外面提供你對硬件的操作接口,比如open,read,write,ioctl的接口等,說白了就是在應用層通過io操作去調(diào)用驅(qū)動的接口然后再驅(qū)動提供的接口中去修改硬件的狀態(tài),實現(xiàn)對硬件的控制。當然了一些基礎(chǔ)知識如自旋鎖,互斥體,中斷底半部等等大家可以自行去了解。


          但是我們再想一下嵌入式系統(tǒng)是什么,以應用為中心,對吧,那么我們需要在實戰(zhàn)中去應用我們的知識和技術(shù)去解決實際的問題,這個時候有兩套框架,一個是CS,一個是BS,那么在這些基礎(chǔ)上你想往哪個方向發(fā)展都是可以的。因為任督二脈已通,修煉何種神功就看你的選擇了。當然了上面這些吃幾年是沒什么問題的,不過熱愛技術(shù)的大哥們一般都會再學兩個東東,一個叫做語言,可以選擇C++,JAVA,PYTHON三選一,一個叫做界面,可以選擇QT、android或者web等,這些都是增值哇,以上為小弟愚見。

          1、學習嵌入式以后可以做些什么?(職業(yè)發(fā)展方向)

          1.1、成為某個方向技術(shù)方面的核心,領(lǐng)域內(nèi)的一專多才的專家;

          1.2、另一個是從項目中鍛煉起來,成為項目主管或是管理型人才;

          1.3、再有就是因為嵌入式開發(fā)的門檻相對較高,技術(shù)的附加值較高,可以利用自己的技術(shù)及行業(yè)經(jīng)驗去創(chuàng)業(yè)。

          1.4、可以做很多自己想做的事;

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文字幕在线视频网站 | 亚洲免费一级字幕 | 尤物久久免费一区二区三区 | 欧美伊久线香蕉观新在线 | 在线看片免费人成影片 | 日韩在线一区二区不卡视频 |