微型電腦系統原理及應用:國產龍芯處理器的軟件和硬件集成(實訓篇)

何賓 等

  • 出版商: 電子工業
  • 出版日期: 2022-08-01
  • 定價: $594
  • 售價: 7.9$469
  • 語言: 簡體中文
  • 頁數: 380
  • ISBN: 7121441020
  • ISBN-13: 9787121441028
  • 立即出貨 (庫存=1)

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

商品描述

本書作為《微型電腦系統原理及應用:國產龍芯處理器的軟件和硬件集成(基礎篇)》的配套實訓教材,主要是為電子信息類專業和電腦類專業的電腦實訓類課程提供完備的教學資源。本書以國產龍芯1B處理器為核心,將國產軟件集成開發環境和國產操作系統引入電腦類課程的實訓教學中,使學生能真正系統地掌握電腦的軟件和硬件知識,培養學生具有獨立分析和解決電腦系統問題的能力。 本書從電腦軟件算法、外設工作原理和操作系統3個不同角度,對電腦系統原理、電腦接口技術、數據結構、編譯原理、電腦網絡、操作系統、匯編語言程序設計和C語言程序設計等課程的主要知識點進行深入解析,使讀者能夠從“全系統”的角度來看待電腦系統的軟件和硬件。 全書共10章,主要內容包括:排序算法的原理和實現、樹的算法原理和實現、圖的算法原理和實現、串口重定位原理和實現、數字電子鐘的設計和實現、人機交互游戲的設計和實現、USB設備的操作原理和訪問實現、RT-Thread操作系統原理和應用、網絡傳輸的原理和實現,以及Linux操作系統的移植和應用程序的開發。 全書共分為10章,主要內容包括:排序算法的原理和實現、樹的算法原理和實現、圖的算法原理和實現、串口重定位原理和實現、電子鐘的設計和實現、人機交互游戲的設計和實現、USB設備的操作原理和訪問實現、RT-Thread操作系統原理和應用、網絡傳輸的原理和實現,以及Linux操作系統的移植和應用程序的開發。

作者簡介

何賓
知名的嵌入式和EDA技術專家,長期從事電子設計自動化方面的教學和科研工作,與全球多家知名的半導體廠商和EDA工具廠商密切合作。已經出版電子信息方面的著作共40餘部,內容涵蓋電路仿真、電路設計、FPGA、數字信號處理、單片機、嵌入式系統等。典型的代表作有《模擬電子系統設計指南(基礎篇):從半導體、分立元件到TI集成電路的分析與實現》、《模擬電子系統設計指南(實踐篇):從半導體、分立元件到TI集成電路的分析與實現》、《Xilinx Zynq-7000嵌入式系統設計與實現-基於ARM Cortex-A9雙核處理器和Vivado的設計方法》、《Altium Designer17一體化設計標準教程-從仿真原理和PCB設計到單片機系統》、《STC8系列單片機開髮指南:面向處理器、程序設計和操作系統的分析與應用》等。

目錄大綱

第1章排序算法的原理和實現
1.1 選擇排序的原理和實現
1.1.1 選擇排序的原理
1.1.2 C語言程序設計
1.1.3 C語言編譯和調試
1.1.4 彙編語言程序設計
1.1.5 彙編語言編譯和調試
1.2 快速排序的原理和實現
1.2.1 快速排序的原理
1.2.2 C語言程序設計
1.2.3 C語言編譯和調試
1.2.4 彙編語言程序設計
1.2.5 彙編語言編譯和調試
1.3 插入排序的原理和實現
1.3.1 插入排序的原理
1.3.2C語言程序設計
1.3.3 C語言編譯和調試
1.3.4 彙編語言程序設計
1.3.5 彙編語言編譯和調試
1.4 基數排序的原理和實現
1.4.1 基數排序的原理
1.4.2 C語言程序設計
1.4.3 C語言編譯和調試
1.4.4 彙編語言程序設計
1.4.5 彙編語言編譯和調試
1.5 希爾排序的原理和實現
1.5.1 希爾排序的原理
1.5.2 C語言程序設計
1.5.3 C語言編譯和調試
1.5.4 彙編語言程序設計
1.5.5 彙編語言編譯和調試
1.6 歸併排序的原理和實現
1.6.1 歸併排序的原理
1.6.2 C語言程序設計-遞歸實現
1.6.3 C語言編譯和調試-遞歸實現
1.6.4 C語言程序設計-非遞歸實現
1.6.5 C語言編譯和調試-非遞歸實現
1.6.6 彙編語言程序設計
1.6.7 彙編語言編譯和調試
1.7 堆排序的原理和實現
1.7.1 堆排序的原理
1.7.2 C語言程序設計
1.7.3 C語言編譯和調試
1.7.4彙編語言程序設計
1.7.5彙編語言編譯和調試

