嵌入式開發要學哪些內容,超級詳細版!

C語言?應用層(文件IO管理,網絡編程,多線程,進程間通信,并發程序,數據庫)?底層(ARM架構,系統移植,裁剪定制,驅動及內核)


linux方向智能化產品是有3部分組成的,應用層+系統層+底層


1.嵌入式不管是什么產品,用的都是c語言和數據結構,學完了第一階段的C語言和C高級入門,我們基本上會看懂些代碼,會簡單的調庫,像同時也要掌握,指針,鏈表,函數,因為可以更好的編寫程序,這個是我們進入這個方向必須要會的。(linux方向對軟件和C語言的功能要求要更高)

2.  第二階段-首先高端智能產品是最上層的應用程序,比如我們的手機,之前老年機,只能打電話發短信,現在的手機有打電話的功能,上網的功能,玩游戲,拍照等功能 都是應用工程師開發的,

文件IO: 標準文件庫的制作及使用

并發程序設計:進程管理 進程間通信,多任務同步使用(比如我們的電腦,可以一邊聽歌,一邊上網,手機可以一邊打電話,一邊可以打開微信發消息,掃地機器人在掃地的同時,還可以識別語音控制,避障等功能。一個進程里面可以有好多個線程,進程間通信,也就是兩個程序之間想要實現通信,我們在抖音上看到的視頻,可以轉發給微信好友,他們屬于兩個應用程序 所以多進程,多線程的任務調度要用到了操作系統里的共享內存等。會了進程,線程,進程間通信是為了讓智能化產品同時可以運行好多個程序,并且能讓他們實現通信

網絡編程:要會tcp/ip,udp,http的協議。因為你想要讓你的數據上網,肯定通過的就是這種網絡編程的協議,讓程序上網應用

數據庫開發:熟悉sqlite數據庫的安裝及操作,像我們考勤機的員工打卡信息,就是通過數據庫管理

3.  第三階段 主要講的就是ARM架構+系統移植+驅動內核開發

應用層的這些程序是運行在操作系統里的

嵌入式涉及到的行業非常多,不同的行業用到的操作系統還不太一樣,手機有手機的操作系統,掃地器人,車載導航都有不同的系統。咱們要根據不同的行業,高度定制專用的操作系統,也就是對Linux操作系統本身的定制裁剪,還有系統移植,你用的功能留下,不用的功能裁減掉,你要保證你的操作系統是最優的,以減少體積成本和功耗(像有的產品需要用到攝像頭,有的產品要用到音頻功能,有的產品要用到人臉識別等)把系統定制裁剪好了,再往下就是要移植到高端的芯片里來了  (通常是SOC芯片) 

再往下就是嵌入式底層比較難的部分,也是工作中薪資最含金量的技術點就是 內核和驅動工發,

一個硬件對應著一個驅動程序

比如說你電腦有網卡驅動,顯卡有顯卡驅動,打印機有打印機的驅動,圖形界面有屏幕驅動,打卡機有傳感器指紋驅動,顯示時間,有時鐘驅動,人臉識別有攝像頭驅動 任何一個硬件都會對應著一個驅動程序的想要讓這個硬件能夠正常的運轉起來,肯定是需要在操作系統里寫好對應驅動他的程序,用軟件程序把硬件驅動起(像有一個崗位叫作BSP工程師,就是做軟件和硬件之間驅動的崗位)

驅動程序是需要寫到操作系統的內核文件里的,就是要拿著硬件芯片開發手冊去寫操作系統里的驅動程序,因為他是軟硬件都要會的,所以驅動是嵌入式里薪資最高的

拿手機舉例:你像OPPO,vivo,小米,華為都是手機的廠商,不管是什么型號的芯片,華為的麒麟,海思,高通的驍龍,聯發科的天璣,三星的芯片,像這種消費電子類的公司,他們招好多工程師就是為了寫驅動的和應用程序,用安卓系統,把手機里的硬件都能驅動起來

4.  第四階段 之后主要是講項目開發和擴展開發

主要是為什么要學習C++ QT(GUI開發)Qt是一個圖形界面開發的工具,c++可以做算法,也可以開發界面的應用層功能,如果說咱們未來的智能化產品需要屏幕,需要界面,就要用的c++和qt(屬于應用層開發)以后會越來越普及。

the end

評論(0)