發(fā)布時(shí)間:2022-03-18 15:26:33來源:轉(zhuǎn)載
嵌入式開發(fā)如何入門?嵌入式說白了就是嵌入式系統(tǒng)。從應(yīng)用對(duì)象上加以定義來說,它是一個(gè)軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。一個(gè)嵌入式系統(tǒng)裝置一般都由嵌入式計(jì)算機(jī)系統(tǒng)和執(zhí)行裝置組成,嵌入式計(jì)算機(jī)系統(tǒng)是整個(gè)嵌入式系統(tǒng)的核心。
嵌入式開發(fā)如何入門?
嵌入式系統(tǒng)專業(yè)是綜合了計(jì)算機(jī)硬件技術(shù),計(jì)算機(jī)軟件技術(shù)以及電子電路技術(shù)的一門綜合學(xué)科,所涉及的內(nèi)涵和知識(shí)非常廣泛。
1.C語言基礎(chǔ)
在開始學(xué)習(xí)嵌入式之前,首先要打好基礎(chǔ),其中較重要的是C語言基礎(chǔ),要至少達(dá)到能單獨(dú)編寫調(diào)試一個(gè)500行的小項(xiàng)目(大概是一個(gè)本地員工管理系統(tǒng)的代碼量),能夠了解C語言的基本語法規(guī)則,基本語句的使用,理解指針概念并能靈活使用各種指針。
在學(xué)習(xí)C語言的過程中,指針的概念比較難理解,但是如果對(duì)計(jì)算機(jī)組成原理有了解的話,地址和 指針,源碼和可執(zhí)行程序,軟件通過寄存器控制硬件這些概念都會(huì)變得很清晰。
那學(xué)習(xí)C語言使用什么環(huán)境?
選方案,Windows安裝虛擬機(jī),虛擬機(jī)運(yùn)行Linux操作系統(tǒng),編輯器選擇vim,命令行運(yùn)行g(shù)cc編譯器編譯環(huán)境。
為什么要用Linux操作系統(tǒng)呢?
從上文中的各大企業(yè)對(duì)研發(fā)工程師的要求可以看出,Linux操作系統(tǒng)在嵌入式行業(yè)中的地位是任何操作系統(tǒng)不可比擬的。許多公司為了保護(hù)自己的代碼產(chǎn)權(quán),開發(fā)用的主機(jī)直接運(yùn)行Linux操作系統(tǒng),并在命令行終端來控制主機(jī)。
大約一周的時(shí)間即可熟悉Linux系統(tǒng),你會(huì)體會(huì)到Linux和Windows系統(tǒng)的不同,擺脫對(duì)圖形化界面的依賴。
當(dāng)學(xué)會(huì)了C語言編程后,你需要掌握操作系統(tǒng)相關(guān)的知識(shí),多線程多進(jìn)程編程、網(wǎng)絡(luò)編程。通過實(shí)踐學(xué)習(xí)一些接口函數(shù)完成一些小項(xiàng)目比如銀行家算法、網(wǎng)絡(luò)聊天室等。對(duì)操作系統(tǒng)的知識(shí)有一個(gè)初步的感性認(rèn)識(shí)。
2.MCU和CPU
難道嵌入式開發(fā)就是如此嗎,說好的軟硬件可裁剪呢?別急,緊接著我們就需要加入MCU和CPU的學(xué)習(xí),要學(xué)習(xí)ARM是什么,不同系列的MCU開發(fā)方式不同,ARM Cortex™-A 系列應(yīng)用型處理器,可向托管豐富OS平臺(tái)和用戶應(yīng)用程序的設(shè)備提供全方位的解決方案,從超低成本手機(jī)、智能手機(jī)、移動(dòng)計(jì)算平臺(tái)、數(shù)字電視和機(jī)頂盒到企業(yè)網(wǎng)絡(luò)、打印機(jī)和服務(wù)器解決方案,是作為學(xué)習(xí)嵌入式的合適的素材。
現(xiàn)在嵌入式的學(xué)習(xí)資源豐富,選擇合適的Cortex™-A 系列的開發(fā)板后,根據(jù)裸板開發(fā)、系統(tǒng)移植、驅(qū)動(dòng)開發(fā)這樣的順序?qū)W習(xí)。
3.驅(qū)動(dòng)開發(fā)
前面裸板開發(fā)和驅(qū)動(dòng)移植的學(xué)習(xí)目的是面對(duì)接下來的驅(qū)動(dòng)大魔頭,學(xué)習(xí)驅(qū)動(dòng)開發(fā)我們需要有一個(gè)空杯心態(tài),需要有主動(dòng)理解Linux內(nèi)核設(shè)計(jì)理念的意識(shí)(但是不要鉆牛角尖),時(shí)刻把握Linux下一切皆文件的宗旨和分層的思想。
當(dāng)我們?cè)谶@一階段點(diǎn)亮開發(fā)板上的一盞明燈,恭喜你,一只腳踏進(jìn)嵌入式開發(fā)的大門了。
4.C++和Qt
體會(huì)了較基本的驅(qū)動(dòng)開發(fā)后,嵌入式學(xué)習(xí)還未結(jié)束,但是之后的學(xué)習(xí)我們有了一些選擇的主動(dòng)權(quán),當(dāng)我們看到一些有意思的嵌入式小項(xiàng)目,我們可以理解它的實(shí)現(xiàn)思路。
而較好的學(xué)習(xí)方法是自己實(shí)踐完成一些小項(xiàng)目,你也許不滿足之前所學(xué),為什么不能把黑乎乎的命令行終端優(yōu)化成精美的液晶屏顯示,C++和Qt的學(xué)習(xí)就在所難免了。
5.Python人工智能
那么,如果你已經(jīng)可以實(shí)現(xiàn)一個(gè)小型的嵌入式項(xiàng)目了,但是如果大火的人工智能技術(shù)可以加入到這個(gè)小項(xiàng)目中,想必一定非??犰牛覀兛梢园汛舭宓挠脩艚缑孑斎敫某蓤D像識(shí)別或者人臉識(shí)別。
現(xiàn)在編寫人工智能代碼較廣泛的語言是Python3,在github上有許多的開源項(xiàng)目和代碼。為了看懂開源代碼,暫且不管復(fù)雜的數(shù)學(xué)相關(guān)的算法,首先需要學(xué)習(xí)Python3。
其實(shí),Python3也是一種解釋型語言,之前的基礎(chǔ)學(xué)習(xí)中我們學(xué)過Shell,兩者都是解釋型語言,較大區(qū)別在于運(yùn)行的環(huán)境和應(yīng)用的場(chǎng)景不同。
Shell多用于編寫Linux系統(tǒng)下的小工具,Makefile的編寫是較大的應(yīng)用場(chǎng)景,Python可以運(yùn)行在Windows和Linux下,移植了Python的開發(fā)板,可以根據(jù)各大AI開放平臺(tái)的支持,將設(shè)備接入平臺(tái)調(diào)用云平臺(tái)提供的API,實(shí)現(xiàn)圖像識(shí)別、人臉識(shí)別、文字識(shí)別......
6.STM32
一個(gè)產(chǎn)品級(jí)的項(xiàng)目考慮的不僅僅是功能的實(shí)現(xiàn),還要考慮功耗、成本。
此時(shí)你會(huì)發(fā)現(xiàn)許多低功耗的模塊可以取代之前基于ARM Cortex™-A的開發(fā)板,STM32映入眼簾,STM32的開發(fā)原理無非也是控制寄存器驅(qū)動(dòng)硬件模塊,在芯片手冊(cè)中掙扎一段時(shí)間,通過一周的時(shí)間熟悉CubeMX和keil的使用,驅(qū)動(dòng)一個(gè)溫濕度傳感器或者其它傳感器模塊,在這個(gè)過程中我們就可以了解STM32開發(fā)的基本套路。
更多培訓(xùn)課程: 浦東新區(qū)嵌入式 更多學(xué)校信息: 上海浦東達(dá)內(nèi)IT教育培訓(xùn) 咨詢電話:
雅思 托福 GRE SSAT SAT GMAT ACT 個(gè)人提升英語 英語四六級(jí) 多鄰國(guó)英語測(cè)試 詞庫 IB 英語口語 商務(wù)英語 公共英語 考研英語 青少兒英語 成人英語 A-Level 學(xué)生英語 初高中英語 OSSD AP課程 AEAS個(gè)性化定制課程 一級(jí)建造師 二級(jí)建造師 消防工程師 消防設(shè)施操作員 BIM 造價(jià)工程師 環(huán)評(píng)師 監(jiān)理工程師 咨詢工程師 安全工程師 建筑八大員 公路水運(yùn)檢測(cè) 通信工程 裝配式工程師 注冊(cè)電氣工程師 二級(jí)注冊(cè)建筑師 一級(jí)注冊(cè)建筑師 智慧消防工程師 智慧建造工程師 全過程工程咨詢師 EPC 碳排放管理師 ACCA CFA 注冊(cè)會(huì)計(jì)師 會(huì)計(jì)證 初中級(jí)經(jīng)濟(jì)師 初級(jí)會(huì)計(jì)師 中級(jí)會(huì)計(jì)師 基金從業(yè) 證券從業(yè) 稅務(wù)師 薪稅師 企業(yè)合規(guī)師 會(huì)計(jì)就業(yè)實(shí)操 期貨從業(yè) FRM CMA CQF 教師資格 人力資源管理 導(dǎo)游考試 心理咨詢師 健康管理師 社會(huì)工作師 普通話 育嬰員 物流師 家庭教育指導(dǎo)師 專利代理師 教師招聘 兒童專注力 兒童情緒管理 法律職業(yè)資格 少兒編程 書法培訓(xùn) 國(guó)畫 茶藝 樂器音樂 舞蹈 棋類 機(jī)器人編程 戲曲培訓(xùn) 信奧賽C++ 少兒小主播 口才培訓(xùn) 籃球培訓(xùn) 商務(wù)辦公 影視后期 剪輯包裝 游戲設(shè)計(jì) 游戲程序 UI設(shè)計(jì) 室內(nèi)設(shè)計(jì) photoshop CAD制圖 視覺設(shè)計(jì) 商業(yè)空間設(shè)計(jì) 平面設(shè)計(jì)