用“芯”探核:龍芯派開發實戰

胡偉武 杜安利 喬崇 葉騏寧 等

  • 出版商: 人民郵電
  • 出版日期: 2020-12-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 346
  • 裝訂: 平裝
  • ISBN: 7115545200
  • ISBN-13: 9787115545206
  • 相關分類: LinuxQt無人機
  • 立即出貨 (庫存 < 3)

  • 用“芯”探核:龍芯派開發實戰-preview-1
  • 用“芯”探核:龍芯派開發實戰-preview-2
用“芯”探核:龍芯派開發實戰-preview-1

買這商品的人也買了...

商品描述

這是一本帶領讀者快速熟悉、掌握龍芯派開發的專著。本書基於龍芯派二代開發板,首先由淺入深地介紹了龍芯派二代的架構、龍芯派的啟動和開發配置、Linux 基本操作與常用工具等內容,帶領讀者快速上手龍芯派;然後通過Qt 編程、智能家居、無人機編隊系統、數字採集系統、個人路由器、網絡加速、圖像識別、語音關鍵詞檢索等多個項目,手把手地帶領讀者掌握龍芯派開發的方法,並提供了項目代碼供讀者一步步學習。

作者簡介

胡偉武
龍芯中科技術有限公司董事長。


杜安利
龍芯中科技術有限公司副總裁。長期從事國產嵌入式計算機、國產軟硬件設備的研發和管理工作,在能源、交通、網安通信、工業互聯網等多個領域,提供基於國產龍芯處理器的應用解決方案,奮戰在我國電子信息化、工業控制設備國產化、安全應用的第一線。


喬崇
龍芯中科技術有限公司嵌入式事業部技術總監,參與龍芯系列芯片的研發工作,目前在龍芯負責嵌入軟件bios、內核、嵌入式操作系統、模擬器、仿真器的研發工作。

葉騏寧
龍芯中科技術有限公司嵌入式事業部工程師。

目錄大綱

第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 Linux 進階命令 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.6.4 圖片移動 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
6.4 雲- 端通信部分搭建 171
6.4.1 環境準備 171
6.4.2 阿里雲Python 開發環境搭建 171
6.4.3 構建Python 虛擬環境 171
6.4.4 安裝阿里雲Python 依賴的庫 172
6.4.5 安裝Python 的串口庫pyserial 174
6.4.6 註冊阿里雲平台 175
6.4.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

第10章 使用 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

第11章 使用 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.6.4 代碼優化 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

第12章 語音關鍵詞檢索
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