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