国产精品一久久香蕉产线看/亚洲图区欧美/亚洲国产精品电影人久久网站/欧美日韩在线视频一区

歡迎光臨中圖網 請 | 注冊
> >>
嵌入式Linux系統設計及應用——基于國產龍芯SoC

包郵 嵌入式Linux系統設計及應用——基于國產龍芯SoC

作者:孫冬梅
出版社:清華大學出版社出版時間:2021-02-01
開本: 16開 頁數: 440
中 圖 價:¥71.2(8.0折) 定價  ¥89.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

嵌入式Linux系統設計及應用——基于國產龍芯SoC 版權信息

嵌入式Linux系統設計及應用——基于國產龍芯SoC 本書特色

隨著國產芯片的崛起,需要更多的開發者熟悉基于國產處理器的Linux平臺。龍芯是一款具有自主知識產權的國產處理器,中國科學院計算技術研究所從2001年開始研制龍芯系列處理器。本書從龍芯SoC架構開始,較為系統全面地介紹了嵌入式Linux的構成、開發、編譯和調優等各個環節的知識,內容詳實,示例豐富。本書可作為應用型本科、高職高專院校嵌入式系統方面的課程教材,也可作為相關開發人員的自學教材和參考手冊。 一本能滿足高校嵌入式Linux系統教學和龍芯產業鏈企業技術培訓的教材。

嵌入式Linux系統設計及應用——基于國產龍芯SoC 內容簡介

龍芯系列微處理器是中國擁有自主知識產權的中央處理器,中國科學院計算技術研究所從2001 年開始研制龍芯系列處理器,于2010 年正式成立龍芯中科技術有限公司(以下簡稱龍芯中科),主要產品包括龍芯1 號CPU、龍芯2 號CPU 及龍芯3 號CPU。本書是基于龍芯俱樂部與龍芯中科合作開發的南京龍眾創芯電子科技有限公司承制的智龍開發板,圍繞龍芯1 號芯片LS1C 進行嵌入式系統開發講解,也包含龍芯中科的2K 龍芯派、南京龍眾創芯電子科技有限公司 的龍芯3A3000 開發者計算機的內容。 本書內容共分3 篇。基礎篇包含實驗平臺和開發環境的搭建。中級篇為Linux 基礎應用編程,包含線程、信號、網絡等基本操作。高級篇包含開發板硬件編程、驅動程序編寫等高級操作。附錄主要為嵌入式系統開發常用資料和智龍開發板的電路原理圖。本書結合實踐案例及應用場景,按照嵌入式系統的開發流程組織內容,使讀者能熟練掌握從開發環境搭建到編寫完整工程的流程。同時提供內核源碼及實例代碼,并給出測試結果,方便讀者參考。 本書具有廣泛的適用性,不僅可用于MIPS 架構的龍芯1 號芯片的嵌入式系統開發,還可用于基于Linux 操作系統的嵌入式系統學習。其中在內核原理、應用程序編寫,如虛擬機編譯、程序下載、調試、應用開發、內核裁減等方面與同類ARM 架構芯片相比,開發過程是通用的。本書可作為應用型本科、高職高專院校嵌入式系統方面的課程教材,也可作為相關開發人員的自學教材和參考手冊。

嵌入式Linux系統設計及應用——基于國產龍芯SoC 目錄