第2章樹的算法原理和實現
2.1二叉樹遍歷原理和實現
2.1.1二叉樹遍歷的原理
2.1.2 C語言程序設計-遍歷的遞歸實現
2.1.3 C語言編譯及調試-遍歷的遞歸實現
2.1.4 C語言程序設計-遍歷的非遞歸實現
2.1.5 C語言編譯及調試-遍歷的非遞歸實現
2.1.6彙編語言程序設計
2.1.7彙編語言編譯和調試
2.2哈夫曼編碼原理和實現
2.2.1哈夫曼編碼的原理
2.2.2 C語言程序設計
2.2.3 C語言編譯及調試
2.2.4彙編語言程序設計
2.2.5彙編語言編譯和調試

第3章圖的算法原理和實現
3.1弗洛伊德算法原理和實現
3.1.1弗洛伊德算法的原理
3.1.2 C語言程序設計
3.1.3 C語言編譯和調試
3.1.4彙編語言程序設計
3.1.5彙編語言編譯並調試
3.2圖的鄰接表表示和實現
3.2.1圖的鄰接表表示方法
3.2.2基於鍊錶的鄰接表設計思路
3.2.3 C語言程序設計-鄰接表的鍊錶實現
3.2.4 C語言編譯和調試-鄰接表的鍊錶實現
3.2.5基於數組的鄰接表設計思路
3.2.6 C語言程序設計-鄰接表的數組實現
3.2.7 C語言編譯和調試-鄰接表的數組實現
3.2.8彙編語言程序設計
3.2.9彙編語言編譯並調試
3.3深度和廣度優先搜索算法原理和實現
3.3.1深度和廣度優先搜索算法原理
3.3.2 C語言程序設計-基於鍊錶和非遞歸的實現
3.3.3 C語言編譯和調試-基於鍊錶和非遞歸的實現
3.3.4 C語言程序設計-基於數組和非遞歸的實現
3.3.5 C語言編譯和調試-基於數組和非遞歸的實現
3.3.6彙編語言程序設計
3.3.7彙編語言編譯和調試

第4章串口重定位的原理和實現
4.1 printf()函數的重定位實現
4.1.1分析標準庫函數printf()的執行過程
4.1.2創建新的頭文件(uart3.h)
4.1.3創建新的源文件(uart3.c)
4.1.4創建新的putcharr.c文件
4.1.5修改print.h與printf.c文件
4.2 scanf()函數的重定位實現
4.2.1分析標準庫函數scanf()的執行過程
4.2.2修改源文件uart3.c
4.2.3創建新的頭文件(scanf.h)
4.2.4創建新的源文件(scanf.c)
4.3主函數下添加設計代碼
4.4輸入和輸出函數重定位的測試
4.4.1配置PuTTY工具和串口調試助手
4.4.2scanf()函數的只讀模式測試
4.4.3數據流與控制流匹配測試
4.4.4返回已讀取字符數測試
4.4.5輸入十進制整數測試
4.4.6輸入八進制整數測試
4.4.7輸入十六進制整數測試
4.4.8輸入浮點數測試
4.4.9輸入字符測試
4.4.10輸入字符串測試
4.4.11輸入指針測試
4.4.12掃描模式輸入字符串測試
4.4.13數據流的緩存測試

第5章數字電子鐘的設計和實現
5.1實時時鐘模塊的原理
5.1.1實時時鐘內部結構
5.1.2實時時鐘寄存器集
5.2 I2C總線及模塊的原理
5.2.1 I2C總線規範
5.2.2 I2C模塊的原理
5.3 OLED顯示模塊原理
5.3.1 OLED的性能和參數
5.3.2 OLED模塊的電路
5.3.3 I2C總線寫數據
5.3.4 I2C的寫模式
5.3.5 I2C的數據位傳輸
5.3.6圖形顯示數據RAM
5.3.7存儲器尋址模式
5.4數字電子鐘軟件的設計
5.4.1創建oled_driver.h文件
5.4.2創建oled_driver.c文件
5.4.3創建chars.h文件
5.4.4創建picture.h文件
5.4.5修改bsp.h文件
5.4.6修改main.c文件
5.5編譯和下載設計文件
5.5.1硬件平台的準備
5.5.2設計下載

第6章人機交互遊戲的設計和實現
6.1顯示控制器模塊原理
6.1.1 DC模塊的特性
6.1.2 DC模塊寄存器集
6.1.3 LCD的位模式
6.2 LCD屏的性能與操作
6.2.1 LCD屏的性能參數
6.2.2 LCD屏的引腳
6.2.3 LCD屏的時序
6.3系統硬件設計
6.3.1 LCD屏與開發板的連接
6.3.2按鍵模塊與開發板的連接
6.4 GPIO和LCD驅動API
6.4.1 GPIO API函數
6.4.2 LCD API函數
6.5系統軟件設計
6.5.1屏幕設計問題分析
6.5.2編寫軟件代碼
6.6系統調試和驗證

