作 者:胡偉武 等 著
定 價:69
出 版 社:人民郵電出版社
出版日期:2020年12月01日
頁 數:360
裝 幀:平裝
ISBN:9787115545206
龍芯派二代具有的處理能力,接口豐富,支持多種操作繫統,軟件全開源,應用廣泛,很好適合開發者學習使用。使用龍芯派作為開發平臺的應用也在大學生嵌入式芯片與繫統設計競賽暨大學生智能互聯創新大賽中多次斬獲獎項。基礎知識講解,快速上手龍芯派8 大項目實戰,入門嵌入式開發提供項目源碼,供讀者一步步學習
●第01章 初識龍芯派
1.1 主板簡介 002
1.2 背景知識 003
1.2.1 LoongISA、ARM 和X86 003
1.2.2 龍芯處理器的起源和發展 003
第02章 啟動龍芯派
2.1 次上電啟動 006
2.1.1 上電檢查與開機 006
2.1.2 串口通信獲知主板狀態 006
2.2 連接顯示器 012
2.2.1 關於顯示器的基礎知識 012
2.2.2 連接顯示器 013
2.2.3 修改顯示模式 013
2.3 連接網絡 015
2.3.1 連接有線網絡 015
2.3.2 連接無線網絡 017
2.3.3 修改網絡參數 018
2.3.4 網絡應用: SSH 遠程控制 019
2.3.5 網絡應用: Samba 文件共享 020
2.4 安裝繫統 021
2.4.1 平臺基礎知識 021
2.4.2 安裝Loongnix 022
2.4.3 安裝Debian 025
第03章 使用龍芯派
3.1 基本操作 028
3.1.1 龍芯支持的Linux 發行版 028
3.1.2 Linux 繫統目錄樹 028
3.1.3 用戶權限 030
3.1.4 Linux 基礎命令 031
3.1.5 Linu階命令 041
3.2 常用工具 058
3.2.1 軟件包管理 058
3.2.2 編輯器 071
3.2.3 編譯器 072
3.2.4 調試器 075
3.2.5 git 079
3.2.6 Docker 081
第04章 龍芯派的軟件開發
4.1 嵌入式開發 085
4.1.1 本地編譯和交編譯 086
4.1.2 龍芯工具鏈 087
4.1.3 搭建Linux 編譯環境 088
4.1.4 個Linux 程序 102
4.2 繫統編程 103
4.2.1 搭建繫統編譯環境 103
4.2.2 PMON 104
4.2.3 更新PMON 106
4.2.4 編譯內核 107
4.2.5 更換編譯好的內核 112
4.2.6 繫統模塊和驅動 113
4.2.7 GPIO 管腳復用配置 115
4.3 感知世界 118
4.3.1 嵌入式繫統外設 119
4.3.2 GPIO - LED 版摩爾斯電碼 119
4.3.3 PWM - LED 閃光燈 124
第05章 基於Qt 開發拼圖遊戲的設計與實現
5.1 應用需求設計 132
5.1.1 應用功能 132
5.1.2 應用界面預覽 133
5.2 配置交編譯環境 136
5.2.1 開發環境要求 136
5.2.2 交編譯的流程 136
5.2.3 下載安裝交編譯工具鏈 136
5.2.4 下載Qt 源碼 137
5.2.5 選擇需要的選項參數 138
5.2.6 編譯Qt 源碼 139
5.2.7 下載Qt Creator 4.8 140
5.2.8 在Qt Creator 中配置交編譯環境 141
5.3 使用Qt Creator 143
5.4 主體代碼前的準備 146
5.4.1 頭文件配置 146
5.4.2 函數和主要變量聲明 147
5.5 構造遊戲界面 148
5.5.1 界面初始化 148
5.5.2 創建定時器,構建計時、計分、
計步聯繫 149
5.5.3 繪制圖片分割線 149
5.5.4 添加功能按鈕 150
5.5.5 放置圖片 152
5.6 圖片切割,打亂圖片 153
5.6.1 使用cutImage() 分割圖片 153
5.6.2 挖空圖片塊 153
5.6.3 使用Random() 函數打亂圖片塊 153
5. 圖片移動 155
5.7 鼠標事件 156
5.7.1 判斷拼圖狀態,關聯計步 156
5.7.2 為鼠標操作添加限定條件 157
5.8 計時得分 158
5.8.1 判斷完成狀態 158
5.8.2 彈出分數對話框 159
5.9 將應用拷貝到龍芯派上 160
5.10 實戰演練 161
5.10.1 嘗試解決一個bug 161
5.10.2 為拼圖遊戲添加鍵盤控制 162
5.11 項目總結 165
第06章 使用傳感器搭建智能家居原型
6.1 項目概覽 167
6.2 主要技術要點 168
6.3 繫統架構 168
6.3.1 物理層 168
6.3.2 網絡層 169
6.3.3 應用層 170
雲- 端通信部分搭建 171
.1 環境準備 171
.2 阿裡雲Python 開發環境搭建 171
.3 構建Python 虛擬環境 171
.4 安裝阿裡雲Python 依賴的庫 172
.5 安裝Python 的串口庫pyserial 174
.6 注冊阿裡雲平臺 175
.7 編寫通信程序 175
6.5 項目總結 178
第07章 基於室內定位技術的無人機編隊繫統
7.1 應用概覽 180
7.2 主要技術要點 181
7.3 繫統架構 181
7.3.1 飛行器定位導航流程 182
7.3.2 飛行器繫統 182
7.3.3 室內定位繫統 183
7.3.4 龍芯派編隊導航繫統 184
7.4 搭建龍芯派編隊導航繫統 185
7.4.1 環境準備 185
7.4.2 實現繫統連接 185
7.4.3 飛行軌跡腳本 187
7.5 實戰演練 190
7.6 附錄:單架無人機飛行腳本參考代碼 190
7.7 項目總結 194
第08章 基於libmodbus 開發數字采集繫統
8.1 開發流程概述 198
8.2 基於龍芯派的交編譯環境搭建 198
8.2.1 交編譯libmodbus 開發庫 199
8.2.2 下載安裝交編譯工具鏈 199
8.2.3 下載libmodbus 源碼 200
8.2.4 指定交編譯工具鏈 200
8.2.5 編譯libmodbus 源碼 200
8.2.6 配置Code::Blocks 201
8.3 主體代碼前的準備 203
8.3.1 配置文件格式 203
8.3.2 數據表結構設計 204
8.4 主體函數實現 204
8.5 數據采集模塊 206
8.6 數據處理模塊 208
8.6.1 libmodbus 實現的數據收發流程 208
8.6.2 數據處理模塊的代碼實現 211
8.7 報警模塊 213
8.7.1 短信報警 213
8.7.2 郵件報警 214
8.8 數據入庫 215
8.8.1 SQLite 3 介紹 215
8.8.2 結果入庫 216
8.9 編譯應用程序並移植到龍芯派上 216
8.10 項目總結 217
第09章 使用OpenWrt 搭建個人路由器
9.1 需求設計 219
9.1.1 繫統需求 219
9.1.2 應用需求 220
9.2 繫統選型 220
9.2.1 資源考察 220
9.2.2 OpenWrt 簡介 221
9.2.3 如何提問和參與 222
9.3 添加硬件平臺 223
9.3.1 熟悉源碼 223
9.3.2 流程梳理 225
9.3.3 開始移植 225
9.4 深入開發環境 228
9.4.1 使用Linux 操作繫統 228
9.4.2 開啟旅程 229
9.5 應用開發入門 234
9.5.1 繫統軟件 234
9.5.2 網頁應用 235
9.6 項目總結 235
0章 使用 DPDK 進行網絡加速
10.1 初識DPDK 237
10.1.1 為什麼要用DPDK 237
10.1.2 DPDK 能做什麼 238
10.1.3 DPDK 的框架簡介 239
10.2 再觀DPDK 239
10.2.1 體繫架構相關 239
10.2.2 DPDK EAL 初始化過程 241
10.3 DPPK EAL 中的重要函數 246
10.3.1 rte_eal_cpu_init(void) 246
10.3.2 eal_hugepage_info_init() 248
10.3.3 rte_eal_pci_init() 251
10.3.4 rte_eal_memory_init() 257
10.3.5 rte_eal_memzone_init() 268
10.3.6 rte_eal_pci_probe() 271
10.4 DPDK 的運行 274
10.4.1 在龍芯派上運行DPDK 的例程l2fwd 274
10.4.2 DPDK 的應用實例:l2fwd程序解析 276
10.5 項目總結 281
1章 使用 DPDK 進行網絡加速 使用 OpenCV+Qt 實現圖像識別
11.1 準備工作 283
11.2 Buildroot 構建文件繫統 284
11.2.1 下載Buildroot 284
11.2.2 Buildroot 目錄結構 285
11.2.3 配置Buildroot 286
11.3 內核編譯並添加到啟動項 290
11.3.1 內核編譯 290
11.3.2 添加龍芯啟動項 291
11.4 搭建Qt+OpenCV 開發環境 293
11.5 OpenCV 基礎 296
11.5.1 Mat 基本圖像容器 297
11.5.2 像素的表示 297
11.5.3 Haar 特征 297
11.6 編寫個OpenCV 程序 297
11.6.1 代碼編寫 298
11.6.2 界面設計 301
11.6.3 程序測試 303
11. 代碼優化 304
11.7 從攝像頭采集圖像處理 308
11.7.1 準備工作 309
11.7.2 編寫采集代碼 310
11.8 實戰演練 314
11.8.1 采集人臉信息 314
11.8.2 訓練采集到的人臉信息 318
11.8.3 編寫人臉匹配程序 323
11.9 項目總結 328
2章 語音關鍵詞檢索
12.1 應用需求設計 330
12.2 配置交編譯環境 330
12.2.1 開發環境要求 331
12.2.2 下載安裝交編譯工具 331
12.3 繫統代碼設計 332
12.3.1 繫統函數定義 332
12.3.2 提取語音特征 333
12.3.3 注冊語音作為模板 338
12.3.4 對待測語音進行檢測 339
12.4 將應用拷貝到龍芯派上 345
12.5 實戰演練 345
12.6 項目總結 346
這是一本介紹如何快速熟悉、掌握龍芯派開發方法的專著。本書基於龍芯派二代開發板,首先由淺入深地介紹了龍芯派二代的架構、龍芯派的啟動和開發配置、Linux基本操作與常用工具等內容,幫助讀者快速上手龍芯派的實際操作;然後通過Qt編程、智能家居、無人機編隊繫統、數字采集繫統、個人路由器、網絡加速、圖像識別、語音關鍵詞檢索等多個項目,手把手地教給讀者龍芯派的開發方法,並提供了項目代碼供讀者一步步學習。本書適合工業控制、網絡通信等領域的開發者,計算機相關專業的大學生,以及Linux愛好者閱讀。
胡偉武 等 著
胡偉武:龍芯中科技術有限公司董事長。杜安利:龍芯中科技術有限公司副總裁。長期從事國產嵌入式計算機、國產軟硬件設備的研發和管理工作,在能源、交通、網安通信、工業互聯網等多個領域,提供基於國產龍芯處理器的應用解決方案,奮戰在我國電子信息化、工業控制設備國產化、安全應用的。 喬崇:龍芯中科技術有限公司嵌入式事業部技術總監,參與龍芯繫列芯片的研發工作,目前在龍芯負責嵌入軟件bios、內核、嵌入式操作繫統、模擬器、仿真器的研發工作。 葉騏寧:龍芯中科技術有限公司嵌入式事業部工程師。