微型計算機系統(tǒng)原理及應用:國產(chǎn)龍芯處理器的軟件和硬件集成(實訓篇)
定 價:99 元
叢書名:計算機與嵌入式系統(tǒng)系列教材
- 作者:何賓 等
- 出版時間:2022/8/1
- ISBN:9787121441028
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP36
- 頁碼:380
- 紙張:
- 版次:01
- 開本:16開
本書作為《微型計算機系統(tǒng)原理及應用:國產(chǎn)龍芯處理器的軟件和硬件集成(基礎篇)》的配套實訓教材,主要是為電子信息類專業(yè)和計算機類專業(yè)的計算機實訓類課程提供完備的教學資源。本書以國產(chǎn)龍芯1B處理器為核心,將國產(chǎn)軟件集成開發(fā)環(huán)境和國產(chǎn)操作系統(tǒng)引入計算機類課程的實訓教學中,使學生能真正系統(tǒng)地掌握計算機的軟件和硬件知識,培養(yǎng)學生具有獨立分析和解決計算機系統(tǒng)問題的能力。 本書從計算機軟件算法、外設工作原理和操作系統(tǒng)3個不同角度,對計算機系統(tǒng)原理、計算機接口技術、數(shù)據(jù)結(jié)構(gòu)、編譯原理、計算機網(wǎng)絡、操作系統(tǒng)、匯編語言程序設計和C語言程序設計等課程的主要知識點進行深入解析,使讀者能夠從“全系統(tǒng)”的角度來看待計算機系統(tǒng)的軟件和硬件。 全書共10章,主要內(nèi)容包括:排序算法的原理和實現(xiàn)、樹的算法原理和實現(xiàn)、圖的算法原理和實現(xiàn)、串口重定位原理和實現(xiàn)、數(shù)字電子鐘的設計和實現(xiàn)、人機交互游戲的設計和實現(xiàn)、USB設備的操作原理和訪問實現(xiàn)、RT-Thread操作系統(tǒng)原理和應用、網(wǎng)絡傳輸?shù)脑砗蛯崿F(xiàn),以及Linux操作系統(tǒng)的移植和應用程序的開發(fā)。 全書共分為10章,主要內(nèi)容包括:排序算法的原理和實現(xiàn)、樹的算法原理和實現(xiàn)、圖的算法原理和實現(xiàn)、串口重定位原理和實現(xiàn)、電子鐘的設計和實現(xiàn)、人機交互游戲的設計和實現(xiàn)、USB設備的操作原理和訪問實現(xiàn)、RT-Thread操作系統(tǒng)原理和應用、網(wǎng)絡傳輸?shù)脑砗蛯崿F(xiàn),以及Linux操作系統(tǒng)的移植和應用程序的開發(fā)。
何賓,知名的嵌入式和EDA技術專家,長期從事電子設計自動化方面的教學和科研工作,與全球多家知名的半導體廠商和EDA工具廠商密切合作。已經(jīng)出版電子信息方面的著作共40余部,內(nèi)容涵蓋電路仿真、電路設計、FPGA、數(shù)字信號處理、單片機、嵌入式系統(tǒng)等。典型的代表作有《模擬電子系統(tǒng)設計指南(基礎篇):從半導體、分立元件到TI集成電路的分析與實現(xiàn)》、《模擬電子系統(tǒng)設計指南(實踐篇):從半導體、分立元件到TI集成電路的分析與實現(xiàn)》、《Xilinx Zynq-7000嵌入式系統(tǒng)設計與實現(xiàn)-基于ARM Cortex-A9雙核處理器和Vivado的設計方法》、《Altium Designer17一體化設計標準教程-從仿真原理和PCB設計到單片機系統(tǒng)》、《STC8系列單片機開發(fā)指南:面向處理器、程序設計和操作系統(tǒng)的分析與應用》等。
目錄
第1章排序算法的原理和實現(xiàn)
1.1 選擇排序的原理和實現(xiàn)
1.1.1 選擇排序的原理
1.1.2 C語言程序設計
1.1.3 C語言編譯和調(diào)試
1.1.4 匯編語言程序設計
1.1.5 匯編語言編譯和調(diào)試
1.2 快速排序的原理和實現(xiàn)
1.2.1 快速排序的原理
1.2.2 C語言程序設計
1.2.3 C語言編譯和調(diào)試
1.2.4 匯編語言程序設計
1.2.5 匯編語言編譯和調(diào)試
1.3 插入排序的原理和實現(xiàn)
1.3.1 插入排序的原理
1.3.2C語言程序設計
1.3.3 C語言編譯和調(diào)試
1.3.4 匯編語言程序設計
1.3.5 匯編語言編譯和調(diào)試
1.4 基數(shù)排序的原理和實現(xiàn)
1.4.1 基數(shù)排序的原理
1.4.2 C語言程序設計
1.4.3 C語言編譯和調(diào)試
1.4.4 匯編語言程序設計
1.4.5 匯編語言編譯和調(diào)試
1.5 希爾排序的原理和實現(xiàn)
1.5.1 希爾排序的原理
1.5.2 C語言程序設計
1.5.3 C語言編譯和調(diào)試
1.5.4 匯編語言程序設計
1.5.5 匯編語言編譯和調(diào)試
1.6 歸并排序的原理和實現(xiàn)
1.6.1 歸并排序的原理
1.6.2 C語言程序設計-遞歸實現(xiàn)
1.6.3 C語言編譯和調(diào)試-遞歸實現(xiàn)
1.6.4 C語言程序設計-非遞歸實現(xiàn)
1.6.5 C語言編譯和調(diào)試-非遞歸實現(xiàn)
1.6.6 匯編語言程序設計
1.6.7 匯編語言編譯和調(diào)試
1.7 堆排序的原理和實現(xiàn)
1.7.1 堆排序的原理
1.7.2 C語言程序設計
1.7.3 C語言編譯和調(diào)試
1.7.4匯編語言程序設計
1.7.5匯編語言編譯和調(diào)試
第2章樹的算法原理和實現(xiàn)
2.1二叉樹遍歷原理和實現(xiàn)
2.1.1二叉樹遍歷的原理
2.1.2 C語言程序設計-遍歷的遞歸實現(xiàn)
2.1.3 C語言編譯及調(diào)試-遍歷的遞歸實現(xiàn)
2.1.4 C語言程序設計-遍歷的非遞歸實現(xiàn)
2.1.5 C語言編譯及調(diào)試-遍歷的非遞歸實現(xiàn)
2.1.6匯編語言程序設計
2.1.7匯編語言編譯和調(diào)試
2.2哈夫曼編碼原理和實現(xiàn)
2.2.1哈夫曼編碼的原理
2.2.2 C語言程序設計
2.2.3 C語言編譯及調(diào)試
2.2.4匯編語言程序設計
2.2.5匯編語言編譯和調(diào)試
第3章圖的算法原理和實現(xiàn)
3.1弗洛伊德算法原理和實現(xiàn)
3.1.1弗洛伊德算法的原理
3.1.2 C語言程序設計
3.1.3 C語言編譯和調(diào)試
3.1.4匯編語言程序設計
3.1.5匯編語言編譯并調(diào)試
3.2圖的鄰接表表示和實現(xiàn)
3.2.1圖的鄰接表表示方法
3.2.2基于鏈表的鄰接表設計思路
3.2.3 C語言程序設計-鄰接表的鏈表實現(xiàn)
3.2.4 C語言編譯和調(diào)試-鄰接表的鏈表實現(xiàn)
3.2.5基于數(shù)組的鄰接表設計思路
3.2.6 C語言程序設計-鄰接表的數(shù)組實現(xiàn)
3.2.7 C語言編譯和調(diào)試-鄰接表的數(shù)組實現(xiàn)
3.2.8匯編語言程序設計
3.2.9匯編語言編譯并調(diào)試
3.3深度和廣度優(yōu)先搜索算法原理和實現(xiàn)
3.3.1深度和廣度優(yōu)先搜索算法原理
3.3.2 C語言程序設計-基于鏈表和非遞歸的實現(xiàn)
3.3.3 C語言編譯和調(diào)試-基于鏈表和非遞歸的實現(xiàn)
3.3.4 C語言程序設計-基于數(shù)組和非遞歸的實現(xiàn)
3.3.5 C語言編譯和調(diào)試-基于數(shù)組和非遞歸的實現(xiàn)
3.3.6匯編語言程序設計
3.3.7匯編語言編譯和調(diào)試
第4章串口重定位的原理和實現(xiàn)
4.1 printf()函數(shù)的重定位實現(xiàn)
4.1.1分析標準庫函數(shù)printf()的執(zhí)行過程
4.1.2創(chuàng)建新的頭文件(uart3.h)
4.1.3創(chuàng)建新的源文件(uart3.c)
4.1.4創(chuàng)建新的putcharr.c文件
4.1.5修改print.h與printf.c文件
4.2 scanf()函數(shù)的重定位實現(xiàn)
4.2.1分析標準庫函數(shù)scanf()的執(zhí)行過程
4.2.2修改源文件uart3.c
4.2.3創(chuàng)建新的頭文件(scanf.h)
4.2.4創(chuàng)建新的源文件(scanf.c)
4.3主函數(shù)下添加設計代碼
4.4輸入和輸出函數(shù)重定位的測試
4.4.1配置PuTTY工具和串口調(diào)試助手
4.4.2scanf()函數(shù)的只讀模式測試
4.4.3數(shù)據(jù)流與控制流匹配測試
4.4.4返回已讀取字符數(shù)測試
4.4.5輸入十進制整數(shù)測試
4.4.6輸入八進制整數(shù)測試
4.4.7輸入十六進制整數(shù)測試
4.4.8輸入浮點數(shù)測試
4.4.9輸入字符測試
4.4.10輸入字符串測試
4.4.11輸入指針測試
4.4.12掃描模式輸入字符串測試
4.4.13數(shù)據(jù)流的緩存測試
第5章數(shù)字電子鐘的設計和實現(xiàn)
5.1實時時鐘模塊的原理
5.1.1實時時鐘內(nèi)部結(jié)構(gòu)
5.1.2實時時鐘寄存器集
5.2 I2C總線及模塊的原理
5.2.1 I2C總線規(guī)范
5.2.2 I2C模塊的原理
5.3 OLED顯示模塊原理
5.3.1 OLED的性能和參數(shù)
5.3.2 OLED模塊的電路
5.3.3 I2C總線寫數(shù)據(jù)
5.3.4 I2C的寫模式
5.3.5 I2C的數(shù)據(jù)位傳輸
5.3.6圖形顯示數(shù)據(jù)RAM
5.3.7存儲器尋址模式
5.4數(shù)字電子鐘軟件的設計
5.4.1創(chuàng)建oled_driver.h文件
5.4.2創(chuàng)建oled_driver.c文件
5.4.3創(chuàng)建chars.h文件
5.4.4創(chuàng)建picture.h文件
5.4.5修改bsp.h文件
5.4.6修改main.c文件
5.5編譯和下載設計文件
5.5.1硬件平臺的準備
5.5.2設計下載
第6章人機交互游戲的設計和實現(xiàn)
6.1顯示控制器模塊原理
6.1.1 DC模塊的特性
6.1.2 DC模塊寄存器集
6.1.3 LCD的位模式
6.2 LCD屏的性能與操作
6.2.1 LCD屏的性能參數(shù)
6.2.2 LCD屏的引腳
6.2.3 LCD屏的時序
6.3系統(tǒng)硬件設計
6.3.1 LCD屏與開發(fā)板的連接
6.3.2按鍵模塊與開發(fā)板的連接
6.4 GPIO和LCD驅(qū)動API
6.4.1 GPIO API函數(shù)
6.4.2 LCD API函數(shù)
6.5系統(tǒng)軟件設計
6.5.1屏幕設計問題分析
6.5.2編寫軟件代碼
6.6系統(tǒng)調(diào)試和驗證
第7章USB設備的操作原理和訪問實現(xiàn)
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獲取并打印存儲器分區(qū)信息
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操作系統(tǒng)原理和應用
8.1操作系統(tǒng)的背景和需求
8.1.1裸機環(huán)境下的應用場景
8.1.2操作系統(tǒng)的基本概念
8.1.3嵌入式RTOS基礎
8.2 RT-Thread操作系統(tǒng)簡介
8.2.1 RT-Thread操作系統(tǒng)的發(fā)展歷史
8.2.2 RT-Thread操作系統(tǒng)的架構(gòu)
8.3線程原理及實現(xiàn)方法
8.3.1線程的概念
8.3.2線程控制塊
8.3.3線程屬性
8.3.4系統(tǒng)線程
8.3.5線程管理API
8.3.6調(diào)度器與調(diào)度規(guī)則
8.4定時器原理及實現(xiàn)方法
8.4.1定時器的概念
8.4.2定時器工作原理
8.4.3定時器控制塊
8.4.4定時器API
8.5內(nèi)存管理及實現(xiàn)方法
8.5.1靜態(tài)內(nèi)存分配
8.5.2動態(tài)內(nèi)存分配
8.5.3 RT-Thread操作系統(tǒng)中的內(nèi)存分配
8.5.4內(nèi)存管理API
8.6信號量原理及實現(xiàn)方法
8.6.1信號量的概念
8.6.2信號量工作原理
8.6.3信號量控制塊
8.6.4信號量API
8.7互斥量原理及實現(xiàn)方法
8.7.1互斥量的概念
8.7.2互斥量的工作原理
8.7.3互斥量控制塊
8.7.4互斥量API
8.8事件集原理及實現(xiàn)方法
8.8.1事件集概念
8.8.2事件集工作原理
8.8.3事件控制塊
8.8.4事件集API
8.9消息隊列原理及實現(xiàn)方法
8.9.1消息隊列的概念
8.9.2消息隊列工作原理
8.9.3消息隊列控制塊
8.9.4消息隊列API
8.10操作系統(tǒng)應用實例一:理發(fā)師問題
8.10.1理發(fā)師問題的背景
8.10.2理發(fā)師問題的同步處理
8.10.3理發(fā)師問題的解決
8.10.4設計編譯和調(diào)試
8.11操作系統(tǒng)應用實例二:哲學家進餐問題
8.11.1哲學家進餐問題的背景
8.11.2哲學家進餐問題的同步處理
8.11.3哲學家進餐問題的解決
8.11.4設計編譯和調(diào)試
8.12操作系統(tǒng)應用實例三:吸煙者問題
8.12.1吸煙者問題的背景
8.12.2吸煙者問題的同步處理
8.12.3吸煙者問題的解決
8.12.4設計編譯和調(diào)試
第9章網(wǎng)絡傳輸?shù)脑砗蛯崿F(xiàn)
9.1內(nèi)建GMAC模塊功能
9.1.1 DMA寄存器描述
9.1.2 GMAC寄存器描述
9.2 LwIP協(xié)議;A:原始API
9.2.1回調(diào)
9.2.2 TCP連接設置
9.2.3發(fā)送 TCP 數(shù)據(jù)
9.2.4接收TCP數(shù)據(jù)
9.2.5應用輪詢
9.2.6關閉和終止連接
9.2.7底層TCP接口
9.2.8 UDP接口
9.2.9系統(tǒng)初始化
9.2.10優(yōu)化提示
9.2.11零復制MAC
9.3 TCP與UDP的原理和實現(xiàn)方法
9.3.1 TCP的三次握手和四次揮手
9.3.2 TCP與UDP的區(qū)別
9.3.3采用套接字的TCP實現(xiàn)方法
9.3.4采用套接字的UDP實現(xiàn)方法
9.4網(wǎng)絡傳輸?shù)膶崿F(xiàn)
9.4.1創(chuàng)建新的設計工程
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網(wǎng)絡通信的測試與驗證
9.5.1測試前的準備工作
9.5.2設置計算機的IP地址
9.5.3 TCP服務器測試
9.5.4TCP客戶端測試
9.5.5 UDP服務器測試
9.5.6 UDP客戶端測試
第10章Linux操作系統(tǒng)的移植和應用程序的開發(fā)
10.1 Tftpd32工具的下載和安裝
10.2 VMware虛擬機的下載和安裝
10.3 Ubuntu操作系統(tǒng)的下載和安裝
10.3.1下載Ubuntu操作系統(tǒng)鏡像
10.3.2安裝Ubuntu操作系統(tǒng)
10.4設置共享文件夾
10.5交叉編譯器的安裝
10.6 Linux內(nèi)核源碼的編譯
10.7編譯Linux文件系統(tǒng)
10.8配置下載環(huán)境參數(shù)
10.8.1復制文件到共享文件夾
10.8.2 確認計算機的IP地址信息
10.8.3 配置Tftpd32工具參數(shù)
10.8.4 配置Putty工具參數(shù)
10.9下載內(nèi)核和文件系統(tǒng)
10.10應用程序的開發(fā)