前言
ARM公司目前已成為全球最重要的科技公司之一,究其原因,一方面,它低功耗的技術(shù)路線與移動互聯(lián)時代的需求高度契合,另一方面源于其主導的龐大生態(tài)圈。在這個商業(yè)生態(tài)系統(tǒng)里,ARM公司并不直接從事芯片的設計和制造,不出售任何處理器。ARM公司有超過1000家授權(quán)合作伙伴,涉及領(lǐng)域從移動端到PC端、服務器端,再到汽車端、IoT端。基于ARM架構(gòu)的設備在智能手機、車聯(lián)網(wǎng)、物聯(lián)網(wǎng)等領(lǐng)域的市場份額超過 90%,同時憑借其低功耗、高性價比的優(yōu)勢,在計算機與服務器領(lǐng)域增長勢頭強勁。預計到2035年,將有超過1萬億臺智能電子設備實現(xiàn)互聯(lián),從各種傳感器、手機、家電、汽車,到通信基站、云服務器,可以說,基于ARM架構(gòu)的芯片無處不在。
基于ARM架構(gòu)開發(fā)產(chǎn)品的相關(guān)工作非常熱門,但是與這個領(lǐng)域相關(guān)的學習內(nèi)容跨度很大,涉及軟件、硬件、算法和操作系統(tǒng)等。對初學者來說,入門嵌入式開發(fā)很難,往往不知道從何入手,很容易就迷失了方向,甚至半途而廢,主要原因是很多初學者不清楚學習該領(lǐng)域知識的方法及路徑。本書為初學者提供了具體方法和實踐指導,希望對有志從事嵌入式開發(fā)的人員有所幫助。
本書具有以下特點。
一是循序漸進,由淺入深。本書針對零基礎的初學者,以FS4412開發(fā)板(基于ARM Cortex-A9架構(gòu))為例,首先從開發(fā)環(huán)境的安裝和配置及ARM基本指令等相關(guān)基礎知識開始講解,然后詳細說明常見硬件的功能原理,進而結(jié)合硬件原理圖、用戶手冊逐個分析這些硬件的驅(qū)動編程方法,最后介紹開源項目U-Boot的使用及啟動程序,使讀者將ARM相關(guān)知識點融會貫通。
二是實例豐富,內(nèi)容翔實。本書中包含大量匯編實例,且所有匯編指令都在KEIL軟件中測試過;硬件裸機驅(qū)動源程序均在開發(fā)板上調(diào)試過,并有詳細的分析注解;U-Boot的啟動源程序和U-Boot中的網(wǎng)絡協(xié)議棧也有詳細的程序注解,使讀者能夠復現(xiàn)實例,學以致用。
三是提供配套電子資源。本書的配套資源包含安裝工具、源程序、PPT課件等,讀者可到公眾號“一口Linux”后臺回復關(guān)鍵字“ARM”獲取。
在學習本書之前,讀者需要熟悉C語言編程并會使用一些常用的Linux命令。在學習本書的過程中,建議讀者帶著以下問題來閱讀本書。讀者在帶著問題學習本書時,能更加深入理解相關(guān)內(nèi)容,靈活進行項目開發(fā)。
(1) ARM有哪些工作模式?
(2)各設備驅(qū)動使用的寄存器有哪些?功能是什么?
(3)系統(tǒng)上電后,執(zhí)行的第一條指令是什么?
(4)在C語言環(huán)境下調(diào)用函數(shù)時,參數(shù)是如何傳遞的?
(5)當實現(xiàn)同樣的功能時,為什么有些C語言程序的執(zhí)行效率比匯編語言的高?
(6)異常源有哪些?
(7)什么是異常向量表?
(8)如何使能關(guān)閉中斷?
(9)中斷發(fā)生后CPU是如何處理的?
(10) CPU如何操作LED、按鍵、蜂鳴器、滑動變阻器、RTC、看門狗、MPU6050等常見外設并使它們有條不紊地工作?
(11) U-Boot的啟動流程是什么?如何實現(xiàn)程序自搬移?
(12) U-Boot是如何實現(xiàn)一個簡單的網(wǎng)絡協(xié)議棧的?
本書能夠順利出版首先要感謝公眾號“裸機思維”的創(chuàng)始人—王卓然,他提供了部分章節(jié)的技術(shù)支持,還要感謝華清遠見的硬件平臺提供了高質(zhì)量的技術(shù)資料。由于編者編寫時間緊迫,加之水平所限,書中不妥之處在所難免,懇請讀者批評指正。對于本書提出批評和建議,可以在公眾號“一口Linux”下留言,歡迎交流。
彭丹、周海濤于南京
2022年11月
- QTP從實踐到精通
- 數(shù)字化轉(zhuǎn)型架構(gòu):方法論與云原生實踐
- 卡爾曼濾波原理及應用:MATLAB仿真(第2版)
- CATIA V5 從入門到精通(第二版)
- 多面體編譯理論與深度學習實踐
- 大規(guī)模組織DevOps實踐(第2版)
- 區(qū)塊鏈核心算法解析
- 嵌入式軟件測試:方法、案例與模板詳解
- 軟件平臺架構(gòu)設計與技術(shù)管理之道
- OpenGL ES 2.0游戲開發(fā)(上卷)
- Vue.js 3企業(yè)級項目開發(fā)實戰(zhàn)(微課視頻版)
- 容器即服務:從零構(gòu)建企業(yè)級容器集群
- MLOps實踐:機器學習從開發(fā)到生產(chǎn)
- 軟件工程
- 安卓Frida逆向與協(xié)議分析