微型計算機系統(tǒng)原理及應(yīng)用:國產(chǎn)龍芯處理器的軟件和硬件集成(實訓篇)
定 價:99 元
叢書名:計算機與嵌入式系統(tǒng)系列教材
- 作者:何賓 等
- 出版時間:2022/8/1
- ISBN:9787121441028
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP36
- 頁碼:380
- 紙張:
- 版次:01
- 開本:16開
本書作為《微型計算機系統(tǒng)原理及應(yīng)用:國產(chǎn)龍芯處理器的軟件和硬件集成(基礎(chǔ)篇)》的配套實訓教材,主要是為電子信息類專業(yè)和計算機類專業(yè)的計算機實訓類課程提供完備的教學資源。本書以國產(chǎn)龍芯1B處理器為核心,將國產(chǎn)軟件集成開發(fā)環(huán)境和國產(chǎn)操作系統(tǒng)引入計算機類課程的實訓教學中,使學生能真正系統(tǒng)地掌握計算機的軟件和硬件知識,培養(yǎng)學生具有獨立分析和解決計算機系統(tǒng)問題的能力。 本書從計算機軟件算法、外設(shè)工作原理和操作系統(tǒng)3個不同角度,對計算機系統(tǒng)原理、計算機接口技術(shù)、數(shù)據(jù)結(jié)構(gòu)、編譯原理、計算機網(wǎng)絡(luò)、操作系統(tǒng)、匯編語言程序設(shè)計和C語言程序設(shè)計等課程的主要知識點進行深入解析,使讀者能夠從“全系統(tǒng)”的角度來看待計算機系統(tǒng)的軟件和硬件。 全書共10章,主要內(nèi)容包括:排序算法的原理和實現(xiàn)、樹的算法原理和實現(xiàn)、圖的算法原理和實現(xiàn)、串口重定位原理和實現(xiàn)、數(shù)字電子鐘的設(shè)計和實現(xiàn)、人機交互游戲的設(shè)計和實現(xiàn)、USB設(shè)備的操作原理和訪問實現(xiàn)、RT-Thread操作系統(tǒng)原理和應(yīng)用、網(wǎng)絡(luò)傳輸?shù)脑砗蛯崿F(xiàn),以及Linux操作系統(tǒng)的移植和應(yīng)用程序的開發(fā)。 全書共分為10章,主要內(nèi)容包括:排序算法的原理和實現(xiàn)、樹的算法原理和實現(xiàn)、圖的算法原理和實現(xiàn)、串口重定位原理和實現(xiàn)、電子鐘的設(shè)計和實現(xiàn)、人機交互游戲的設(shè)計和實現(xiàn)、USB設(shè)備的操作原理和訪問實現(xiàn)、RT-Thread操作系統(tǒng)原理和應(yīng)用、網(wǎng)絡(luò)傳輸?shù)脑砗蛯崿F(xiàn),以及Linux操作系統(tǒng)的移植和應(yīng)用程序的開發(fā)。
何賓,知名的嵌入式和EDA技術(shù)專家,長期從事電子設(shè)計自動化方面的教學和科研工作,與全球多家知名的半導體廠商和EDA工具廠商密切合作。已經(jīng)出版電子信息方面的著作共40余部,內(nèi)容涵蓋電路仿真、電路設(shè)計、FPGA、數(shù)字信號處理、單片機、嵌入式系統(tǒng)等。典型的代表作有《模擬電子系統(tǒng)設(shè)計指南(基礎(chǔ)篇):從半導體、分立元件到TI集成電路的分析與實現(xiàn)》、《模擬電子系統(tǒng)設(shè)計指南(實踐篇):從半導體、分立元件到TI集成電路的分析與實現(xiàn)》、《Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計與實現(xiàn)-基于ARM Cortex-A9雙核處理器和Vivado的設(shè)計方法》、《Altium Designer17一體化設(shè)計標準教程-從仿真原理和PCB設(shè)計到單片機系統(tǒng)》、《STC8系列單片機開發(fā)指南:面向處理器、程序設(shè)計和操作系統(tǒng)的分析與應(yīng)用》等。
目錄
第1章排序算法的原理和實現(xiàn)
1.1 選擇排序的原理和實現(xiàn)
1.1.1 選擇排序的原理
1.1.2 C語言程序設(shè)計
1.1.3 C語言編譯和調(diào)試
1.1.4 匯編語言程序設(shè)計
1.1.5 匯編語言編譯和調(diào)試
1.2 快速排序的原理和實現(xiàn)
1.2.1 快速排序的原理
1.2.2 C語言程序設(shè)計
1.2.3 C語言編譯和調(diào)試
1.2.4 匯編語言程序設(shè)計
1.2.5 匯編語言編譯和調(diào)試
1.3 插入排序的原理和實現(xiàn)
1.3.1 插入排序的原理
1.3.2C語言程序設(shè)計
1.3.3 C語言編譯和調(diào)試
1.3.4 匯編語言程序設(shè)計
1.3.5 匯編語言編譯和調(diào)試
1.4 基數(shù)排序的原理和實現(xiàn)
1.4.1 基數(shù)排序的原理
1.4.2 C語言程序設(shè)計
1.4.3 C語言編譯和調(diào)試
1.4.4 匯編語言程序設(shè)計
1.4.5 匯編語言編譯和調(diào)試
1.5 希爾排序的原理和實現(xiàn)
1.5.1 希爾排序的原理
1.5.2 C語言程序設(shè)計
1.5.3 C語言編譯和調(diào)試
1.5.4 匯編語言程序設(shè)計
1.5.5 匯編語言編譯和調(diào)試
1.6 歸并排序的原理和實現(xiàn)
1.6.1 歸并排序的原理
1.6.2 C語言程序設(shè)計-遞歸實現(xiàn)
1.6.3 C語言編譯和調(diào)試-遞歸實現(xiàn)
1.6.4 C語言程序設(shè)計-非遞歸實現(xiàn)
1.6.5 C語言編譯和調(diào)試-非遞歸實現(xiàn)
1.6.6 匯編語言程序設(shè)計
1.6.7 匯編語言編譯和調(diào)試
1.7 堆排序的原理和實現(xiàn)
1.7.1 堆排序的原理
1.7.2 C語言程序設(shè)計
1.7.3 C語言編譯和調(diào)試
1.7.4匯編語言程序設(shè)計
1.7.5匯編語言編譯和調(diào)試
第2章樹的算法原理和實現(xiàn)
2.1二叉樹遍歷原理和實現(xiàn)
2.1.1二叉樹遍歷的原理
2.1.2 C語言程序設(shè)計-遍歷的遞歸實現(xiàn)
2.1.3 C語言編譯及調(diào)試-遍歷的遞歸實現(xiàn)
2.1.4 C語言程序設(shè)計-遍歷的非遞歸實現(xiàn)
2.1.5 C語言編譯及調(diào)試-遍歷的非遞歸實現(xiàn)
2.1.6匯編語言程序設(shè)計
2.1.7匯編語言編譯和調(diào)試
2.2哈夫曼編碼原理和實現(xiàn)
2.2.1哈夫曼編碼的原理
2.2.2 C語言程序設(shè)計
2.2.3 C語言編譯及調(diào)試
2.2.4匯編語言程序設(shè)計
2.2.5匯編語言編譯和調(diào)試
第3章圖的算法原理和實現(xiàn)
3.1弗洛伊德算法原理和實現(xiàn)
3.1.1弗洛伊德算法的原理
3.1.2 C語言程序設(shè)計
3.1.3 C語言編譯和調(diào)試
3.1.4匯編語言程序設(shè)計
3.1.5匯編語言編譯并調(diào)試
3.2圖的鄰接表表示和實現(xiàn)
3.2.1圖的鄰接表表示方法
3.2.2基于鏈表的鄰接表設(shè)計思路
3.2.3 C語言程序設(shè)計-鄰接表的鏈表實現(xiàn)
3.2.4 C語言編譯和調(diào)試-鄰接表的鏈表實現(xiàn)
3.2.5基于數(shù)組的鄰接表設(shè)計思路
3.2.6 C語言程序設(shè)計-鄰接表的數(shù)組實現(xiàn)
3.2.7 C語言編譯和調(diào)試-鄰接表的數(shù)組實現(xiàn)
3.2.8匯編語言程序設(shè)計
3.2.9匯編語言編譯并調(diào)試
3.3深度和廣度優(yōu)先搜索算法原理和實現(xiàn)
3.3.1深度和廣度優(yōu)先搜索算法原理
3.3.2 C語言程序設(shè)計-基于鏈表和非遞歸的實現(xiàn)
3.3.3 C語言編譯和調(diào)試-基于鏈表和非遞歸的實現(xiàn)
3.3.4 C語言程序設(shè)計-基于數(shù)組和非遞歸的實現(xiàn)
3.3.5 C語言編譯和調(diào)試-基于數(shù)組和非遞歸的實現(xiàn)
3.3.6匯編語言程序設(shè)計
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ù)下添加設(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ù)字電子鐘的設(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ù)字電子鐘軟件的設(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編譯和下載設(shè)計文件
5.5.1硬件平臺的準備
5.5.2設(shè)計下載
第6章人機交互游戲的設(shè)計和實現(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)硬件設(shè)計
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)軟件設(shè)計
6.5.1屏幕設(shè)計問題分析
6.5.2編寫軟件代碼
6.6系統(tǒng)調(diào)試和驗證
第7章USB設(shè)備的操作原理和訪問實現(xiàn)
7.1USB的初始化
7.1.1USB初始化框架
7.1.2USB底層初始化
7.1.3 USB分配新設(shè)備
7.1.4 USB新建新設(shè)備
7.1.5提交命令到最底層
7.2 USB存儲設(shè)備的初始化
7.2.1掃描USB設(shè)備
7.2.2配置USB存儲設(shè)備
7.2.3讀取和寫入操作
7.2.4復(fù)位與傳輸操作
7.2.5獲取存儲設(shè)備
7.3 USB存儲設(shè)備的訪問
7.3.1測試存儲器程序框架
7.3.2獲取并打印存儲器分區(qū)信息
7.3.3判別塊存儲設(shè)備
7.3.4搜索目標文件
7.3.5讀取目標文件
7.4 USB HID的初始化和訪問
7.4.1USB HID原理
7.4.2鍵盤設(shè)備初始化
7.4.3鍵盤中斷服務(wù)程序
7.4.4檢測按鍵輸入
7.4.5獲取輸入字符
7.5USB設(shè)備的停止
7.6USB存儲設(shè)備和USB鍵盤的測試
7.6.1存儲設(shè)備的測試
7.6.2鍵盤設(shè)備的測試
第8章RT-Thread操作系統(tǒng)原理和應(yīng)用
8.1操作系統(tǒng)的背景和需求
8.1.1裸機環(huán)境下的應(yīng)用場景
8.1.2操作系統(tǒng)的基本概念
8.1.3嵌入式RTOS基礎(chǔ)
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)應(yīng)用實例一:理發(fā)師問題
8.10.1理發(fā)師問題的背景
8.10.2理發(fā)師問題的同步處理
8.10.3理發(fā)師問題的解決
8.10.4設(shè)計編譯和調(diào)試
8.11操作系統(tǒng)應(yīng)用實例二:哲學家進餐問題
8.11.1哲學家進餐問題的背景
8.11.2哲學家進餐問題的同步處理
8.11.3哲學家進餐問題的解決
8.11.4設(shè)計編譯和調(diào)試
8.12操作系統(tǒng)應(yīng)用實例三:吸煙者問題
8.12.1吸煙者問題的背景
8.12.2吸煙者問題的同步處理
8.12.3吸煙者問題的解決
8.12.4設(shè)計編譯和調(diào)試
第9章網(wǎng)絡(luò)傳輸?shù)脑砗蛯崿F(xiàn)
9.1內(nèi)建GMAC模塊功能
9.1.1 DMA寄存器描述
9.1.2 GMAC寄存器描述
9.2 LwIP協(xié)議;A(chǔ):原始API
9.2.1回調(diào)
9.2.2 TCP連接設(shè)置
9.2.3發(fā)送 TCP 數(shù)據(jù)
9.2.4接收TCP數(shù)據(jù)
9.2.5應(yīng)用輪詢
9.2.6關(guān)閉和終止連接
9.2.7底層TCP接口
9.2.8 UDP接口
9.2.9系統(tǒng)初始化
9.2.10優(yōu)化提示
9.2.11零復(fù)制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)絡(luò)傳輸?shù)膶崿F(xiàn)
9.4.1創(chuàng)建新的設(shè)計工程
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)絡(luò)通信的測試與驗證
9.5.1測試前的準備工作
9.5.2設(shè)置計算機的IP地址
9.5.3 TCP服務(wù)器測試
9.5.4TCP客戶端測試
9.5.5 UDP服務(wù)器測試
9.5.6 UDP客戶端測試
第10章Linux操作系統(tǒng)的移植和應(yī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設(shè)置共享文件夾
10.5交叉編譯器的安裝
10.6 Linux內(nèi)核源碼的編譯
10.7編譯Linux文件系統(tǒng)
10.8配置下載環(huán)境參數(shù)
10.8.1復(fù)制文件到共享文件夾
10.8.2 確認計算機的IP地址信息
10.8.3 配置Tftpd32工具參數(shù)
10.8.4 配置Putty工具參數(shù)
10.9下載內(nèi)核和文件系統(tǒng)
10.10應(yīng)用程序的開發(fā)