嵌入式系統(tǒng)應(yīng)用開發(fā)——基于RISC-V架構(gòu)玄鐵處理器
定 價(jià):69 元
叢書名:RISC-V工程技術(shù)叢書
- 作者:王宜懷、賈俊鋮、 陳林、索明何、許佳捷
- 出版時(shí)間:2025/8/1
- ISBN:9787302695509
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP332.021
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
《嵌入式系統(tǒng)應(yīng)用開發(fā)——基于RISC-V架構(gòu)玄鐵處理器》以全志科技的RSIC-V架構(gòu)64位玄鐵C906內(nèi)核D1-H芯片為藍(lán)本,以知識(shí)要素為核心,遵循構(gòu)件化原則,闡述嵌入式系統(tǒng)應(yīng)用開發(fā)方法。硬件載體為基于D1-H構(gòu)建的通用嵌入式計(jì)算機(jī)AHL-D1-H,可以滿足基本實(shí)踐需要。全書共13章,其中,第1章簡要闡述嵌入式系統(tǒng)的知識(shí)體系、學(xué)習(xí)誤區(qū)與學(xué)習(xí)建議;第2章給出指令系統(tǒng)與匯編語言語法;第3章給出D1-H硬件最小系統(tǒng);第4章以GPIO為例給出規(guī)范的工程組織框架;第5章給出嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件基本規(guī)范;第6章闡述串行通信接口UART,并給出優(yōu)質(zhì)個(gè)帶中斷的實(shí)例。第1~6章囊括了學(xué)習(xí)嵌入式系統(tǒng)入門環(huán)節(jié)的完整要素。第7~10章給出了定時(shí)器、PWM、Flash在線編程、ADC、DMA、SPI、I2C、系統(tǒng)時(shí)鐘與看門狗等模塊。第11章介紹實(shí)時(shí)操作系統(tǒng)。第12章給出嵌入式人工智能的應(yīng)用。第13章給出進(jìn)一步的學(xué)習(xí)導(dǎo)引!肚度胧较到y(tǒng)應(yīng)用開發(fā)——基于RISC-V架構(gòu)玄鐵處理器》提供豐富的教學(xué)資源,適用于高等學(xué)校嵌入式系統(tǒng)的教學(xué)或技術(shù)培訓(xùn),也可供嵌入式系統(tǒng)應(yīng)用技術(shù)人員研發(fā)時(shí)參考。
《嵌入式系統(tǒng)應(yīng)用開發(fā)——基于RISC-V架構(gòu)玄鐵處理器》以RSIC-V架構(gòu)64位玄鐵C906內(nèi)核D1-H芯片為藍(lán)本,以嵌入式硬件構(gòu)件及底層軟件構(gòu)件設(shè)計(jì)為主線,以知識(shí)要素為核心,遵循構(gòu)件化原則,基于嵌入式軟件工程的思想闡述嵌入式系統(tǒng)應(yīng)用開發(fā)方法。硬件載體為基于D1-H構(gòu)建的通用嵌入式計(jì)算機(jī)AHL-D1-H,可以滿足基本實(shí)踐需要。邏輯清晰,方便理解對于嵌入式“通用知識(shí)”的基本原理,以應(yīng)用為立足點(diǎn)進(jìn)行闡述,同時(shí)注意與芯片相關(guān)知識(shí)之間的銜接,使讀者在更好地熟悉基本原理的基礎(chǔ)上理解芯片應(yīng)用的設(shè)計(jì)。知識(shí)系統(tǒng),層次遞進(jìn)《嵌入式系統(tǒng)應(yīng)用開發(fā)——基于RISC-V架構(gòu)玄鐵處理器》以知識(shí)要素為基本立足點(diǎn)設(shè)計(jì)芯片底層驅(qū)動(dòng),使應(yīng)用程序與芯片無關(guān),具有通用嵌入式計(jì)算機(jī)性質(zhì)。書中提前闡述大部分驅(qū)動(dòng)的使用方法,而后置驅(qū)動(dòng)構(gòu)件的設(shè)計(jì)方法,目的是先學(xué)會(huì)使用構(gòu)件進(jìn)行實(shí)際編程,后理解構(gòu)件的設(shè)計(jì)方法。程序驗(yàn)證,實(shí)用性強(qiáng)書中所有源程序均經(jīng)測試通過,并保留測試用例在《嵌入式系統(tǒng)應(yīng)用開發(fā)——基于RISC-V架構(gòu)玄鐵處理器》的教學(xué)資源中,避免了例程的書寫或固有錯(cuò)誤給讀者帶來煩惱,可以為讀者進(jìn)行實(shí)際項(xiàng)目開發(fā)節(jié)省大量時(shí)間。資源豐富,易教易學(xué)為了便于教師教學(xué),提供全套教學(xué)資料,獲取方式詳見前言。
前言
嵌入式系統(tǒng)即嵌入式計(jì)算機(jī)系統(tǒng),其概念最初源于傳統(tǒng)測控系統(tǒng)對計(jì)算機(jī)系統(tǒng)的需求。計(jì)算機(jī)系統(tǒng)可為通用計(jì)算機(jī)系統(tǒng)與嵌入式計(jì)算機(jī)系統(tǒng),通用計(jì)算機(jī)已經(jīng)在科學(xué)計(jì)算、通信、日常生活等各個(gè)領(lǐng)域產(chǎn)生了重要影響,在后PC時(shí)代,嵌入式系統(tǒng)的廣闊應(yīng)用是計(jì)算機(jī)發(fā)展的重要特征,包括機(jī)器人、工業(yè)控制、汽車電子、嵌入式人工智能、物聯(lián)網(wǎng)、手機(jī)等產(chǎn)品開發(fā)。近年來,RISCV架構(gòu)國產(chǎn)嵌入式芯片不斷出現(xiàn),如何將其納入嵌入式技術(shù)的基礎(chǔ)教學(xué),是值得研究的課題。經(jīng)過三年多的開發(fā)研究,蘇州大學(xué)嵌入式人工智能與物聯(lián)網(wǎng)實(shí)驗(yàn)室完成了硬件系統(tǒng)、集成開發(fā)環(huán)境、底層驅(qū)動(dòng)構(gòu)件、樣例程序等工作。在此基礎(chǔ)上,并依托前期 “十二五”普通高等教育本科規(guī)劃教材和本科一流課程的積累,遵循把復(fù)雜問題簡單化的基本理念,按照由淺入深的原則,撰寫本書。
本書以全志科技的RSICV架構(gòu)64位玄鐵C906內(nèi)核D1H芯片為藍(lán)本,以知識(shí)要素為核心,遵循構(gòu)件化原則,闡述嵌入式系統(tǒng)應(yīng)用開發(fā)方法。硬件載體為基于D1H構(gòu)建的通用嵌入式計(jì)算機(jī)AHLD1H,可以滿足基本實(shí)踐需要。
書中以嵌入式硬件構(gòu)件及底層軟件構(gòu)件設(shè)計(jì)為主線,基于嵌入式軟件工程的思想,按照“通用知識(shí)—驅(qū)動(dòng)構(gòu)件使用方法—測試實(shí)例—構(gòu)件制作過程”的順序,逐步闡述嵌入式技術(shù)基礎(chǔ)。需要特別說明的是,雖然撰寫圖書與教學(xué)必須以某一特定芯片為藍(lán)本,但作為嵌入式技術(shù)基礎(chǔ),本書試圖闡述嵌入式通用知識(shí)要素。因此,本書以知識(shí)要素為基本立足點(diǎn)設(shè)計(jì)芯片底層驅(qū)動(dòng),使得應(yīng)用程序與芯片無關(guān),具有通用嵌入式計(jì)算機(jī)(GEC)性質(zhì)。書中將大部分驅(qū)動(dòng)的使用方法提前闡述,而驅(qū)動(dòng)構(gòu)件的設(shè)計(jì)方法后置,目的是先學(xué)會(huì)使用構(gòu)件進(jìn)行實(shí)際編程,再理解構(gòu)件的設(shè)計(jì)方法。因構(gòu)件設(shè)計(jì)方法部分有一定的難度,對于不同要求的教學(xué)場景,也可不要求學(xué)生理解全部構(gòu)件的設(shè)計(jì)方法,講解一兩個(gè)即可。
本書具有以下特點(diǎn)。
(1) 把握通用知識(shí)與芯片相關(guān)知識(shí)之間的平衡。書中對于嵌入式“通用知識(shí)”的基本原理,以應(yīng)用為立足點(diǎn),進(jìn)行語言簡潔、邏輯清晰的闡述,同時(shí)注意芯片相關(guān)知識(shí)之間的銜接,使讀者在更好地理解基本原理的基礎(chǔ)上理解芯片應(yīng)用的設(shè)計(jì),同時(shí)反過來加深對通用知識(shí)的理解。
(2) 把握硬件與軟件的關(guān)系。嵌入式系統(tǒng)是軟件與硬件的綜合體,嵌入式系統(tǒng)設(shè)計(jì)是一個(gè)軟件、硬件協(xié)同設(shè)計(jì)的工程,不能像通用計(jì)算機(jī)那樣,將軟件、硬件完全分開來看。特別是對電子系統(tǒng)智能化嵌入式應(yīng)用來說,沒有對硬件的理解就不可能寫好嵌入式軟件,同樣沒有對軟件的理解也不可能設(shè)計(jì)好嵌入式硬件。因此,本書注重把握硬件知識(shí)與軟件知識(shí)之間的關(guān)系。
(3) 對底層驅(qū)動(dòng)進(jìn)行構(gòu)件化封裝。書中對每個(gè)模塊均根據(jù)嵌入式軟件工程基本原則并按照構(gòu)件化封裝要求編制底層驅(qū)動(dòng)程序,同時(shí)給出詳細(xì)、規(guī)范的注釋及對外接口,為實(shí)際應(yīng)用提供底層構(gòu)件,方便移植與復(fù)用,從而在實(shí)際項(xiàng)目開發(fā)中節(jié)省大量時(shí)間。
(4) 設(shè)計(jì)合理的測試用例。書中所有源程序均經(jīng)測試通過,并在本書的配套教學(xué)資源中提供測試用例,避免了例程的書寫或固有錯(cuò)誤帶來的麻煩。這些測試用例為讀者驗(yàn)證與理解帶來方便。
(5) 配套教學(xué)資源提供了所有模塊的完整底層驅(qū)動(dòng)構(gòu)件化封裝程序與測試用例。需要使用PC程序的測試用例,還提供了PC的C#源程序、芯片資料、使用文檔、硬件說明等,另外制作了教學(xué)課件及微課視頻,并且教學(xué)資源的版本將會(huì)適時(shí)更新。
本書由王宜懷、賈俊鋮、陳林、索明何、許佳捷編寫,蘇州大學(xué)嵌入式人工智能與物聯(lián)網(wǎng)實(shí)驗(yàn)室的研究生參與了程序開發(fā)、書稿內(nèi)容整理及有關(guān)資源建設(shè),他們卓有成效的工作使得本書更加充實(shí)。阿里云計(jì)算有限公司、全志科技的技術(shù)人員提供了許多技術(shù)支持,在此一并表示誠摯的感謝。
配套資源
程序代碼、硬件開發(fā)板及相關(guān)資源: 掃描目錄上方的二維碼下載。
教學(xué)課件、實(shí)驗(yàn)指導(dǎo)、軟件工具、芯片資料、套件用戶手冊、硬件電路圖等資源: 到清華大學(xué)出版社官方網(wǎng)站本書頁面下載,或者掃描封底的“書圈”二維碼在公眾號(hào)下載。
微課視頻(385分鐘,24集): 掃描書中相應(yīng)章節(jié)中的二維碼在線學(xué)習(xí)。
注: 請先掃描封底刮刮卡中的文泉云盤防盜碼進(jìn)行綁定后再獲取配套資源。
鑒于作者水平有限,書中難免存在不足之處,懇望讀者提出寶貴意見和建議。
蘇州大學(xué)王宜懷
2025年6月
目錄
配套資源
第1章概述
視頻講解: 26分鐘,2集
1.1初識(shí)嵌入式系統(tǒng)
1.1.1運(yùn)行硬件系統(tǒng)
1.1.2實(shí)踐體系簡介
1.2嵌入式系統(tǒng)的定義、發(fā)展簡史、分類及特點(diǎn)
1.2.1嵌入式系統(tǒng)的定義
1.2.2嵌入式系統(tǒng)的由來及發(fā)展簡史
1.2.3嵌入式系統(tǒng)的分類
1.2.4嵌入式系統(tǒng)的特點(diǎn)
1.3嵌入式系統(tǒng)的學(xué)習(xí)困惑、知識(shí)體系及學(xué)習(xí)建議
1.3.1嵌入式系統(tǒng)的學(xué)習(xí)困惑
1.3.2嵌入式系統(tǒng)的知識(shí)體系
1.3.3基礎(chǔ)階段的學(xué)習(xí)建議
1.4微控制器與應(yīng)用處理器簡介
1.4.1MCU簡介
1.4.2以MCU為核心的嵌入式測控產(chǎn)品的基本組成
1.4.3MAP簡介
1.5嵌入式系統(tǒng)常用術(shù)語
1.5.1與硬件相關(guān)的術(shù)語
1.5.2與通信相關(guān)的術(shù)語
1.5.3與功能模塊相關(guān)的術(shù)語
1.6C語言概要
1.6.1運(yùn)算符
1.6.2數(shù)據(jù)類型
1.6.3流程控制
1.6.4函數(shù)
1.6.5編譯預(yù)處理
本章小結(jié)
習(xí)題
第2章RISCV指令系統(tǒng)與匯編語言語法
視頻講解: 30分鐘,1集
2.1RISCV架構(gòu)概述
2.1.1RISC與ISA名詞解釋
2.1.2RISCV簡介
2.2寄存器與尋址方式
2.2.1寄存器通用基礎(chǔ)知識(shí)
2.2.2RISCV架構(gòu)主要寄存器
2.2.3指令保留字簡表與尋址方式
2.2.4機(jī)器碼的獲取方法
2.3RISCV基本指令分類解析
2.3.1數(shù)據(jù)傳送類指令
2.3.2數(shù)據(jù)操作類指令
2.3.3跳轉(zhuǎn)類指令
2.3.4控制及狀態(tài)寄存器類指令
2.3.5其他指令
2.4RISCV匯編語言的基本語法
2.4.1匯編語言的格式
2.4.2常用偽指令簡介
本章小結(jié)
習(xí)題
第3章D1H硬件最小系統(tǒng)
視頻講解: 23分鐘,1集
3.1D1H微處理器概述
3.1.1D1H的基本功能
3.1.2D1H的存儲(chǔ)器映像
3.1.3D1H的中斷源
3.2D1H的硬件最小系統(tǒng)
3.2.1硬件最小系統(tǒng)的概念
3.2.2D1H的引腳功能
3.2.3D1H硬件最小系統(tǒng)設(shè)計(jì)
3.3由D1H構(gòu)建通用嵌入式計(jì)算機(jī)
3.3.1嵌入式系統(tǒng)應(yīng)用開發(fā)方式存在的問題與解決辦法
3.3.2提出GEC概念的時(shí)機(jī)、GEC定義與特點(diǎn)
3.3.3由D1H構(gòu)成的GEC
本章小結(jié)
習(xí)題
第4章GPIO及程序框架
視頻講解: 61分鐘,3集
4.1GPIO基礎(chǔ)知識(shí)
4.1.1GPIO概念
4.1.2輸出引腳的基本接法
4.1.3上拉下拉電阻與輸入引腳的基本接法
4.2軟件干預(yù)硬件的方法
4.2.1AHLD1H的GPIO引腳
4.2.2GPIO構(gòu)件API
4.2.3GPIO構(gòu)件的輸出測試方法
4.3認(rèn)識(shí)工程框架
4.3.1工程框架及所含文件簡介
4.3.2了解機(jī)器碼文件及D1H的啟動(dòng)流程
4.3.3D1H的實(shí)際啟動(dòng)過程
4.4GPIO構(gòu)件的制作過程
4.4.1GPIO基本編程步驟及點(diǎn)亮一盞小燈
4.4.2GPIO構(gòu)件的設(shè)計(jì)
4.5優(yōu)質(zhì)個(gè)匯編語言工程: 控制小燈閃爍
4.5.1匯編工程文件的組織
4.5.2匯編語言小燈測試工程主程序
本章小結(jié)
習(xí)題
第5章嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件基本規(guī)范
視頻講解: 20分鐘,1集
5.1嵌入式硬件構(gòu)件
5.1.1嵌入式硬件構(gòu)件概念與嵌入式硬件構(gòu)件分類
5.1.2基于嵌入式硬件構(gòu)件的電路原理圖設(shè)計(jì)簡明規(guī)則
5.2嵌入式底層驅(qū)動(dòng)構(gòu)件的概念與層次模型
5.2.1嵌入式底層驅(qū)動(dòng)構(gòu)件的概念
5.2.2嵌入式硬件構(gòu)件與軟件構(gòu)件結(jié)合的層次模型
5.2.3嵌入式開發(fā)中的構(gòu)件分類
5.2.4構(gòu)件的基本特征與表現(xiàn)形式
5.3底層驅(qū)動(dòng)構(gòu)件的封裝規(guī)范
5.3.1底層驅(qū)動(dòng)構(gòu)件設(shè)計(jì)的基本原則
5.3.2編碼風(fēng)格基本規(guī)范
5.3.3頭文件的設(shè)計(jì)規(guī)范
5.3.4源程序文件的設(shè)計(jì)規(guī)范
5.4硬件構(gòu)件及其驅(qū)動(dòng)構(gòu)件的重用與移植方法
5.4.1硬件構(gòu)件的重用與移植
5.4.2驅(qū)動(dòng)構(gòu)件的移植
本章小結(jié)
習(xí)題
第6章串行通信模塊及優(yōu)質(zhì)個(gè)中斷程序結(jié)構(gòu)
視頻講解: 45分鐘,3集
6.1異步串行通信的通用基礎(chǔ)知識(shí)
6.1.1串行通信的基本概念
6.1.2RS232和RS485總線標(biāo)準(zhǔn)
6.1.3TTLUSB串口轉(zhuǎn)換芯片
6.1.4串行通信編程模型
6.2基于構(gòu)件的串行通信編程方法
6.2.1D1H芯片UART對外引腳
6.2.2UART構(gòu)件API
6.2.3UART構(gòu)件API的發(fā)送測試方法
6.2.4printf()的設(shè)置方法與使用
6.3UART構(gòu)件的制作過程
6.3.1UART寄存器概述
6.3.2利用直接地址操作的串口發(fā)送程序
6.3.3UART構(gòu)件設(shè)計(jì)
6.4中斷機(jī)制及中斷編程步驟
6.4.1中斷的基本概念及處理過程
6.4.2RISCV架構(gòu)玄鐵C906中斷結(jié)構(gòu)
6.4.3D1H中斷編程步驟——以串口接收中斷為例
本章小結(jié)
習(xí)題
第7章定時(shí)器、PWM與輸入捕捉
視頻講解: 32分鐘,3集
7.1定時(shí)器通用基礎(chǔ)知識(shí)
7.2D1H中的定時(shí)器
7.2.1D1H的機(jī)器模式定時(shí)器MTIME
7.2.2D1H的實(shí)時(shí)時(shí)鐘模塊
7.2.3D1H的Timer
7.2.4D1H的HSTimer
7.3脈寬調(diào)制
7.3.1脈寬調(diào)制通用基礎(chǔ)知識(shí)
7.3.2基于構(gòu)件的PWM編程方法
7.4輸入捕捉
7.4.1輸入捕捉通用基礎(chǔ)知識(shí)
7.4.2基于構(gòu)件的輸入捕捉編程方法
本章小結(jié)
習(xí)題
第8章Flash在線編程、ADC與DMA
視頻講解: 30分鐘,3集
8.1Flash在線編程
8.1.1Flash在線編程的通用基礎(chǔ)知識(shí)
8.1.2基于構(gòu)件的Flash在線編程方法
8.1.3Flash構(gòu)件的制作過程簡介
8.2ADC
8.2.1ADC的通用基礎(chǔ)知識(shí)
8.2.2基于構(gòu)件的ADC編程方法
8.3DMA
8.3.1DMA的通用基礎(chǔ)知識(shí)
8.3.2基于構(gòu)件的DMA編程方法
本章小結(jié)
習(xí)題
第9章SPI與I2C
視頻講解: 34分鐘,2集
9.1串行外設(shè)接口模塊
9.1.1串行外設(shè)接口的通用基礎(chǔ)知識(shí)
9.1.2基于構(gòu)件的SPI通信編程方法
9.2集成電路互聯(lián)總線I2C模塊
9.2.1集成電路互聯(lián)總線I2C的通用基礎(chǔ)知識(shí)
9.2.2基于構(gòu)件的I2C通信編程方法
本章小結(jié)
習(xí)題
第10章系統(tǒng)時(shí)鐘與看門狗
視頻講解: 15分鐘,1集
10.1時(shí)鐘系統(tǒng)
10.1.1時(shí)鐘控制單元概述
10.1.2時(shí)鐘控制單元編程寄存器
10.1.3系統(tǒng)時(shí)鐘編程實(shí)例
10.1.4改變CPU時(shí)鐘頻率及測試方法
10.2看門狗
10.2.1看門狗模塊的寄存器
10.2.2看門狗構(gòu)件制作方法
10.2.3基于構(gòu)件的看門狗編程方法
本章小結(jié)
習(xí)題
第11章實(shí)時(shí)操作系統(tǒng)
視頻講解: 41分鐘,2集
11.1無操作系統(tǒng)與實(shí)時(shí)操作系統(tǒng)
11.1.1無操作系統(tǒng)下的程序運(yùn)行路線
11.1.2實(shí)時(shí)操作系統(tǒng)下的程序運(yùn)行路線
11.1.3實(shí)時(shí)操作系統(tǒng)與非實(shí)時(shí)操作系統(tǒng)
11.2RTOS中的常用基本概念及線程的三要素
11.2.1與線程相關(guān)的基本概念
11.2.2線程的三要素及四種狀態(tài)
11.2.3線程的三種基本形式
11.3RTOS下應(yīng)用程序的編程框架
11.3.1RTThread下基本要素模板列表
11.3.2優(yōu)質(zhì)個(gè)樣例程序功能及運(yùn)行
11.3.3RTThread工程框架
11.4RTOS中同步與通信的應(yīng)用編程方法
11.4.1RTOS中同步與通信基本概念
11.4.2事件
11.4.3消息隊(duì)列
11.4.4信號(hào)量
11.4.5互斥量
本章小結(jié)
習(xí)題
第12章嵌入式人工智能: 物體認(rèn)知系統(tǒng)
視頻講解: 18分鐘,1集
12.1嵌入式人工智能概述
12.1.1人類智能與人工智能
12.1.2通用人工智能與嵌入式人工智能
12.2物體認(rèn)知系統(tǒng)的設(shè)計(jì)目標(biāo)
12.2.1基本思路
12.2.2AHLEORS的目標(biāo)
12.3AHLEORSD1H的基本構(gòu)成
12.3.1總體說明
12.3.2硬件系統(tǒng)
12.3.3相關(guān)資源下載與軟件安裝
12.4AHLEORSD1H的操作過程
12.4.1模型測試
12.4.2數(shù)據(jù)采集
12.4.3模型訓(xùn)練
12.4.4構(gòu)件生成
12.4.5GEC推理
12.4.6完整流程
12.5運(yùn)行AHLEORSD1H的PC源碼
本章小結(jié)
第13章進(jìn)一步學(xué)習(xí)導(dǎo)引
視頻講解: 10分鐘,1集
13.1關(guān)于進(jìn)一步閱讀的有關(guān)資料
13.2關(guān)于嵌入式系統(tǒng)穩(wěn)定性問題
附錄A金葫蘆AHLD1H用戶手冊
附錄B實(shí)驗(yàn)指導(dǎo)
參考文獻(xiàn)