對嵌入式系統工程師及嵌入式硬件工程師而言,2020年將是振奮人心的一年。隨著(zhù)物聯(lián)網(wǎng)應用的普及,MCU市場(chǎng)將再次繁榮。因此,市場(chǎng)上對嵌入式系統工程師人才的需求也將出現新高。這些都是底層編程領(lǐng)域中即將出現的趨勢。 先搞清楚什么是嵌入式 我們已經(jīng)習慣了使用強大的計算能力來(lái)處理機器學(xué)習,那么嵌入式是這樣的嗎? 一般的機器學(xué)習工程師很少考慮計算資源。而且他們也很少關(guān)心內存的使用情況。為什么?因為這些硬件都很便宜,甚至是你的手機都擁有相當不錯的CPU和大量?jì)却妗?/font> 你已經(jīng)很久沒(méi)有過(guò)聚會(huì )拍照時(shí)發(fā)現自己手機上的存儲不夠的情況了吧?想象一下,你使用的是只有256KB閃存的TrueTouch感應控制器。沒(méi)錯,只有 256KB。而且由于固件占用了一部分, 因此你不能完全使用這點(diǎn)存儲。算下來(lái),你能使用的也就是大約100KB;仡^再看看你的上一個(gè)模型的大小?赡鼙冗@個(gè)大多了。 有意思吧?我們來(lái)繼續看。 當聽(tīng)到“嵌入式設備”時(shí)你會(huì )想起什么?記住腦海中出現的第一印象。 沒(méi)錯,你答對了! 如今,幾乎所有的電氣設備都是嵌入式的。這些設備內部可能擁有一個(gè)或多個(gè)控制器來(lái)負責每個(gè)功能:觸摸感應、發(fā)動(dòng)機狀態(tài)監控等。 這是一種特殊的開(kāi)發(fā)套件,簡(jiǎn)稱(chēng)迷你計算機,專(zhuān)門(mén)為運行機器學(xué)習模型而開(kāi)發(fā)。它非常強大,而且非?。 但似乎有些不對。 信盈達小編 有很多朋友都在做一些很棒的硬件業(yè)余項目。通常他們會(huì )使用Arduino或 STM32。 那么,接下來(lái)請考慮這樣一個(gè)問(wèn)題:“這些設備有多少用在了生產(chǎn)級別的產(chǎn)品中?” 答案:微乎其微 想一想家中有多少電氣設備,然后再想想汽車(chē)中包含的大量控制器,以及工作上用到的安保系統,等等。 每個(gè)設備都有一個(gè)控制器。通常,這些控制器都是微型,且超級便宜。 祝你好運,歡迎來(lái)到“嵌入式AI”的世界。 重點(diǎn):真正的嵌入式世界,由資源極其有限的 1-2 美元芯片組成。而生產(chǎn)級別的產(chǎn)品使用的就是這種芯片。 2020年軟硬件有什么值得學(xué)習的新技術(shù) 編程語(yǔ)言 當我們談及編寫(xiě)圍繞硬件層運行的代碼時(shí),最常提起的就是C語(yǔ)言。25年前,當我們從匯編語(yǔ)言過(guò)渡到C語(yǔ)言時(shí),整個(gè)過(guò)程非常緩慢,且需求很高。如果你想進(jìn)入嵌入式編程領(lǐng)域,那么2020年C以及C++仍然是你應該重點(diǎn)學(xué)習的編程語(yǔ)言。 如果你想嘗試嵌入式編程,那么可以從下面幾個(gè)方面著(zhù)手: https://www.learn-c.org/ Learn-c.org 是 Ron Reiter 的私人項目。雖然這個(gè)項目與嵌入式或硬件的關(guān)系不大,但作為C語(yǔ)言入門(mén)還是很不錯的。 買(mǎi)個(gè)微處理器 就小編個(gè)人而言,實(shí)際操作才是最佳的學(xué)習途徑。所以,你也可以買(mǎi)一個(gè)微處理器,實(shí)際接觸硬件,親眼看到實(shí)際結果才是你最應該做的事情。 閱讀書(shū)籍和文檔 閱讀書(shū)籍和文檔是最關(guān)鍵的學(xué)習方式。你可以根據自己選擇的方向(嵌入式系統、固件開(kāi)發(fā)、驅動(dòng)程序開(kāi)發(fā)等),選擇相應的書(shū)籍。 除了C/C++之外,該領(lǐng)域沒(méi)有真正占據實(shí)際市場(chǎng)份額的編程語(yǔ)言,但是下面的新起之秀值得關(guān)注。 硬件 除了編程語(yǔ)言之外,硬件設計方面也有一些有趣的趨勢。小編想提及的第一件事情是:RISC-V。 RISC-V 是一種開(kāi)源硬件指令集體系結構。它基于精簡(jiǎn)指令集計算機原理,即所謂的 RISC。與 Arm 相比,制造商不需要支付許可費用即可使用 RISC-V。 面向服務(wù)器和消費者的硬件大多采用了x86硬件。我認為 RISC-V 不會(huì )很快在這部分市場(chǎng)中贏(yíng)得份額,但是它有可能應用于其他幾個(gè)市場(chǎng)。路由器和交換機等嵌入式設備以及智能手機制造商或物聯(lián)網(wǎng)設備都可能切換到 RISC-V 架構。 現在市場(chǎng)已有 RISC-V 的電路板,雖然價(jià)格仍然偏高,但值得關(guān)注。 除了這些還要學(xué)什么? 1、打好嵌入式編程的基礎 這一階段重點(diǎn)打好嵌入式軟件編程的基礎,包括學(xué)習Linux系統的基本應用,Linux的常用命令、C語(yǔ)言編程基礎、常用的數據結構。 特別是C語(yǔ)言中對指針的理解和應用。這一階段的主要目的是學(xué)習編程語(yǔ)言、開(kāi)發(fā)環(huán)境、和培養自己的編程思維,為進(jìn)一步學(xué)習嵌入式開(kāi)發(fā)打下良好的基礎。 當然,現在講求的是軟硬結合的時(shí)代,除了C語(yǔ)言最好還會(huì )這些東西: 看懂芯片手冊 有編寫(xiě),移植驅動(dòng)的能力 懂內核的實(shí)現機制 懂C語(yǔ)言,C++, JAVA等 這一階段才是真正的嵌入式編程,首先我們要選擇一款嵌入式CPU和一款嵌入式開(kāi)發(fā)平臺,目前ARM 嵌入式CPU應用最廣泛,這一階段重點(diǎn)是學(xué)習嵌入式CPU的裸機編程,熟悉中斷、定時(shí)器、串口、NAND FLASH、網(wǎng)絡(luò )控制器、LCD屏、觸摸屏等常用嵌入式外圍設備的硬件工作原理,以及如何使用C語(yǔ)言來(lái)編程、控制這些硬件。這一階段除了要學(xué)習對硬件編程之外,還需要學(xué)習嵌入式硬件的知識,但是對于嵌入式軟件工程師來(lái)講,重點(diǎn)是學(xué)習硬件的工作原理,在掌握硬件工作原理的基礎上,對硬件進(jìn)行編程控制。這和硬件工程師學(xué)習的側重點(diǎn)有所不同。這一階段對應的學(xué)校的課程主要包括模擬電路、數字電路、微機原理和單片機。這一階段重點(diǎn)是要看CPU的芯片手冊,大部分的參考書(shū)也是對芯片手冊的翻譯。 3、學(xué)習嵌入式系統的構建 這一階段主要學(xué)習帶有操作系統的嵌入式系統的構建,包括系統的啟動(dòng)流程、Bootloader的工作流程、UBOOT的編譯、裁剪與移植、嵌入式Linux內核的裁剪、移植與編譯,嵌入式根文件系統的定制、BootLoader、內核和根文件系統的燒寫(xiě)。這一階段的主要目的是掌握帶有操作系統的嵌入式系統的構建和燒寫(xiě)過(guò)程,以及對嵌入式系統軟件的總體構成有個(gè)整體認識,為我們接下來(lái)學(xué)習嵌入式應用和驅動(dòng)開(kāi)發(fā)打下堅實(shí)的基礎。 4、學(xué)習嵌入式Linux應用程序開(kāi)發(fā) 這一階段主要學(xué)習上層的嵌入式Linux應用程序開(kāi)發(fā),包括基于Linux多進(jìn)程、多線(xiàn)程、網(wǎng)絡(luò )、文件與目錄和QT編程。掌握嵌入式Linux環(huán)境下應用程序開(kāi)發(fā)技術(shù)。 5、學(xué)習嵌入式Linux驅動(dòng)程序開(kāi)發(fā) 這一階段主要學(xué)習底層嵌入式Linux設備驅動(dòng)程序開(kāi)發(fā)設計,包括常用的字符設備驅動(dòng)、塊設備驅動(dòng)、LCD設備驅動(dòng)、觸摸屏設備驅動(dòng)以及驅動(dòng)程序開(kāi)發(fā)中的核心技術(shù)。 如果你想乘風(fēng)新基建,如果你想突破自我,如果你想改變目前的工作狀態(tài),預約信盈達免費試聽(tīng)課,有需要加18025267692(微信)私聊免費體驗名師面對面教導,多年實(shí)戰經(jīng)驗傾囊相授,少走彎路! 6、根文件系統 在開(kāi)發(fā)應用程序時(shí),也需要搭建文件系統,把各種庫、配置文件放進(jìn)去;在發(fā)布產(chǎn)品時(shí),你還需要修改配置文件,使得產(chǎn)品可以自動(dòng)運行程序;甚至你想實(shí)現插上U盤(pán)后自動(dòng)啟動(dòng)某個(gè)程序,這也要要修改配置文件;這一切,都需要你理解根文件系統的構成,理解內核啟動(dòng)后是根據什么配置文件來(lái)啟動(dòng)哪些應用程序。根文件系統相對比較簡(jiǎn)單,可以根據以下路線(xiàn)學(xué)習: Linux根文件系統目錄結構 移植Busybox init進(jìn)程介紹及用戶(hù)程序啟動(dòng)過(guò)程 使用glibc庫 制作/使用文件系統映象文件 7、完成一個(gè)綜合項目 嵌入式技術(shù)關(guān)鍵在于理論和實(shí)踐的結合,要能夠學(xué)以致用,完成了以上的所有階段的知識點(diǎn)學(xué)習后,到底有沒(méi)有學(xué)會(huì ),會(huì )不會(huì )用,能不能應用所學(xué)知識來(lái)解決實(shí)際開(kāi)發(fā)中的問(wèn)題,我們需要來(lái)完成一個(gè)綜合的嵌入式實(shí)訓項目,例如:基于嵌入式Linux平臺實(shí)現的飛行器、 基于嵌入式Linux平臺實(shí)現的智能機器人等,這些項目都綜合應用了嵌入式開(kāi)發(fā)當中的應用,驅動(dòng)和QT開(kāi)發(fā)技術(shù)。
|