舉報(bào)

會(huì)員
從零開始學(xué)ARM
最新章節(jié):
17.2.3 舉例
本書主要介紹ARM開發(fā)的相關(guān)知識(shí),詳細(xì)講解常用的ARM指令及如何基于ARM架構(gòu)的外設(shè)編寫驅(qū)動(dòng)程序,并分析了開源軟件U-Boot的啟動(dòng)源代碼和網(wǎng)絡(luò)協(xié)議棧。本書第1~4章為基礎(chǔ)篇,主要介紹CPU與ARM、搭建環(huán)境、ARM編程、異常等;第5~13章為編程篇,主要介紹基于Exynos4412的常用外設(shè)的工作原理及驅(qū)動(dòng)程序編寫等;第14~17章為應(yīng)用篇,主要介紹開源軟件U-Boot的使用及啟動(dòng)程序,并分析網(wǎng)卡DM9000AE的驅(qū)動(dòng)和網(wǎng)絡(luò)協(xié)議棧;以及關(guān)于匯編的兩點(diǎn)補(bǔ)充。本書適合從事嵌入式開發(fā)的工程師和有一定計(jì)算機(jī)基礎(chǔ)和C語言編程經(jīng)驗(yàn)的初學(xué)者學(xué)習(xí)參考。
目錄(251章)
倒序
- 封面
- 版權(quán)信息
- 內(nèi)容提要
- 前言
- 基礎(chǔ)篇
- 第1章 CPU與ARM
- 1.1 CPU
- 1.1.1 CPU概述
- 1.1.2 計(jì)算機(jī)結(jié)構(gòu)
- 1.1.3 CPU的組成
- 1.1.4 指令的運(yùn)行
- 1.2 ARM
- 1.2.1 ARM的發(fā)展史
- 1.2.2 ARM架構(gòu)
- 1.2.3 ARM處理器
- 1.3 SoC
- 第2章 搭建環(huán)境
- 2.1 KEIL軟件安裝
- 2.1.1 KEIL、μVision、MDK之間的關(guān)系
- 2.1.2 安裝KEIL
- 2.1.3 創(chuàng)建工程
- 2.1.4 編譯程序
- 2.1.5 如何debug程序
- 2.2 編譯環(huán)境搭建
- 2.2.1 安裝VMware Workstation
- 2.2.2 安裝ubuntu
- 2.3 交叉編譯工具安裝
- 第3章ARM編程
- 3.1 ARM指令格式
- 3.2 數(shù)據(jù)處理指令
- 3.2.1 mov指令
- 3.2.2 移位操作
- 3.2.3 cmp比較指令
- 3.2.4 tst條件指令
- 3.2.5 運(yùn)算指令
- 3.3 跳轉(zhuǎn)指令
- 3.4 訪問程序狀態(tài)寄存器指令
- 3.4.1 mrs指令
- 3.4.2 msr指令
- 3.4.3 綜合實(shí)例
- 3.5 訪問外部寄存器指令
- 3.5.1 ldr指令
- 3.5.2 str指令
- 3.5.3 ldrb指令
- 3.5.4 ldrh指令
- 3.6 ARM尋址方式
- 3.7 GNU書寫風(fēng)格
- 3.7.1 MDK書寫風(fēng)格與GNU書寫風(fēng)格
- 3.7.2 標(biāo)號(hào)symbol(或label)
- 3.7.3 語句格式
- 3.7.4 分段
- 3.8 偽操作
- 3.8.1 數(shù)據(jù)定義偽操作
- 3.8.2 匯編控制偽操作
- 3.8.3 .if.else.end if
- 3.8.4 雜項(xiàng)偽操作
- 3.9 GNU程序的編譯
- 3.9.1 交叉編譯工具
- 3.9.2 交叉編譯工具命名規(guī)則
- 3.9.3 程序編譯過程
- 3.9.4 編譯選項(xiàng)
- 3.9.5 elf與bin文件
- 3.9.6 編譯舉例
- 3.10 ATPCS和AAPCS
- 3.11 內(nèi)聯(lián)匯編
- 3.12 C語言和匯編語言相互調(diào)用舉例
- 第4章 異常
- 4.1 異常基礎(chǔ)知識(shí)
- 4.2 異常處理
- 4.2.1 異常發(fā)生后硬件操作
- 4.2.2 異常向量表
- 4.2.3 保存執(zhí)行現(xiàn)場(chǎng)
- 4.2.4 異常處理的返回
- 4.2.5 異常恢復(fù)
- 4.3 中斷異常
- 4.3.1 中斷概念
- 4.3.2 中斷處理流程
- 4.4 軟中斷
- 4.4.1 swi指令
- 4.4.2 bkpt指令
- 4.4.3 舉例
- 4.4.4 同時(shí)執(zhí)行跳轉(zhuǎn)指令并切換模式
- 4.4.5 獲取中斷號(hào)
- 編程篇
- 第5章 GPIO及LED
- 5.1 GPIO
- 5.1.1 Exynos 4412 GPIO的特性
- 5.1.2 LED電路圖
- 5.1.3 如何操作GPIO
- 5.2 LED驅(qū)動(dòng)程序編寫
- 5.2.1 匯編程序
- 5.2.2 C語言程序?qū)崿F(xiàn)
- 5.2.3 燒寫程序
- 第6章 PWM
- 6.1 Exynos 4412 PWM
- 6.1.1 PWM基礎(chǔ)知識(shí)
- 6.1.2 Exynos 4412 PWM的特性
- 6.1.3 PWM的工作步驟
- 6.2 蜂鳴器驅(qū)動(dòng)程序編寫
- 6.2.1 參考電路
- 6.2.2 寄存器
- 6.2.3 程序?qū)崿F(xiàn)
- 第7章 中斷
- 7.1 GIC
- 7.1.1 分發(fā)器
- 7.1.2 CPU接口
- 7.1.3 中斷處理
- 7.2 按鍵驅(qū)動(dòng)程序編寫
- 7.2.1 電路圖
- 7.2.2 配置按鍵為中斷觸發(fā)方式
- 7.2.3 寄存器
- 7.2.4 程序?qū)崿F(xiàn)
- 7.3 輪詢方式
- 第8章 UART
- 8.1 UART概述
- 8.1.1 UART通信方式
- 8.1.2 UART數(shù)據(jù)幀格式
- 8.2 Exynos 4412 UART控制器
- 8.2.1 UART的特性
- 8.2.2 UART內(nèi)部功能模塊
- 8.2.3 時(shí)鐘源
- 8.3 UART的操作
- 8.3.1 參考電路
- 8.3.2 寄存器
- 8.3.3 程序?qū)崿F(xiàn)
- 8.3.4 移植printf
- 第9章 RTC
- 9.1 Exynos 4412 RTC
- 9.1.1 Exynos 4412 RTC的特性
- 9.1.2 RTC模塊
- 9.1.3 備用電池
- 9.1.4 晶體振蕩器
- 9.2 RTC寄存器
- 9.3 RTC的操作
- 9.4 程序?qū)崿F(xiàn)
- 第10章 看門狗
- 10.1 Exynos 4412 看門狗
- 10.1.1 看門狗模塊圖
- 10.1.2 工作原理
- 10.2 驅(qū)動(dòng)編寫
- 10.2.1 看門狗軟件程序設(shè)計(jì)流程
- 10.2.2 看門狗寄存器設(shè)置
- 10.2.3 程序?qū)崿F(xiàn)
- 第11章 ADC
- 11.1 信號(hào)基礎(chǔ)知識(shí)
- 11.1.1 信號(hào)分類
- 11.1.2 脈沖編碼調(diào)制(PCM)
- 11.2 Exynos 4412 ADC控制器
- 11.2.1 Exynos 4412 ADC控制器的特性
- 11.2.2 ADC控制器寄存器
- 11.2.3 中斷組合器
- 11.2.4 A/D轉(zhuǎn)換時(shí)間計(jì)算
- 11.3 程序?qū)崿F(xiàn)
- 11.3.1 參考電路
- 11.3.2 程序?qū)崿F(xiàn)
- 第12章 I2C
- 12.1 I2C總線
- 12.1.1 開始條件和停止條件
- 12.1.2 數(shù)據(jù)有效性
- 12.1.3 數(shù)據(jù)傳輸格式
- 12.2 Exynos 4412 I2C控制器
- 12.2.1 Exynos 4412 I2C控制器概述
- 12.2.2 Exynos 4412 I2C總線接口的特點(diǎn)
- 12.2.3 數(shù)據(jù)讀寫格式
- 12.2.4 數(shù)據(jù)讀寫流程
- 12.2.5 I2C總線控制器寄存器
- 12.3 MPU6050及驅(qū)動(dòng)程序編寫
- 12.3.1 MPU6050
- 12.3.2 MPU6050參考電路
- 12.3.3 MPU6050內(nèi)部寄存器
- 12.3.4 程序?qū)崿F(xiàn)
- 第13章 SPI
- 13.1 SPI基礎(chǔ)知識(shí)
- 13.1.1 SPI的特點(diǎn)
- 13.1.2 極性和相位
- 13.1.3 數(shù)據(jù)交換
- 13.2 Exynos 4412 SPI控制器
- 13.3.1 參考電路
- 13.3.2 寄存器
- 13.3.3 初始化流程
- 13.3.4 收發(fā)數(shù)據(jù)流程
- 13.4 MCP2515
- 13.4.1 MCP2515簡(jiǎn)介
- 13.4.2 MCP2515的特點(diǎn)
- 13.4.3 結(jié)構(gòu)框圖
- 13.4.4 SPI 協(xié)議模塊
- 13.4.5 SPI 指令集
- 13.4.6 MCP2515初始化
- 13.4.7 數(shù)據(jù)發(fā)送
- 13.4.8 數(shù)據(jù)接收
- 13.4.9 MCP2515驅(qū)動(dòng)程序?qū)崿F(xiàn)
- 應(yīng)用篇
- 第14章 U-Boot
- 14.1 U-Boot概述
- 14.1.1 U-Boot的特性
- 14.1.2 工作模式
- 14.1.3 U-Boot常用命令
- 14.1.4 配置舉例
- 14.2 U-Boot源程序
- 14.2.1 U-Boot源程序簡(jiǎn)介
- 14.2.2 U-Boot源程序配置
- 14.2.3 U-Boot源程序編譯
- 14.3 移植硬件驅(qū)動(dòng)
- 14.3.1 實(shí)現(xiàn)串口輸出
- 14.3.2 移植網(wǎng)卡驅(qū)動(dòng)
- 14.3.3 移植Flash
- 14.4 制作SD卡
- 14.4.1 燒寫腳本
- 14.4.2 制作SD卡的步驟
- 14.4.3 通過SD卡啟動(dòng)燒寫U-Boot
- 14.4.4 網(wǎng)絡(luò)燒寫U-Boot
- 第15章 U-Boot程序啟動(dòng)分析
- 15.1 內(nèi)核啟動(dòng)流程概述
- 15.1.1 U-Boot啟動(dòng)Linux內(nèi)核一般流程
- 15.1.2 Exynos 4412內(nèi)存映射
- 15.1.3 啟動(dòng)順序
- 15.1.4 SD卡鏡像布局
- 15.1.5 Ids文件
- 15.2 U-Boot啟動(dòng)流程程序詳解
- 15.2.1 U-Boot啟動(dòng)程序流程
- 15.2.2 U-Boot啟動(dòng)詳解
- 第16章 網(wǎng)卡DM9000AE
- 16.1 網(wǎng)卡概述
- 16.2 DM9000AE
- 16.2.1 DM9000AE概述
- 16.2.2 引腳說明
- 16.2.3 DM9000AE內(nèi)部寄存器
- 16.3 SROM 控制器
- 16.3.1 SROM控制器概述
- 16.3.2 寄存器SROM_BW和SROM_BC
- 16.3.3 配置SROM功能
- 16.3.4 SROM初始化
- 16.4 DM9000AE驅(qū)動(dòng)分析
- 16.4.1 網(wǎng)卡注冊(cè)
- 16.4.2 相關(guān)結(jié)構(gòu)體
- 16.4.3 網(wǎng)卡的初始化
- 16.4.4 數(shù)據(jù)的發(fā)送
- 16.4.5 數(shù)據(jù)的接收
- 16.4.6 網(wǎng)卡注銷
- 16.5 U-Boot中的網(wǎng)絡(luò)協(xié)議棧
- 第17章 關(guān)于匯編的兩點(diǎn)補(bǔ)充
- 17.1 為什么使用結(jié)構(gòu)體效率會(huì)高
- 17.1.1 定義多個(gè)全局變量
- 17.1.2 使用結(jié)構(gòu)體
- 17.1.3 文字池
- 17.1.4 繼續(xù)優(yōu)化
- 17.2 位置無關(guān)碼
- 17.2.1 為什么需要位置無關(guān)碼
- 17.2.2 如何編寫位置無關(guān)碼
- 17.2.3 舉例 更新時(shí)間:2025-01-16 18:00:17
推薦閱讀
- pytest框架與自動(dòng)化測(cè)試應(yīng)用
- Revit 2020中文版從入門到精通
- 大數(shù)據(jù)處理系統(tǒng):Hadoop源代碼情景分析
- DevOps:企業(yè)級(jí)CI/CD實(shí)戰(zhàn)
- 開發(fā)者關(guān)系:方法與實(shí)踐
- Android5.0新特性實(shí)戰(zhàn)
- Scrum敏捷軟件開發(fā)
- 偉大的小細(xì)節(jié):互聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)中的微創(chuàng)新思維
- 多面體編譯理論與深度學(xué)習(xí)實(shí)踐
- 統(tǒng)信UOS應(yīng)用開發(fā)詳解
- UG NX 8.0實(shí)例教程(第2版)
- Spring Boot趣味實(shí)戰(zhàn)課
- Vue.js 3企業(yè)級(jí)項(xiàng)目開發(fā)實(shí)戰(zhàn)(微課視頻版)
- 像計(jì)算機(jī)科學(xué)家一樣思考C++
- Flex 4.0 RIA開發(fā)寶典
- 零基礎(chǔ)輕松學(xué)Python:青少年趣味編程(全彩版)
- Cucumber:行為驅(qū)動(dòng)開發(fā)指南
- MLOps實(shí)踐:機(jī)器學(xué)習(xí)從開發(fā)到生產(chǎn)
- AR Foundation增強(qiáng)現(xiàn)實(shí)開發(fā)實(shí)戰(zhàn)(ARKit版)
- DevOps開發(fā)運(yùn)維訓(xùn)練營(yíng)
- 安卓Frida逆向與協(xié)議分析
- 中文版 Pro-ENGINEER野火5.0 技術(shù)大全
- 深入淺出全鏈路壓測(cè)
- 從零開始學(xué)ARM
- 敏捷開發(fā)(紀(jì)念版)
- Istio最佳實(shí)戰(zhàn)
- MapReduce 2.0源碼分析與編程實(shí)戰(zhàn)
- Vue.js+Node.js全棧開發(fā)實(shí)戰(zhàn)(第2版)
- 企業(yè)應(yīng)用架構(gòu)模式(典藏版)
- HTML5基礎(chǔ)開發(fā)教程