嵌入式Linux系統設計及應用——基于國產龍芯SoC( 簡體 字) | |
作者:孫冬梅、石南 | 類別:1. -> 電腦組織與體系結構 -> 嵌入式系統 2. -> 程式設計 -> 物聯網 |
出版社:清華大學出版社 | 3dWoo書號: 54218 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:2/1/2021 | |
頁數: | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302522164 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1 章 實驗平臺及背景知識 2
11 本書使用的開發板及操作系統 2 111 龍芯系列芯片 3 112 龍芯1 號微處理器 4 113 智龍開發板資源 5 114 智龍開發板使用的操作系統 5 115 龍芯派一代開發板資源 8 116 龍芯派一代與智龍開發板的差異 10 117 龍芯派一代開發板操作與啟動盤制作 11 118 龍芯派二代開發板操作 20 12 全龍芯的交叉編譯平臺 24 121 在龍芯3A3000 主機Loongnix 系統中 搭建龍芯1C 開發環境 24 122 中標麒麟操作系統 27 123 深度操作系統 28 124 普華操作系統 29 13 安裝Ubuntu/Fedora 及其他程序 31 14 虛擬機常用目錄 31 15 Windows 下需要安裝的其他軟件 32 16 一點常識 34 17 本書使用的網絡資源 35 第2 章 虛擬機安裝Linux 操作系統 37 21 下載VMware Player 并安裝 37 22 下載Ubuntu 桌面系統 37 23 安裝Ubuntu 37 24 進入終端的方法 39 25 建立root 用戶并自動登錄 39 26 安裝VMware Tools 40 27 安裝必要的軟件 42 28 查看相關版本和信息 43 29 虛擬機Linux 系統中TFTP 服務搭建 44 第3 章 安裝工具鏈、編譯內核、 制作文件系統 47 31 安裝交叉編譯工具gcc-43-ls232 47 32 編譯和燒寫 PMON 48 33 編譯和燒寫內核 49 34 制作根文件系統 51 341 配置和編譯BusyBox 51 342 創建文件系統目錄 53 343 創建系統配置文件 53 344 復制庫文件 56 35 制作根文件系統鏡像 58 351 安裝鏡像文件制作工具 58 352 制作根文件系統鏡像文件 60 353 燒寫根文件系統 61 第4 章 使用buildroot 構建根文件系統 62 41 獲取buildroot 62 42 系統構建 62 43 燒寫根文件系統鏡像 63 44 根文件系統軟件包的定制 63 45 buildroot 構建交叉編譯工具鏈 67 第5 章 簡單應用編程Hello World 69 51 智龍開發板上運行程序 69 52 友善之臂開發板mini2440 上 運行程序 70 53 ARM 架構應用程序的移植 71 第6 章 簡單驅動程序編寫 74 61 驅動的原理及編寫流程 74 62 驅動模塊的加載與卸載 75 63 *簡單的Linux 驅動 75 64 驅動的編譯和執行 76 65 內核配置驅動 80 66 LED 子系統剖析 82 67 led_trigger 接口分析 89 中級篇應用 第7 章 Linux 應用編程 93 71 Linux 應用編程的基礎知識 93 72 文件I/O 編程 93 73 進程和線程 96 74 多進程操作 97 75 進程間的通信 99 751 管道 99 752 消息隊列 105 753 共享內存 107 76 多線程操作 109 761 線程控制 109 762 線程屬性 111 763 互斥鎖113 764 信號量117 77 網絡編程 119 771 網絡編程基礎概念 119 772 網絡編程實例 122 773 網絡編程小結 132 78 OpenVPN 使用 132 781 OpenVPN 簡介 132 782 OpenVPN 在智龍上的移植 133 783 生成證書和私鑰 133 784 服務器端啟動VPN 服務 135 785 客戶端連接VPN 服務器 136 786 在虛擬機中測試連接 137 787 在普華桌面操作系統中測試連接 138 79 應用編程總結 140 第8 章 開發板硬件接口編程 141 81 點亮一個LED 燈 141 811 LED 的操作接口 141 812 LED 控制 142 813 在程序中操作LED 燈 142 82 GPIO 硬件編程 143 821 GPIO 和sysfs 操作接口 144 822 GPIO 基本操作 145 823 在C 程序中操作GPIO 146 83 按鍵應用層編程 148 831 按鍵操作接口 148 832 在程序中操作按鍵 151 84 U 盤和SD 卡 152 841 U 盤 152 842 SD 卡 153 85 RTC 時鐘 154 86 串口讀寫 155 861 串口硬件說明 155 862 用minicom 操作串口 156 863 用接口操作串口 157 864 在程序中操作串口 158 **篇驅動 第9 章 NFS 文件系統搭建 163 91 在虛擬機端安裝NFS 163 92 配置虛擬機NFS 164 93 配置開發板NFS 165 94 使用NFS 166 941 在開發板上掛載NFS 服務 166 942 建立網絡文件系統 166 **0 章 配置Eclipse 編程 168 101 用Eclipse 開發應用程序 168 102 用Eclipse 開發內核模塊 170 **1 章 一個簡單的字符設備驅動 175 111 主設備號和次設備號 175 1111 設備編號的表達 176 1112 分配和釋放設備編號 176 112 重要的數據結構 178 113 字符設備的注冊 181 114 具體實例 182 1141 file_operations 結構體設計 185 1142 模塊初始化、模塊卸載函數實現 186 1143 讀寫函數的實現 187 1144 驅動程序編譯 187 1145 驅動程序編譯和加載 188 1146 驅動程序測試 188 115 一些有用的資料 189 116 修改為模塊注銷自動刪除設備節點 190 **2 章 misc 雜項設備驅動 191 121 misc 使用的結構體和函數 191 122 misc 設備的優點 193 123 內核源碼 193 124 具體實例 195 **3 章 PWM控制輸出 199 131 利用 LED_PWM 199 132 自己編寫驅動文件 205 **4 章 I2C 總線和設備驅動 214 141 I2C 總線概述 214 142 Linux I2C 設備驅動 214 1421 I2C adapter 215 1422 I2C 子系統驅動模塊的API 220 1423 I2C client 的注冊 220 1424 I2C driver 224 1425 I2C adapter 的注冊 225 1426 I2C tools 的使用 228 1427 內核模塊分析 231 143 實例分析at24cxx 232 144 實例分析DS3231 234 **5 章 SPI 總線和設備驅動 236 151 SPI 總線概述 236 1511 硬件結構 236 1512 工作時序 237 152 Linux SPI 設備驅動軟件架構 238 153 SPI 通用接口層 238 1531 SPI 總線和類 238 1532 spi_master 結構 239 1533 spi_device 結構 240 1534 spi_driver 結構 241 1535 spi_message 和spi_transfer 結構 242 154 SPI 控制器驅動 244 1541 定義控制器設備 244 1542 注冊SPI 控制器的platform_driver 246 1543 注冊spi_master 246 155 SPI 數據傳輸 249 156 實例分析:驅動編寫之SPI 設備靜態注冊spidevc 250 157 實例分析:驅動編寫之SPI 設備動態注冊spikec 253 158 編寫測試程序 260 **6 章 CAN 總線和設備驅動 266 161 智龍開發板硬件CAN 接口 266 162 Socket CAN 268 163 測試工具 269 164 Socket CAN 在智龍上的測試: 使用工具iproute2 269 165 Socket CAN 在智龍上的測試: 使用工具canutils 273 166 編寫CAN 的socket 收發 測試程序canapp 277 1661 程序設計說明 277 1662 程序發送示例 280 1663 程序接收示例 281 1664 發送和接收測試 282 **7 章 嵌入式GUI 編程 284 171 使用外部LCD 控制器的 LCD 編程 284 1711 硬件接口 284 1712 GPIO 口操作函數 284 1713 LCD 操作 293 1714 編寫Makefile 294 1715 代碼及運行結果 295 172 基于Qt 使用內部LCD 控制器的 GUI 編程 302 1721 關于Qt 302 1722 Qt 的移植過程 303 1723 配置buildroot 304 1724 下載并運行例程 306 1725 搭建Qt 環境及編寫應用程序 308 1726 PMON 及內核源碼的修改 313 1727 支持鍵盤輸入和串口、LCD 同時輸出 314 **8 章 ADC 驅動及應用 315 181 配置ADC 驅動 315 182 硬件管腳分配 316 183 應用測試 316 184 應用層編程 316 **9 章 內核訪問外設I/O 資源 319 191 MIPS 的內存映射 319 192 動態映射方式 320 193 靜態映射方式 326 194 mmap 內存映射 328 1941 mmap 系統調用 328 1942 系統調用mmap 用于共享內存的 兩種方式 329 1943 mmap 進行內存映射的原理 329 1944 內存映射的步驟 333 195 mmap 編程示例 333 第20 章 PMON 源碼編譯、燒寫、 啟動及裸機編程 335 201 PMON 源碼分析 335 202 PMON 燒寫 336 2021 采用編程器*新PMON 到SPI Flash 336 2022 網絡*新PMON 到SPI Flash 336 2023 網絡*新PMON 到NAND Flash 337 203 NAND Flash 存儲器分區 337 204 內核啟動過程 338 2041 內核從NAND Flash 中加載 338 2042 內核從SD Card 中加載 339 2043 內核從tftp 中加載 340 2044 設置PMON 的IP 地址 340 205 PMON 的內置命令 341 206 PMON 龍芯官方參考 342 207 PMON 裸機編程 342 第21 章 在Windows 環境下搭建龍芯1C 開發環境及龍芯1C 庫 344 211 交叉編譯工具鏈的下載和安裝 344 212 MinGW 的下載和安裝 345 213 編譯 347 214 調試和運行 348 215 運行點燈程序 349 216 龍芯1C 庫 350 第22 章 智龍開發板應用及其他龍芯開 發板 351 221 智龍開發板應用例程 351 2211 WiFi 小車應用 351 2212 北斗導航應用 351 2213 龍印3D 打印機 352 2214 LCD 擴展板 353 2215 其他應用開發例程 353 222 龍芯機器人控制器 354 2221 硬件結構 354 2222 燒錄內核與根文件系統 354 2223 機器人控制器的PWM 輸出操作 356 2224 機器人控制器的應用 357 223 智龍開發板在高校和社區中的 推廣應用 357 2231 高校應用 357 2232 龍芯CPU 高校開源計劃 358 2233 “龍芯杯”全國大學生計算機系統 能力培養大賽 359 2234 龍芯俱樂部開源社區 359 2235 基于龍芯平臺的嵌入式系統設計競賽等 高校比賽活動 360 第23 章 Linux 內核的配置和編譯 362 231 安裝圖形化配置工具Ncurses 362 232 運行圖形化配置界面 362 233 編譯、燒寫Linux 內核 363 234 開發板各模塊驅動源碼 363 235 配置內核各模塊驅動 364 2351 配置網卡驅動 364 2352 配置NFS 支持 367 2353 配置串口驅動 369 2354 配置LCD 驅動 370 2355 配置按鍵驅動 372 2356 配置SD 卡驅動 374 2357 配置U 盤驅動 375 2358 配置USB 鼠標和鍵盤驅動 377 2359 配置USB OTG 驅動 380 23510 配置音頻驅動 381 23511 配置RTC 驅動 382 23512 配置PWM 驅動 384 23513 配置LED 驅動 386 23514 配置紅外驅動 387 23515 配置CAN 總線驅動 388 23516 配置SPI 控制器驅動 390 23517 配置I2C 控制器驅動 391 23518 配置ADC 驅動 392 23519 配置GPIO 驅動 393 23520 配置看門狗驅動 394 參考文獻 396 附錄1 常用Linux 命令 397 附錄2 VIM 圖例及常用操作 410 附錄3 BusyBox 的下載及配置 411 附錄4 PMON 常用命令 412 附錄5 創建與驅動程序對應的設備節點 415 附錄6 Linux 文件結構 416 附錄7 git 命令 418 附錄8 在PMON 中使用命令devcp 進行 壞塊處理和支持yaffs2 燒寫 420 附錄9 智龍開發板V2 電路原理圖 421 附錄10 智龍開發板V3 電路原理圖 422 附錄11 LCD 擴展板(外部控制器) 原理圖 423 附錄12 LCD 擴展板(內部控制器) 原理圖 424 附錄13 機器人控制器電路原理圖 425 附錄14 **屆全國大學生嵌入式芯片設計 與應用競賽龍芯平臺獲獎名單及 作品 426 龍芯系列微處理器是中國擁有自主知識產權的中央處理器,中國科學院計算技術研究所從2001 年開始研制龍芯系列處理器,于2010 年正式成立龍芯中科技術有限公司(以下簡稱龍芯中科),主要產品包括龍芯1 號CPU、龍芯2 號CPU 及龍芯3 號CPU。本書是基于龍芯俱樂部與龍芯中科合作開發的南京龍眾創芯電子科技有限公司承制的智龍開發板,圍繞龍芯1 號芯片LS1C 進行嵌入式系統開發講解,也包含龍芯中科的2K 龍芯派、南京龍眾創芯電子科技有限公司
的龍芯3A3000 開發者計算機的內容。 本書內容共分3 篇。基礎篇包含實驗平臺和開發環境的搭建。中級篇為Linux 基礎應用編程,包含線程、信號、網絡等基本操作。高級篇包含開發板硬件編程、驅動程序編寫等高級操作。附錄主要為嵌入式系統開發常用資料和智龍開發板的電路原理圖。本書結合實踐案例及應用場景,按照嵌入式系統的開發流程組織內容,使讀者能熟練掌握從開發環境搭建到編寫完整工程的流程。同時提供內核源碼及實例代碼,并給出測試結果,方便讀者參考。 本書具有廣泛的適用性,不僅可用于MIPS 架構的龍芯1 號芯片的嵌入式系統開發,還可用于基于Linux 操作系統的嵌入式系統學習。其中在內核原理、應用程序編寫,如虛擬機編譯、程序下載、調試、應用開發、內核裁減等方面與同類ARM 架構芯片相比,開發過程是通用的。本書可作為應用型本科、高職高專院校嵌入式系統方面的課程教材,也可作為相關開發人員的自學教材和參考手冊。 |