因ARM的32位元微控制器IP核其卓越的性能和良好的扩充性,为广大设计者偏好,所以目前大多数的半导体公司都推出了自己的ARMSOC晶片,而ARM晶片构造里的32位元嵌入式系统成为一个重要的部分,本书由浅入深的方式来使读者对ARM系统有全面性的了解及认知,内容涵盖了ARM晶片嵌入式系统设计原理及其具体应用,并透过大量实例介绍视窗函数及Nano-X中字体的处理、影像绘制等的应用。本书适合半导体相关业界人员或有兴趣的读者阅读。
本书特色
1. 由浅入深的方式来使读者对ARM系统有全面性的了解及认知。
2. 使用大量实例对视窗函数以及Nano-X中字体的处理、影像绘制、讯息传递等有详细介绍。
第1章 ARM系统结构 1-1
1.1 ARM处理器概述 1-1
1.1.1 ARM产品背景 1-1
1.1.2 ARM处理器系列介绍 1-2
1.1.3 ARM处理器系统结构扩展 1-3
1.2 ARM系统结构概述 1-4
1.2.1 ARM系统结构版本 1-4
1.2.2 资料类型 1-5
1.2.3 处理器模式 1-6
1.2.4 暂存器 1-7
1.2.5 通用暂存器 1-7
1.2.6 程式状态暂存器 1-10
1.2.7 异 常 1-14
1.2.8 ARM程序唿叫标准(APCS)简介 1-19
1.3 ARM指令集 1-23
1.3.1 条件执行 1-23
1.3.2 ARM指令集列表 1-25
1.3.3 32位元程式码基本规则 1-60
1.3.4 ARM指令应用举例 1-61
1.4 Thumb指令集 1-63
1.4.1 Thumb指令集概述 1-63
1.5 IEEE浮点指令集简介 1-78
1.6 ARM指令时序 1-86
1.7 32位元ARM处理器除错技术 1-88
1.7.1 边界扫描技术(JTAG) 1-88
1.7.2 ARM晶片的即时除错方案(E-TRACE) 1-89
1.7.3 Nexus标准 1-89
第2章 组合语言程式设计 2-1
2.1 组合语言程式结构 2-1
2.1.1 基于GCC编译器的组合语言程式结构 2-2
2.1.2 基于CodeWarrior的组合语言程式结构 2-4
2.2 号资料定义与资料结构 2-6
2.2.1 号命名规则 2-6
2.2.2 数值常数的使用与EQU指令 2-6
2.3 变 数 2-7
2.3.1 数值变数和数值运算式 2-7
2.3.2 逻辑变数和逻辑运算式 2-9
2.3.3 字串变数和字串运算式 2-10
2.3.4 变数记忆体空间分配 2-10
2.3.5 变数初始化 2-10
2.4 资料区分配和管理 2-11
2.4.1 使用SPACE分配记忆体区域 2-11
2.4.2 使用DCB分配一个或多个位元组的记忆体区域 2-12
2.4.3 使用ALIGN对齐记忆体资料 2-12
2.4.4 分配一个或多个字的记忆体区域 2-13
2.5 资料结构的描述 2-14
2.5.1 使用MAP和FIELD描述资料结构 2-14
2.5.2 相对地址 2-16
2.5.3 综合实例 2-17
2.6 分支与转移组合语言程式设计 2-19
2.6.1 简单分支结构 2-19
2.6.2 复杂的分支结构 2-20
2.7 使用跳跃表解决分支转移 2-23
2.7.1 程式实例 2-23
2.7.2 什么是跳跃表 2-25
2.7.3 如何使用跳跃表 2-26
2.8 使用跳跃实作回圈 2-27
2.8.1 透过条件跳跃实作do…while回圈 2-27
2.8.2 透过条件跳跃实作while回圈 2-28
2.8.3 多重回圈程式设计 2-28
2.9 模组化程式设计 2-30
2.9.1 简单函数唿叫例子 2-31
2.9.2 暂存器保护 2-33
2.9.3 参数传递 2-33
2.9.4 函数跳跃表 2-34
2.9.5 使用巨集定义实作函数功能 2-36
2.9.6 和函数相关的虚拟指令 2-37
2.10 高阶语言和组合语言的混合程式设计 2-38
2.10.1 嵌入式组合语言语句 2-39
2.10.2 高阶语言和组合语言函数间的相互唿叫 2-41
2.11 其他常见的虚拟指令 2-43
第3章 ARM系统启动程式码分析和开发 3-1
3.1 ARM的异常与RESET 3-1
3.2 了解与启动相关的硬体资讯与开发手段 3-3
3.3 C/C++语言开发和执行环境 3-4
3.3.1 工具链准备 3-4
3.3.2 GNU环境简介 3-6
3.3.3 C语言执行环境 3-8
3.3.4 一个简单boot程式码例子 3-11
3.4 BOOT程式码分析 3-16
3.4.1 U-BOOT简介 3-16
3.4.2 程式码分析和移植相关 3-20
3.5 韧体开发除错方法 3-29
第4章 即时操作系统在ARM上的移植 4-1
4.1 即时操作系统简介 4-1
4.2 μC/OS-II作业系统 4-2
4.2.1 μC/OS-II介绍 4-2
4.2.2 μC/OS-II应用程式开发 4-3
4.2.3 μC/OS-II移植 4-6
4.3 eCos简介及移植介绍分析 4-24
4.3.1 eCos简介 4-24
4.3.2 eCos的移植介绍 4-25
第5章 基于ARM的网路协定堆叠实作 5-1
5.1 协定堆叠实作结构 5-2
5.1.1 系统硬体驱动程式 5-3
5.1.2 znet协定初始化 5-5
5.1.3 znet协定主任务 5-7
5.2 协定实作模组程式码分析 5-10
5.2.1 全域资料结构和μC/OS-II中的介面 5-10
5.2.2 全域缓冲管理模组 5-15
5.2.3 协定主任务和驱动交互的模组 5-20
5.2.4 ARP实作模组及主任务的IP资料分发 5-24
5.2.5 ICMP实作模组 5-34
5.2.6 API实作模组 5-38
5.2.7 UDP实作模组 5-48
5.2.8 TCP实作模组 5-55
5.3 协定堆叠实作回顾 5-68
第6章 外部汇流排与音频系统设计 6-1
6.1 IIC(I2C)汇流排基本原理 6-1
6.1.1 起始和停止条件 6-2
6.1.2 资料传输 6-3
6.1.3 读写操作 6-3
6.2 I2S音频设备汇流排的原理和应用 6-4
6.2.1 I2S汇流排简介 6-4
6.2.2 I2S汇流排协定 6-5
6.2.3 基于I2S介面的音频系统硬体设计 6-7
6.2.4 基于Cirrus Logic公司多媒体ARM晶片的音频系统设计 6-8
6.3 音频设备驱动 6-10
6.3.1 音频设备基础知识 6-10
6.3.2 Linux驱动程式结构 6-11
6.3.3 音频设备档 6-13
6.3.4 程式和音频设备间的通信过程 6-16
6.3.5 设备的初始化和卸载 6-17
6.3.6 设备打开常式open() 6-20
6.3.7 记忆体映对和mmap常式 6-22
6.3.8 暂存区的设计 6-26
6.3.9 ioctl系统唿叫 6-30
6.3.10 音频资料的播放和录制常式 6-33
6.4 音频应用程式的设计 6-36
6.4.1 音频应用程式基本框架 6-36
6.4.2 音频参数设置 6-38
6.4.3 混频器(Mixer)基础 6-44
6.4.4 综合应用实例 6-47
6.4.5 音频应用程式设计注意事项 6-55
第7章 快闪记忆体晶片与嵌入式档案系统 7-1
7.1 快闪记忆体的物理特性 7-1
7.2 嵌入式档案系统概述 7-3
7.3 NAND设备驱动程式 7-4
7.3.1 NAND晶片 7-4
7.3.2 NAND控制器 7-9
7.3.3 NAND设备MTD程式制作 7-11
7.4 NOR设备驱动 7-16
7.4.1 NOR晶片 7-16
7.4.2 通用快闪记忆体介面(CFI) 7-17
7.5 针对快闪记忆体晶片的档案系统 7-21
7.5.1 用于中间层TrueFFS 7-22
7.5.2 让TrueFFS和引导磁区共用快闪记忆体 7-24
7.5.3 TrueFFS的配置与使用 7-25
7.5.4 在使用TrueFFS的快闪记忆体上面安装Linux 7-27
7.6 JFFS/JFFS2档案系统 7-31
7.6.1 日志档案系统储存结构 7-32
7.6.2 JFFS2 7-35
7.6.3 在Linux中使用JFFS/JFFS2 7-41
7.6.4 MTD的其他用法:使用RAMDISK制作启动核心 7-45
7.7 YAFFS档案系统 7-47
7.7.1 YAFFS的下载与安装 7-47
7.7.2 YAFFS与JFFS/JFFS2的不同点 7-49
7.7.3 YAFFS实作机制 7-50
第8章 嵌入式图形使用者介面基础 8-1
8.1 LCD显示器基本原理 8-1
8.2 嵌入式GUI 8-3
8.2.1 MiniGUI 8-3
8.2.2 Microwindows 8-4
8.2.3 Microwindows_0.90_release的安装 8-5
8.3 Microwindows的系统结构 8-13
8.3.1 设备驱动 8-13
8.3.2 MicroGUI—设备无关图形引擎 8-19
8.3.3 Microwindows的应用程式介面API 8-21
8.4 图形引擎层 8-22
8.5 编译环境的选项(Makefile档设置) 8-28
8.6 基于Microwindows类型的API的程式设计 8-30
8.6.1 视窗的基本元素 8-30
8.6.2 “Hello world”,你的第一个Microwindows程式 8-31
8.6.3 图形绘制函数小节 8-42
8.6.4 Microwindows API的优缺点 8-43
第9章 基于Nano-X的嵌入式GUI设计 9-1
9.1 Client/Server模式 9-1
9.2 Nano-X风格的“Hello World” 9-3
9.3 Nano-X视窗管理器 9-8
9.4 程式中使用点阵图资源 9-9
9.4.1 将点阵图变成C语言原始程式 9-9
9.4.2 影像尺寸 9-9
9.4.3 影像显示 9-10
9.4.4 编译执行 9-12
9.5 从档中载入图片 9-13
9.6 文字输出与字体 9-15
9.6.1 文字输出函数 9-15
9.6.2 字体的基础知识 9-15
9.6.3 字体识别字 9-16
9.7 高阶使用者介面设计 9-20
9.7.1 事件回应 9-20
9.7.2 窗口间通信 9-23
9.7.3 多视窗应用程式 9-23
9.7.4 视窗控制项 9-28
9.7.5 游戏制作 9-37
這次入手這本《ARM 嵌入式系統開發與應用》,讓我對 ARM 處理器有了全新的認識。過去我對 ARM 的印象,總覺得它比較偏向手機、平板這些消費級產品,但這本書讓我了解到,ARM 的觸角早已深入到工業控制、汽車電子、醫療設備等各個專業領域。書中對 ARM 處理器核心的介紹,從指令集到記憶體管理,都講得非常細膩,甚至還探討了一些進階的主題,例如快取機制和流水線的優化。我特別欣賞的是,作者並沒有只停留在理論層面,而是緊密結合了實際的開發板和工具鏈,這讓學習過程不會變得枯燥乏味。書中提供的程式碼範例,不僅展示了如何操作特定的硬體資源,更融入了一些軟體架構的設計思維,這對我提升程式碼品質非常有幫助。我認為這本書最大的價值在於,它不僅僅是一本技術手冊,更像是一位經驗豐富的老師,循循善誘地引導讀者理解 ARM 嵌入式系統的精髓。尤其在「中斷處理」和「定時器應用」的部分,我以前總覺得有些概念模糊,透過書中的詳細講解和圖示,我終於豁然開朗。對於正在 ARM 嵌入式領域尋找突破的開發者,或者想深入了解 ARM 架構優勢的技術愛好者,這本書絕對是不可多得的寶藏。
评分拿到《ARM 嵌入式系統開發與應用》這本書,我最先注意到的是它在「除錯與測試」這個部分投入了相當多的篇幅。對於嵌入式開發者來說,除錯絕對是一大挑戰,而這本書從硬體除錯(例如 JTAG、SWD)到軟體除錯(例如調試器、日誌分析),都做了非常詳盡的介紹。書中還提供了許多實際的除錯案例,展示了如何快速定位和解決常見的 bug,這對我來說是極大的幫助。我過去在除錯時,常常是大海撈針,效率很低,但透過這本書的指導,我現在能夠更有系統地去分析問題。此外,書中還介紹了「單元測試」和「整合測試」的方法,這有助於提高程式碼的穩定性和可靠性。我特別喜歡的是書中對於「硬體加速」和「DSP 指令」的講解,這讓我知道如何更有效地利用 ARM 處理器的特性來提升程式的執行效率,這對於需要處理大量數據的應用來說至關重要。書中的內容涵蓋了從底層硬體到上層應用,並且非常注重實踐性,這讓學習過程更加紮實。對於那些渴望成為更優秀的嵌入式開發者的朋友們,這本書絕對能讓你事半功倍,找到提升能力的關鍵。
评分不得不說,《ARM 嵌入式系統開發與應用》這本書的內容真是讓我眼睛一亮。過去我接觸嵌入式開發,常常被各家廠商的專有架構搞得頭昏腦脹,但 ARM 的通用性讓開發變得相對容易,而這本書恰恰抓住了這個核心優勢。它從 ARM 架構的演進歷史開始講起,讓讀者對其不斷發展的技術有了整體性的認識。書中對於不同核心(例如 Cortex-M 系列、Cortex-A 系列)的特性分析,以及它們在不同應用場景下的適用性,都寫得非常到位。我個人比較關注的「即時作業系統在 ARM 上的移植與優化」這個主題,在書中得到了相當詳盡的闡述,包含了 RTOS 的選擇、核心功能的實現,以及各種調試技巧。這對我正在進行的物聯網專案來說,無疑是雪中送炭。書中的圖表和流程圖製作得很精美,能夠清晰地展示複雜的硬體和軟體交互關係,這對於我理解硬體底層的工作原理非常有幫助。而且,作者在講解一些進階概念時,並沒有使用過於生僻的術語,而是力求用通俗易懂的方式來表達,這使得這本書適合不同層次的讀者。我強烈推薦給任何對 ARM 嵌入式開發感興趣的朋友,這絕對是一本能讓你事半功倍的好書。
评分這本《ARM 嵌入式系統開發與應用》的書,拿到手的第一印象就覺得厚實,封面設計走的是比較沉穩、專業路線,跟我之前看過的一些技術書籍不太一樣。翻開目錄,感覺涵蓋的範圍相當廣,從 ARM 架構的基礎原理,到各種周邊硬體的控制,再到實際的應用案例,都寫得頗為深入。尤其看到「即時作業系統」跟「驅動程式開發」那幾章,實在太吸引我了,因為我目前工作上正需要加強這方面的能力。過去我多半是摸索著學,很多細節都抓不太準,但這本書的結構安排,感覺像是從零開始,一步一步帶你走進 ARM 嵌入式系統的世界,即使是初學者,應該也能找到清晰的學習路徑。書中的範例程式碼看起來也很扎實,不是那種簡單帶過的示意,而是有實際可操作性的。對於我這種需要從理論走向實踐的工程師來說,這本書的實用性絕對是首選。我最期待的,是書中關於「低功耗設計」的章節,這在很多穿戴裝置和物聯網應用上都是關鍵,希望能從中學到一些技巧,讓我的專案能做得更省電。總之,這本書的內容深度和廣度都讓人印象深刻,對於想在 ARM 嵌入式領域深耕的讀者,絕對值得入手,我相信它會成為我案頭必備的參考書。
评分這本《ARM 嵌入式系統開發與應用》完全顛覆了我對嵌入式開發書籍的刻板印象。傳統的技術書籍,往往會讓人覺得枯燥乏味,但這本書卻充滿了實際的案例和生動的講解。作者在介紹 ARM 處理器的高性能與低功耗優勢時,提供了非常具體的性能指標和功耗數據,讓人對 ARM 的能力有了更直觀的感受。我尤其欣賞書中關於「嵌入式Linux系統開發」的章節,它詳細介紹了如何搭建交叉編譯環境、如何配置内核,以及如何編寫用戶空間的應用程式。這對於我這個原本對 Linux 嵌入式開發不太熟悉的開發者來說,簡直就是一本「聖經」。書中對於「設備樹」的講解,更是讓我解決了長期以來困擾我的硬體配置問題。此外,書中還涉及了「網路通訊」和「感測器整合」等主題,這些都是當前嵌入式系統開發中非常熱門的應用方向。作者不僅講解了技術原理,更分享了許多實用的開發經驗和調試技巧,這讓我在遇到問題時,能更快地找到解決方案。我認為,這本書的價值不僅在於其技術內容的豐富,更在於它能夠啟發讀者的思考,幫助讀者建立起完整的嵌入式系統開發觀念。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 ttbooks.qciss.net All Rights Reserved. 小特书站 版权所有