第1 章 實驗平臺及背景知識 .......................... 2 1.1 本書使用的開發板及操作系統 ................ 2 1.1.1 龍芯系列芯片 .................................................. 3 1.1.2 龍芯1 號微處理器 .......................................... 4 1.1.3 智龍開發板資源 .............................................. 5 1.1.4 智龍開發板使用的操作系統 .......................... 5 1.1.5 龍芯派一代開發板資源 .................................. 8 1.1.6 龍芯派一代與智龍開發板的差異 ................ 10 1.1.7 龍芯派一代開發板操作與啟動盤制作 ........ 11 1.1.8 龍芯派二代開發板操作 ................................ 20 1.2 全龍芯的交叉編譯平臺 .......................... 24 1.2.1 在龍芯3A3000 主機Loongnix 系統中 搭建龍芯1C 開發環境 ................................. 24 1.2.2 中標麒麟操作系統 ........................................ 27 1.2.3 深度操作系統 ................................................ 28 1.2.4 普華操作系統 ................................................ 29 1.3 安裝Ubuntu/Fedora 及其他程序 ............ 31 1.4 虛擬機常用目錄 ...................................... 31 1.5 Windows 下需要安裝的其他軟件 .......... 32 1.6 一點常識 .................................................. 34 1.7 本書使用的網絡資源 .............................. 35 第2 章 虛擬機安裝Linux 操作系統 ............. 37 2.1 下載VMware Player 并安裝 ................... 37 2.2 下載Ubuntu 桌面系統 ............................ 37 2.3 安裝Ubuntu ............................................. 37 2.4 進入終端的方法 ...................................... 39 2.5 建立root 用戶并自動登錄 ...................... 39 2.6 安裝VMware Tools ................................. 40 2.7 安裝必要的軟件 ...................................... 42 2.8 查看相關版本和信息 .............................. 43_x00B_2.9 虛擬機Linux 系統中TFTP 服務搭建.... 44 第3 章 安裝工具鏈、編譯內核、 制作文件系統 ................................... 47 3.1 安裝交叉編譯工具gcc-4.3-ls232 ........... 47 3.2 編譯和燒寫 PMON ................................. 48 3.3 編譯和燒寫內核 ...................................... 49 3.4 制作根文件系統 ...................................... 51 3.4.1 配置和編譯BusyBox .................................... 51 3.4.2 創建文件系統目錄 ........................................ 53 3.4.3 創建系統配置文件 ........................................ 53 3.4.4 復制庫文件 .................................................... 56 3.5 制作根文件系統鏡像 .............................. 58 3.5.1 安裝鏡像文件制作工具 ................................ 58 3.5.2 制作根文件系統鏡像文件 ............................ 60 3.5.3 燒寫根文件系統 ............................................ 61 第4 章 使用buildroot 構建根文件系統 ......... 62 4.1 獲取buildroot........................................... 62 4.2 系統構建 .................................................. 62 4.3 燒寫根文件系統鏡像 .............................. 63 4.4 根文件系統軟件包的定制 ...................... 63 4.5 buildroot 構建交叉編譯工具鏈 ............... 67 第5 章 簡單應用編程Hello World ............... 69 5.1 智龍開發板上運行程序 .......................... 69 5.2 友善之臂開發板mini2440 上 運行程序 .................................................. 70 5.3 ARM 架構應用程序的移植 .................... 71 第6 章 簡單驅動程序編寫 ............................ 74 6.1 驅動的原理及編寫流程 .......................... 74 6.2 驅動模塊的加載與卸載 .......................... 75 6.3 *簡單的Linux 驅動 ............................... 75 6.4 驅動的編譯和執行 .................................. 76 6.5 內核配置驅動 .......................................... 80 6.6 LED 子系統剖析 ..................................... 82 6.7 led_trigger 接口分析 ................................ 89 中級篇應用 第7 章 Linux 應用編程 ................................ 93 7.1 Linux 應用編程的基礎知識 .................... 93 7.2 文件I/O 編程 ........................................... 93 7.3 進程和線程 .............................................. 96 7.4 多進程操作 .............................................. 97 7.5 進程間的通信 .......................................... 99 7.5.1 管道 ............................................................... 99 7.5.2 消息隊列 .......................................................105 7.5.3 共享內存 .......................................................107 7.6 多線程操作 ............................................ 109 7.6.1 線程控制 .......................................................109 7.6.2 線程屬性 .......................................................111 7.6.3 互斥鎖...........................................................113 7.6.4 信號量...........................................................117 7.7 網絡編程 ................................................ 119 7.7.1 網絡編程基礎概念 .......................................119 7.7.2 網絡編程實例 ...............................................122 7.7.3 網絡編程小結 ...............................................132 7.8 OpenVPN 使用 ....................................... 132 7.8.1 OpenVPN 簡介 .............................................132 7.8.2 OpenVPN 在智龍上的移植 ........................133 7.8.3 生成證書和私鑰 ...........................................133 7.8.4 服務器端啟動VPN 服務 .............................135 7.8.5 客戶端連接VPN 服務器 .............................136 7.8.6 在虛擬機中測試連接 ...................................137 7.8.7 在普華桌面操作系統中測試連接 .............. 138 7.9 應用編程總結 ........................................ 140 第8 章 開發板硬件接口編程 ...................... 141 8.1 點亮一個LED 燈 .................................. 141 8.1.1 LED 的操作接口 ......................................... 141 8.1.2 LED 控制 .................................................... 142 8.1.3 在程序中操作LED 燈 ................................ 142 8.2 GPIO 硬件編程 ...................................... 143 8.2.1 GPIO 和sysfs 操作接口 .............................. 144 8.2.2 GPIO 基本操作 ............................................ 145 8.2.3 在C 程序中操作GPIO ............................... 146 8.3 按鍵應用層編程 .................................... 148 8.3.1 按鍵操作接口 .............................................. 148 8.3.2 在程序中操作按鍵 ...................................... 151 8.4 U 盤和SD 卡 ......................................... 152 8.4.1 U 盤 .............................................................. 152 8.4.2 SD 卡 ............................................................ 153 8.5 RTC 時鐘 ............................................... 154 8.6 串口讀寫 ................................................ 155 8.6.1 串口硬件說明 .............................................. 155 8.6.2 用minicom 操作串口 .................................. 156 8.6.3 用接口操作串口 .......................................... 157 8.6.4 在程序中操作串口 ...................................... 158 高級篇驅動 第9 章 NFS 文件系統搭建 ........................ 163 9.1 在虛擬機端安裝NFS ............................ 163 9.2 配置虛擬機NFS .................................... 164 9.3 配置開發板NFS .................................... 165 9.4 使用NFS ................................................ 166 9.4.1 在開發板上掛載NFS 服務 ......................... 166 9.4.2 建立網絡文件系統 .......................................166 第10 章 配置Eclipse 編程 ........................ 168 10.1 用Eclipse 開發應用程序 .................... 168 10.2 用Eclipse 開發內核模塊 .................... 170 第11 章 一個簡單的字符設備驅動 ............. 175 11.1 主設備號和次設備號 .......................... 175 11.1.1 設備編號的表達 .........................................176 11.1.2 分配和釋放設備編號 .................................176 11.2 重要的數據結構 .................................. 178 11.3 字符設備的注冊 .................................. 181 11.4 具體實例 .............................................. 182 11.4.1 file_operations 結構體設計 ........................185 11.4.2 模塊初始化、模塊卸載函數實現 .............186 11.4.3 讀寫函數的實現 .........................................187 11.4.4 驅動程序編譯 .............................................187 11.4.5 驅動程序編譯和加載 .................................188 11.4.6 驅動程序測試 .............................................188 11.5 一些有用的資料 .................................. 189 11.6 修改為模塊注銷自動刪除設備節點 .. 190 第12 章 misc 雜項設備驅動 ...................... 191 12.1 misc 使用的結構體和函數 .................. 191 12.2 misc 設備的優點 .................................. 193 12.3 內核源碼 .............................................. 193 12.4 具體實例 .............................................. 195 第13 章 PWM控制輸出 ............................ 199 13.1 利用 LED_PWM ................................. 199 13.2 自己編寫驅動文件 .............................. 205 第14 章 I2C 總線和設備驅動 .................... 214 14.1 I2C 總線概述 ....................................... 214 14.2 Linux I2C 設備驅動 ............................. 214 14.2.1 I2C adapter ..................................................215 14.2.2 I2C 子系統驅動模塊的API .......................220 14.2.3 I2C client 的注冊 ........................................220 14.2.4 I2C driver ....................................................224 14.2.5 I2C adapter 的注冊 .....................................225 14.2.6 I2C tools 的使用 .........................................228 14.2.7 內核模塊分析 ............................................ 231 14.3 實例分析at24cxx ................................. 232 14.4 實例分析DS3231 ................................ 234 第15 章 SPI 總線和設備驅動 ..................... 236 15.1 SPI 總線概述 ....................................... 236 15.1.1 硬件結構 .................................................... 236 15.1.2 工作時序 .................................................... 237 15.2 Linux SPI 設備驅動軟件架構 ............. 238 15.3 SPI 通用接口層 ................................... 238 15.3.1 SPI 總線和類 ............................................. 238 15.3.2 spi_master 結構 .......................................... 239 15.3.3 spi_device 結構 .......................................... 240 15.3.4 spi_driver 結構 ........................................... 241 15.3.5 spi_message 和spi_transfer 結構 .............. 242 15.4 SPI 控制器驅動 ................................... 244 15.4.1 定義控制器設備 ........................................ 244 15.4.2 注冊SPI 控制器的platform_driver .......... 246 15.4.3 注冊spi_master .......................................... 246 15.5 SPI 數據傳輸 ....................................... 249 15.6 實例分析:驅動編寫之SPI 設備靜態注冊spidev.c ........................ 250 15.7 實例分析:驅動編寫之SPI 設備動態注冊spike.c .......................... 253 15.8 編寫測試程序 ...................................... 260 第16 章 CAN 總線和設備驅動 ................... 266 16.1 智龍開發板硬件CAN 接口 ................ 266 16.2 Socket CAN .......................................... 268 16.3 測試工具 .............................................. 269 16.4 Socket CAN 在智龍上的測試: 使用工具iproute2 ................................. 269 16.5 Socket CAN 在智龍上的測試: 使用工具canutils .................................. 273 16.6 編寫CAN 的socket 收發 測試程序canapp ................................... 277 16.6.1 程序設計說明 ............................................ 277 16.6.2 程序發送示例 ............................................ 280 16.6.3 程序接收示例 ............................................ 281 16.6.4 發送和接收測試 .........................................282 第17 章 嵌入式GUI 編程 .......................... 284 17.1 使用外部LCD 控制器的 LCD 編程 ............................................ 284 17.1.1 硬件接口 .....................................................284 17.1.2 GPIO 口操作函數 ......................................284 17.1.3 LCD 操作 ....................................................293 17.1.4 編寫Makefile .............................................294 17.1.5 代碼及運行結果 .........................................295 17.2 基于Qt 使用內部LCD 控制器的 GUI 編程 ............................................... 302 17.2.1 關于Qt ........................................................302 17.2.2 Qt 的移植過程 ............................................303 17.2.3 配置buildroot .............................................304 17.2.4 下載并運行例程 .........................................306 17.2.5 搭建Qt 環境及編寫應用程序 ...................308 17.2.6 PMON 及內核源碼的修改 ........................313 17.2.7 支持鍵盤輸入和串口、LCD 同時輸出 ....314 第18 章 ADC 驅動及應用 .......................... 315 18.1 配置ADC 驅動 .................................... 315 18.2 硬件管腳分配 ...................................... 316 18.3 應用測試 .............................................. 316 18.4 應用層編程 .......................................... 316 第19 章 內核訪問外設I/O 資源 ................. 319 19.1 MIPS 的內存映射 ................................ 319 19.2 動態映射方式 ...................................... 320 19.3 靜態映射方式 ...................................... 326 19.4 mmap 內存映射 ................................... 328 19.4.1 mmap 系統調用 ..........................................328 19.4.2 系統調用mmap 用于共享內存的 兩種方式 .....................................................329 19.4.3 mmap 進行內存映射的原理 ......................329 19.4.4 內存映射的步驟 .........................................333 19.5 mmap 編程示例 ................................... 333 第20 章 PMON 源碼編譯、燒寫、 啟動及裸機編程 ........................... 335 20.1 PMON 源碼分析 .................................. 335 20.2 PMON 燒寫 .......................................... 336 20.2.1 采用編程器更新PMON 到SPI Flash ....... 336 20.2.2 網絡更新PMON 到SPI Flash .................. 336 20.2.3 網絡更新PMON 到NAND Flash ............. 337 20.3 NAND Flash 存儲器分區 .................... 337 20.4 內核啟動過程 ...................................... 338 20.4.1 內核從NAND Flash 中加載 ..................... 338 20.4.2 內核從SD Card 中加載 ............................ 339 20.4.3 內核從tftp 中加載 ..................................... 340 20.4.4 設置PMON 的IP 地址 ............................. 340 20.5 PMON 的內置命令 .............................. 341 20.6 PMON 龍芯官方參考 .......................... 342 20.7 PMON 裸機編程 .................................. 342 第21 章 在Windows 環境下搭建龍芯1C 開發環境及龍芯1C 庫 ................ 344 21.1 交叉編譯工具鏈的下載和安裝 .......... 344 21.2 MinGW 的下載和安裝 ........................ 345 21.3 編譯 ...................................................... 347 21.4 調試和運行 .......................................... 348 21.5 運行點燈程序 ...................................... 349 21.6 龍芯1C 庫............................................ 350 第22 章 智龍開發板應用及其他龍芯開 發板 ............................................. 351 22.1 智龍開發板應用例程 .......................... 351 22.1.1 WiFi 小車應用 ........................................... 351 22.1.2 北斗導航應用 ............................................ 351 22.1.3 龍印3D 打印機 ......................................... 352 22.1.4 LCD 擴展板 ............................................... 353 22.1.5 其他應用開發例程 .................................... 353 22.2 龍芯機器人控制器 .............................. 354 22.2.1 硬件結構 .................................................... 354 22.2.2 燒錄內核與根文件系統 ............................ 354 22.2.3 機器人控制器的PWM 輸出操作 ............. 356 22.2.4 機器人控制器的應用 ................................ 357 22.3 智龍開發板在高校和社區中的 推廣應用 .............................................. 357 22.3.1 高校應用 .................................................... 357 22.3.2 龍芯CPU 高校開源計劃 ........................... 358 22.3.3 “龍芯杯”全國大學生計算機系統 能力培養大賽 ...........................................359 22.3.4 龍芯俱樂部開源社區 .................................359 22.3.5 基于龍芯平臺的嵌入式系統設計競賽等 高校比賽活動 .............................................360 第23 章 Linux 內核的配置和編譯 .............. 362 23.1 安裝圖形化配置工具Ncurses ............. 362 23.2 運行圖形化配置界面 .......................... 362 23.3 編譯、燒寫Linux 內核 ....................... 363 23.4 開發板各模塊驅動源碼 ...................... 363 23.5 配置內核各模塊驅動 .......................... 364 23.5.1 配置網卡驅動 .............................................364 23.5.2 配置NFS 支持 ...........................................367 23.5.3 配置串口驅動 .............................................369 23.5.4 配置LCD 驅動 ...........................................370 23.5.5 配置按鍵驅動 .............................................372 23.5.6 配置SD 卡驅動 ..........................................374 23.5.7 配置U 盤驅動 ............................................375 23.5.8 配置USB 鼠標和鍵盤驅動 .......................377 23.5.9 配置USB OTG 驅動 ..................................380 23.5.10 配置音頻驅動 ...........................................381 23.5.11 配置RTC 驅動 .........................................382 23.5.12 配置PWM 驅動 .......................................384 23.5.13 配置LED 驅動 .........................................386 23.5.14 配置紅外驅動 ...........................................387 23.5.15 配置CAN 總線驅動 ................................388 23.5.16 配置SPI 控制器驅動 ...............................390 23.5.17 配置I2C 控制器驅動 ...............................391 23.5.18 配置ADC 驅動 ........................................392 23.5.19 配置GPIO 驅動 .......................................393 23.5.20 配置看門狗驅動 ...................................... 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_x00C_
展開全部

嵌入式Linux系統設計及應用——基于國產龍芯SoC 作者簡介

孫冬梅(1975.1-):博士后,副教授,2004年獲南京理工大學測試計量技術及儀器專業博士學位;2011.1~2015.12進入南京工業大學“動力工程及工程熱物理”博士后流動站,從事研究工作。現任江蘇省儀器儀表學會理事,江蘇省射頻識別技術標準化技術委員會委員。 2012年主持了江蘇省博士后基金“大型風電回轉支承多源振動信號故障診斷的數據融合方法研究”;2009年主持江蘇省高校自然科學基金項目“基于熱導式微流量智能傳感器的分析儀器開發研究”。參與了多項國家自然科學基金開發研究,完成了多項科研項目,有豐富的理論及實踐經驗;近幾年來,在國內外核心期刊上發表學術論文50多篇。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服