第7章USB設備的操作原理和訪問實現
7.1USB的初始化
7.1.1USB初始化框架
7.1.2USB底層初始化
7.1.3 USB分配新設備
7.1.4 USB新建新設備
7.1.5提交命令到最底層
7.2 USB存儲設備的初始化
7.2.1掃描USB設備
7.2.2配置USB存儲設備
7.2.3讀取和寫入操作
7.2.4復位與傳輸操作
7.2.5獲取存儲設備
7.3 USB存儲設備的訪問
7.3.1測試存儲器程序框架
7.3.2獲取並打印存儲器分區信息
7.3.3判別塊存儲設備
7.3.4搜索目標文件
7.3.5讀取目標文件
7.4 USB HID的初始化和訪問
7.4.1USB HID原理
7.4.2鍵盤設備初始化
7.4.3鍵盤中斷服務程序
7.4.4檢測按鍵輸入
7.4.5獲取輸入字符
7.5USB設備的停止
7.6USB存儲設備和USB鍵盤的測試
7.6.1存儲設備的測試
7.6.2鍵盤設備的測試

第8章RT-Thread操作系統原理和應用
8.1操作系統的背景和需求
8.1.1裸機環境下的應用場景
8.1.2操作系統的基本概念
8.1.3嵌入式RTOS基礎
8.2 RT-Thread操作系統簡介
8.2.1 RT-Thread操作系統的發展歷史
8.2.2 RT-Thread操作系統的架構
8.3線程原理及實現方法
8.3.1線程的概念
8.3.2線程控制塊
8.3.3線程屬性
8.3.4系統線程
8.3.5線程管理API
8.3.6調度器與調度規則
8.4定時器原理及實現方法
8.4.1定時器的概念
8.4.2定時器工作原理
8.4.3定時器控制塊
8.4.4定時器API
8.5內存管理及實現方法
8.5.1靜態內存分配
8.5.2動態內存分配
8.5.3 RT-Thread操作系統中的內存分配
8.5.4內存管理API
8.6信號量原理及實現方法
8.6.1信號量的概念
8.6.2信號量工作原理
8.6.3信號量控制塊
8.6.4信號量API
8.7互斥量原理及實現方法
8.7.1互斥量的概念
8.7.2互斥量的工作原理
8.7.3互斥量控制塊
8.7.4互斥量API
8.8事件集原理及實現方法
8.8.1事件集概念
8.8.2事件集工作原理
8.8.3事件控制塊
8.8.4事件集API
8.9消息隊列原理及實現方法
8.9.1消息隊列的概念
8.9.2消息隊列工作原理
8.9.3消息隊列控制塊
8.9.4消息隊列API
8.10操作系統應用實例一:理髮師問題
8.10.1理髮師問題的背景
8.10.2理髮師問題的同步處理
8.10.3理髮師問題的解決
8.10.4設計編譯和調試
8.11操作系統應用實例二:哲學家進餐問題
8.11.1哲學家進餐問題的背景
8.11.2哲學家進餐問題的同步處理
8.11.3哲學家進餐問題的解決
8.11.4設計編譯和調試
8.12操作系統應用實例三:吸煙者問題
8.12.1吸煙者問題的背景
8.12.2吸煙者問題的同步處理
8.12.3吸煙者問題的解決
8.12.4設計編譯和調試

第9章網絡傳輸的原理和實現
9.1內建GMAC模塊功能
9.1.1 DMA寄存器描述
9.1.2 GMAC寄存器描述
9.2 LwIP協議棧基礎:原始API
9.2.1回調
9.2.2 TCP連接設置
9.2.3發送TCP 數據
9.2.4接收TCP數據
9.2.5應用輪詢
9.2.6關閉和終止連接
9.2.7底層TCP接口
9.2.8 UDP接口
9.2.9系統初始化
9.2.10優化提示
9.2.11零複製MAC
9.3 TCP與UDP的原理和實現方法
9.3.1 TCP的三次握手和四次揮手
9.3.2 TCP與UDP的區別
9.3.3採用套接字的TCP實現方法
9.3.4採用套接字的UDP實現方法
9.4網絡傳輸的實現
9.4.1創建新的設計工程
9.4.2修改main.c文件
9.4.3添加lwip_test.h文件
9.4.4添加lwip_test.c文件
9.4.5添加tcp_server.c文件
9.4.6添加tcp_client.c文件
9.4.7添加udp_server.c文件
9.4.8添加udp_client.c文件
9.4.9修改文件(可選)
9.5網絡通信的測試與驗證
9.5.1測試前的準備工作
9.5.2設置計算機的IP地址
9.5.3 TCP服務器測試
9.5.4TCP客戶端測試
9.5.5 UDP服務器測試
9.5.6 UDP客戶端測試

第10章Linux操作系統的移植和應用程序的開發
10.1 Tftpd32工具的下載和安裝
10.2 VMware虛擬機的下載和安裝
10.3 Ubuntu操作系統的下載和安裝
10.3.1下載Ubuntu操作系統鏡像
10.3.2安裝Ubuntu操作系統
10.4設置共享文件夾
10.5交叉編譯器的安裝
10.6 Linux內核源碼的編譯
10.7編譯Linux文件系統
10.8配置下載環境參數
10.8.1複製文件到共享文件夾
10.8.2 確認計算機的IP地址信息
10.8.3 配置Tftpd32工具參數
10.8.4 配置Putty工具參數
10.9下載內核和文件系統
10.10應用程序的開發