嵌入式開(kāi)發(fā)要學(xué)哪些內(nèi)容,超級(jí)詳細(xì)版!
C語(yǔ)言?應(yīng)用層(文件IO管理,網(wǎng)絡(luò)編程,多線程,進(jìn)程間通信,并發(fā)程序,數(shù)據(jù)庫(kù))?底層(ARM架構(gòu),系統(tǒng)移植,裁剪定制,驅(qū)動(dòng)及內(nèi)核)
linux方向智能化產(chǎn)品是有3部分組成的,應(yīng)用層+系統(tǒng)層+底層
1.嵌入式不管是什么產(chǎn)品,用的都是c語(yǔ)言和數(shù)據(jù)結(jié)構(gòu),學(xué)完了第一階段的C語(yǔ)言和C高級(jí)入門(mén),我們基本上會(huì)看懂些代碼,會(huì)簡(jiǎn)單的調(diào)庫(kù),像同時(shí)也要掌握,指針,鏈表,函數(shù),因?yàn)榭梢愿玫木帉?xiě)程序,這個(gè)是我們進(jìn)入這個(gè)方向必須要會(huì)的。(linux方向?qū)浖虲語(yǔ)言的功能要求要更高)
2. 第二階段-首先高端智能產(chǎn)品是最上層的應(yīng)用程序,比如我們的手機(jī),之前老年機(jī),只能打電話發(fā)短信,現(xiàn)在的手機(jī)有打電話的功能,上網(wǎng)的功能,玩游戲,拍照等功能 都是應(yīng)用工程師開(kāi)發(fā)的,
文件IO: 標(biāo)準(zhǔn)文件庫(kù)的制作及使用
并發(fā)程序設(shè)計(jì):進(jìn)程管理 進(jìn)程間通信,多任務(wù)同步使用(比如我們的電腦,可以一邊聽(tīng)歌,一邊上網(wǎng),手機(jī)可以一邊打電話,一邊可以打開(kāi)微信發(fā)消息,掃地機(jī)器人在掃地的同時(shí),還可以識(shí)別語(yǔ)音控制,避障等功能。一個(gè)進(jìn)程里面可以有好多個(gè)線程,進(jìn)程間通信,也就是兩個(gè)程序之間想要實(shí)現(xiàn)通信,我們?cè)诙兑羯峡吹降囊曨l,可以轉(zhuǎn)發(fā)給微信好友,他們屬于兩個(gè)應(yīng)用程序 所以多進(jìn)程,多線程的任務(wù)調(diào)度要用到了操作系統(tǒng)里的共享內(nèi)存等。會(huì)了進(jìn)程,線程,進(jìn)程間通信是為了讓智能化產(chǎn)品同時(shí)可以運(yùn)行好多個(gè)程序,并且能讓他們實(shí)現(xiàn)通信
網(wǎng)絡(luò)編程:要會(huì)tcp/ip,udp,http的協(xié)議。因?yàn)槟阆胍屇愕臄?shù)據(jù)上網(wǎng),肯定通過(guò)的就是這種網(wǎng)絡(luò)編程的協(xié)議,讓程序上網(wǎng)應(yīng)用
數(shù)據(jù)庫(kù)開(kāi)發(fā):熟悉sqlite數(shù)據(jù)庫(kù)的安裝及操作,像我們考勤機(jī)的員工打卡信息,就是通過(guò)數(shù)據(jù)庫(kù)管理
3. 第三階段 主要講的就是ARM架構(gòu)+系統(tǒng)移植+驅(qū)動(dòng)內(nèi)核開(kāi)發(fā)
應(yīng)用層的這些程序是運(yùn)行在操作系統(tǒng)里的
嵌入式涉及到的行業(yè)非常多,不同的行業(yè)用到的操作系統(tǒng)還不太一樣,手機(jī)有手機(jī)的操作系統(tǒng),掃地器人,車載導(dǎo)航都有不同的系統(tǒng)。咱們要根據(jù)不同的行業(yè),高度定制專用的操作系統(tǒng),也就是對(duì)Linux操作系統(tǒng)本身的定制裁剪,還有系統(tǒng)移植,你用的功能留下,不用的功能裁減掉,你要保證你的操作系統(tǒng)是最優(yōu)的,以減少體積成本和功耗(像有的產(chǎn)品需要用到攝像頭,有的產(chǎn)品要用到音頻功能,有的產(chǎn)品要用到人臉識(shí)別等)把系統(tǒng)定制裁剪好了,再往下就是要移植到高端的芯片里來(lái)了 (通常是SOC芯片)
再往下就是嵌入式底層比較難的部分,也是工作中薪資最含金量的技術(shù)點(diǎn)就是 內(nèi)核和驅(qū)動(dòng)工發(fā),
一個(gè)硬件對(duì)應(yīng)著一個(gè)驅(qū)動(dòng)程序
比如說(shuō)你電腦有網(wǎng)卡驅(qū)動(dòng),顯卡有顯卡驅(qū)動(dòng),打印機(jī)有打印機(jī)的驅(qū)動(dòng),圖形界面有屏幕驅(qū)動(dòng),打卡機(jī)有傳感器指紋驅(qū)動(dòng),顯示時(shí)間,有時(shí)鐘驅(qū)動(dòng),人臉識(shí)別有攝像頭驅(qū)動(dòng) 任何一個(gè)硬件都會(huì)對(duì)應(yīng)著一個(gè)驅(qū)動(dòng)程序的想要讓這個(gè)硬件能夠正常的運(yùn)轉(zhuǎn)起來(lái),肯定是需要在操作系統(tǒng)里寫(xiě)好對(duì)應(yīng)驅(qū)動(dòng)他的程序,用軟件程序把硬件驅(qū)動(dòng)起(像有一個(gè)崗位叫作BSP工程師,就是做軟件和硬件之間驅(qū)動(dòng)的崗位)
驅(qū)動(dòng)程序是需要寫(xiě)到操作系統(tǒng)的內(nèi)核文件里的,就是要拿著硬件芯片開(kāi)發(fā)手冊(cè)去寫(xiě)操作系統(tǒng)里的驅(qū)動(dòng)程序,因?yàn)樗擒浻布家獣?huì)的,所以驅(qū)動(dòng)是嵌入式里薪資最高的
拿手機(jī)舉例:你像OPPO,vivo,小米,華為都是手機(jī)的廠商,不管是什么型號(hào)的芯片,華為的麒麟,海思,高通的驍龍,聯(lián)發(fā)科的天璣,三星的芯片,像這種消費(fèi)電子類的公司,他們招好多工程師就是為了寫(xiě)驅(qū)動(dòng)的和應(yīng)用程序,用安卓系統(tǒng),把手機(jī)里的硬件都能驅(qū)動(dòng)起來(lái)
4. 第四階段 之后主要是講項(xiàng)目開(kāi)發(fā)和擴(kuò)展開(kāi)發(fā)
主要是為什么要學(xué)習(xí)C++ QT(GUI開(kāi)發(fā))Qt是一個(gè)圖形界面開(kāi)發(fā)的工具,c++可以做算法,也可以開(kāi)發(fā)界面的應(yīng)用層功能,如果說(shuō)咱們未來(lái)的智能化產(chǎn)品需要屏幕,需要界面,就要用的c++和qt(屬于應(yīng)用層開(kāi)發(fā))以后會(huì)越來(lái)越普及。
- 贊