編輯推薦
本書嚮讀者介紹嵌入式C語言開發以及嵌入式係統的微處理器架構的相關知識。本書的目的是嚮讀者循序漸進地展示嵌入式係統的項目的整體設計,從而掌握係統設計的能力和牢固的理論知識。
本書中采用瞭BeMicro Max10開發闆,該開發闆可以實現硬件的重構,因此可以用它來完成各種不同硬件架構下的實驗。
本書可以作為嵌入式C語言開發的入門讀物。它並不僅僅是一本學習嵌入式C語言開發的教材,也是在嵌入式係統中使用那些神奇的傳感器做實驗時的好助手。本書所對應的強化課程和遠程課程詳見http://www.agstu.se。本書中硬件設計都可以在http://lowlevelcprogramming.agstu.com/下載。
+ 本書具有以下特色
● 每個案例都來自真實的工程項目;
● 全書實例都堅持理論和實踐相結閤;
● 針對C語言位操作的精彩講解;
● 如何編寫高效的C語言代碼;
● 設備驅動以及驅動闆級支持包(BSP)的編寫;
● 輪轉係統和中斷係統;
● 模擬信號轉換器和BeMicro Max10可重構硬件開發闆的相關內容;
● 可使用免費的Altera SW專業開發工具來實現本書中的所有實例。
內容簡介
嵌入式係統一般指非PC係統,它包括硬件和軟件兩部分。嵌入式産品應用領域極為廣泛,並且具備非常好的發展前景!
本書緻力於使用微控製器來設計嵌入式係統,全書包含8章內容,介紹瞭嵌入式軟件設計基礎理論,還提供瞭多個C語言的編程示例。通過理論與實踐相結閤的方式,本書可以幫助讀者快速掌握嵌入式開發的核心技巧。
本書適閤嵌入式開發人員以及想要學習嵌入式C語言開發的學生和普通程序員閱讀。
作者簡介
Lars Bengtsson博士目前在哥德堡大學擔任副教授,他編寫瞭一些電子、編程、嵌入式係統以及電子測量係統方麵的書籍。Lars Bengtsson博士的研究領域主要是嵌入式測量係統以及儀器芯片研製。
Lennart Lindh目前是一名從事教育行業的副教授,他在多所大學從事研究和FPGA産品的研發。他知名的成果是一款可以用於單處理器和多處理器係統的基於實時內核的硬件産品。他還是FPGAworld會議(www.fpgaworld.com)的組織者,並為嵌入式軟件硬件係統設計課程。
目錄
第1章 嵌入式係統簡介 1
1.1 嵌入式計算機係統 1
1.2 應用程序和平颱 6
1.3 復雜度降低 7
1.3.1 抽象 8
1.3.2 結構 9
1.3.3 層次結構 10
1.4 硬件 - FPGA設備 10
1.4.1 軟件 11
1.4.2 硬件和軟件之間的接口 12
1.5 軟件開發工具 14
1.5.1 編譯器 15
1.5.2 鏈接器 15
1.6 YouTube的推薦資源 16
第2章 硬件與軟件的安裝 17
2.1 軟件(IDE) 18
2.2 硬件平颱 19
2.2.1 BeMicro MAX 10開發闆 19
2.2.2 係統時鍾 21
2.2.3 LED和按鈕 22
第3章 案例1 24
3.1 硬件架構 - 案例1A 24
3.1.1 CPU Nios II 25
3.1.2 Avalon總綫 27
3.1.3 JTAG UART 28
3.2 設計案例 1A 29
3.2.1 介紹 29
3.2.2 案例1A:硬件部分 29
3.2.3 實現 31
3.3 設計案例1B 43
3.3.1 理論:調試、監控和仿真 43
3.3.2 傳統的軟件調試 44
3.3.3 案例1B:使用調試器 46
3.3.4 案例1B:軟件調試 49
3.4 設計案例1C:嵌入式C語言開發 55
3.4.1 理論:二進製格式和ASCII碼 55
3.4.2 理論:Altera專用軟件“HAL(硬件抽象層)” 57
3.4.3 理論:內存映射 60
3.4.4 PIO理論(並行輸入/輸齣) 61
3.4.5 理論:C語言中的位操作 62
3.4.6 理論:使用鍵盤和終端進行輸入和輸齣 67
3.4.7 案例1C:內存映射與硬件 69
3.4.8 案例1C:軟件設計 70
3.4.9 小結 77
第4章 案例2 - 添加外部存儲 78
4.1 存儲 78
4.1.1 RAM 79
4.1.2 ROM 80
4.2 設計案例2:添加外部RAM 84
4.3 小結 89
4.4 YouTube資源和網絡資源推薦 89
第5章 案例3 - 編寫設備驅動程序 90
5.1 簡介 90
5.2 案例規範 92
5.3 接口 92
5.3.1 驅動程序 92
5.3.2 寄存器 93
5.4 軟件–硬件抽象層 95
5.5 設計案例3A:編寫設備驅動 99
5.6 將設備驅動程序整閤到BSP中 104
5.7 設計案例3B:使用tickle文件 107
5.8 設備驅動程序 109
5.9 小結 111
第6章 案例4 - C代碼的優化 112
6.1 簡介 112
6.2 值得考慮的部分 113
6.2.1 選擇一個優秀的算法 113
6.2.2 編寫簡單明瞭的代碼 113
6.2.3 操作 114
6.2.4 瞭解編譯器的選項 115
6.2.5 將C代碼移植到VHDL中 115
6.3 代碼優化技術 115
6.3.1 變量 116
6.3.2 結構體 122
6.3.3 函數 124
6.3.4 條件分支與循環 128
6.3.5 指針 131
6.4 簡單執行時間測量技術 133
6.5 設計案例4:測量C代碼性能 135
6.6 小結 140
6.7 引用 141
第7章 案例5 - 輪詢和中斷 142
7.1 簡介 142
7.2 軟件輪詢輸入/輸齣係統 143
7.3 設計案例5A:硬件架構 - 輪詢係統 144
7.4 設計案例5A:軟件 - 輪詢係統 144
7.5 中斷係統 148
7.5.1 簡介 148
7.5.2 Nios Ⅱ處理器的中斷 150
7.6 設計案例5B:中斷係統 154
7.7 討論 158
7.8 引用 158
7.9 YouTube推薦 159
第8章 案例6 - 模擬信號處理 160
8.1 簡介 160
8.2 嵌入式係統中的模擬信號 160
8.2.1 ADCs - 模擬數字轉換器 160
8.2.2 逐次逼近 163
8.2.3 MAX 10開發闆上的ADC模塊 164
8.2.4 LDR - 光敏電阻 167
8.3 設計案例6:信號的處理 168
8.3.1 案例6:産品規格 168
8.3.2 案例6:硬件 168
8.3.3 案例6:實現 169
8.4 討論 171
8.5 引用 172
8.6 YouTube視頻推薦 172
嵌入式C編程實戰 下載 mobi epub pdf txt 電子書 格式