注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑結(jié)構(gòu)RT-Thread內(nèi)核實(shí)現(xiàn)與應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)指南(基于STM32)

RT-Thread內(nèi)核實(shí)現(xiàn)與應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)指南(基于STM32)

RT-Thread內(nèi)核實(shí)現(xiàn)與應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)指南(基于STM32)

定 價(jià):¥99.00

作 者: 劉火良,楊森
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111613664 出版時(shí)間: 2019-01-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)基于野火STM32全系列開(kāi)發(fā)板介紹RTThread內(nèi)核實(shí)現(xiàn)與應(yīng)用開(kāi)發(fā),全書(shū)分為兩部分:部分教你如何從0到1把RTThread內(nèi)核寫(xiě)出來(lái),從底層的匯編開(kāi)始講解線程如何定義、如何切換,還講解了阻塞延時(shí)如何實(shí)現(xiàn)、如何支持多優(yōu)先級(jí)、如何實(shí)現(xiàn)定時(shí)器以及時(shí)間片等RTThread的核心知識(shí)點(diǎn);第二部分則講解RTThread內(nèi)核組件的應(yīng)用以及如何使用RTThread進(jìn)行多線程編程。本書(shū)內(nèi)容翔實(shí),案例豐富,配有大量示例代碼,適合作為嵌入式領(lǐng)域科技工作者的參考書(shū),也適合相關(guān)專業(yè)學(xué)生學(xué)習(xí)參考。

作者簡(jiǎn)介

暫缺《RT-Thread內(nèi)核實(shí)現(xiàn)與應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)指南(基于STM32)》作者簡(jiǎn)介

圖書(shū)目錄

推薦序 

前言 

引言 

第一部分 從0到1教你寫(xiě)RTThread內(nèi)核 

第1章 新建RTThread工程——軟件仿真 2 

1.1 新建本地工程文件夾 2 

1.2 使用KEIL新建工程 3 

1.2.1 New Project 3 

1.2.2 Select Device for Target 3 

1.2.3 Manage RunTime Environment 4 

1.3 在KEIL工程中新建文件組 5 

1.4 在KEIL工程中添加文件 6 

1.5 調(diào)試配置 7 

1.5.1 設(shè)置軟件仿真 7 

1.5.2 修改時(shí)鐘大小 8 

1.5.3 添加頭文件路徑 9 

第2章 裸機(jī)系統(tǒng)與多線程系統(tǒng) 10 

2.1 裸機(jī)系統(tǒng) 10 

2.1.1 輪詢系統(tǒng) 10 

2.1.2 前后臺(tái)系統(tǒng) 11 

2.2 多線程系統(tǒng) 12 

第3章 線程的定義與線程切換的實(shí)現(xiàn) 15 

3.1 什么是線程 16 

3.2 創(chuàng)建線程 17 

3.2.1 定義線程棧 17 

3.2.2 定義線程函數(shù) 19 

3.2.3 定義線程控制塊 20 

3.2.4 實(shí)現(xiàn)線程創(chuàng)建函數(shù) 20 

3.3 實(shí)現(xiàn)就緒列表 30 

3.3.1 定義就緒列表 30 

3.3.2 將線程插入就緒列表 30 

3.4 實(shí)現(xiàn)調(diào)度器 31 

3.4.1 調(diào)度器初始化 32 

3.4.2 啟動(dòng)調(diào)度器 33 

3.4.3 第一次線程切換 34 

3.4.4 系統(tǒng)調(diào)度 41 

3.5 main()函數(shù) 44 

3.6 實(shí)驗(yàn)現(xiàn)象 47 

第4章 臨界段的保護(hù) 50 

4.1 什么是臨界段 50 

4.2 CortexM內(nèi)核快速關(guān)中斷指令 50 

4.3 關(guān)中斷 51 

4.4 開(kāi)中斷 51 

4.5 臨界段代碼的應(yīng)用 52 

4.6 實(shí)驗(yàn)現(xiàn)象 56 

第5章 對(duì)象容器 57 

5.1 什么是對(duì)象 57 

5.1.1 對(duì)象枚舉的定義 57 

5.1.2 對(duì)象數(shù)據(jù)類型的定義 57 

5.1.3 在線程控制塊中添加對(duì)象成員 58 

5.2 什么是容器 59 

5.3 容器的接口實(shí)現(xiàn) 63 

5.3.1 獲取指定類型的對(duì)象信息 64 

5.3.2 對(duì)象初始化 64 

5.3.3 調(diào)用對(duì)象初始化函數(shù) 67 

5.4 實(shí)驗(yàn)現(xiàn)象 67 

第6章 空閑線程與阻塞延時(shí) 68 

6.1 實(shí)現(xiàn)空閑線程 68 

6.1.1 定義空閑線程的棧 68 

6.1.2 定義空閑線程的線程控制塊 69 

6.1.3 定義空閑線程函數(shù) 69 

6.1.4 空閑線程初始化 69 

6.2 實(shí)現(xiàn)阻塞延時(shí) 70 

6.3 SysTick_Handler()中斷服務(wù)函數(shù) 73 

6.4 main()函數(shù) 77 

6.5 實(shí)驗(yàn)現(xiàn)象 80 

第7章 多優(yōu)先級(jí) 82 

7.1 就緒列表 82 

7.1.1 線程就緒優(yōu)先級(jí)組 82 

7.1.2 線程優(yōu)先級(jí)表 86 

7.2 修改代碼以支持多優(yōu)先級(jí) 88 

7.2.1 修改線程控制塊 88 

7.2.2 修改調(diào)度器初始化函數(shù)rt_system_scheduler_init() 90 

7.2.3 修改線程初始化函數(shù)rt_thread_init() 91 

7.2.4 添加線程啟動(dòng)函數(shù)rt_thread_startup() 92 

7.2.5 修改空閑線程初始化函數(shù)rt_thread_idle_init() 93 

7.2.6 修改啟動(dòng)系統(tǒng)調(diào)度器函數(shù)rt_system_scheduler_start() 94 

7.2.7 修改系統(tǒng)調(diào)度函數(shù)rt_schedule() 95 

7.2.8 修改阻塞延時(shí)函數(shù)rt_thread_delay() 98 

7.2.9 修改時(shí)基更新函數(shù)rt_tick_increase() 98 

7.3 main()函數(shù) 99 

7.4 實(shí)驗(yàn)現(xiàn)象 102 

第8章 定時(shí)器 103 

8.1 實(shí)現(xiàn)定時(shí)器 103 

8.1.1 系統(tǒng)定時(shí)器列表 103 

8.1.2 系統(tǒng)定時(shí)器列表初始化 104 

8.1.3 定義定時(shí)器結(jié)構(gòu)體 104 

8.1.4 在線程控制塊中內(nèi)置定時(shí)器 105 

8.1.5 定時(shí)器初始化函數(shù) 106 

8.1.6 定時(shí)器刪除函數(shù) 108 

8.1.7 定時(shí)器停止函數(shù) 108 

8.1.8 定時(shí)器控制函數(shù) 109 

8.1.9 定時(shí)器啟動(dòng)函數(shù) 110 

8.1.10 定時(shí)器掃描函數(shù) 115 

8.2 修改代碼以支持定時(shí)器 118 

8.2.1 修改線程初始化函數(shù) 118 

8.2.2 修改線程延時(shí)函數(shù) 119 

8.2.3 修改系統(tǒng)時(shí)基更新函數(shù) 121 

8.2.4 修改main.c文件 122 

8.3 實(shí)驗(yàn)現(xiàn)象 126 

第9章 時(shí)間片 127 

9.1 實(shí)現(xiàn)時(shí)間片 127 

9.1.1 在線程控制塊中添加時(shí)間片相關(guān)成員 127 

9.1.2 修改線程初始化函數(shù) 128 

9.1.3 修改空閑線程初始化函數(shù) 129 

9.1.4 修改系統(tǒng)時(shí)基更新函數(shù) 129 

9.2 修改main.c文件 131 

9.3 實(shí)驗(yàn)現(xiàn)象 135 

第二部分 RTThread 內(nèi)核應(yīng)用開(kāi)發(fā) 

第10章 移植RTThread到STM32 138 

10.1 獲取STM32的裸機(jī)工程模板 138 

10.2 下載RTThread Nano源碼 138 

10.3 安裝RTThread Package 139 

10.4 向裸機(jī)工程中添加RTThread源碼 140 

10.4.1 復(fù)制RTThread Package到裸機(jī)工程根目錄 140 

10.4.2 復(fù)制rtconfig.h文件到User文件夾 141 

10.4.3 復(fù)制board.c文件到User文件夾 141 

10.4.4 rtthread文件夾內(nèi)容簡(jiǎn)介 141 

10.4.5 添加RTThread源碼到工程組文件夾 143 

10.5 rtconfig.h文件 145 

10.5.1 rtconfig.h文件內(nèi)容講解 145 

10.5.2 rtconfig.h文件修改 152 

10.6 board.c文件 156 

10.6.1 board.c文件內(nèi)容講解 156 

10.6.2 board.c文件修改 160 

10.7 添加core_delay.c和core_delay.h文件 167 

10.8 修改main.c 171 

10.9 下載驗(yàn)證 172 

第11章 線程 173 

11.1 硬件初始化 173 

11.2 創(chuàng)建單線程——SRAM靜態(tài)內(nèi)存 175 

11.2.1 定義線程函數(shù) 175 

11.2.2 定義線程棧 176 

11.2.3 定義線程控制塊 176 

11.2.4 初始化線程 176 

11.2.5 啟動(dòng)線程 177 

11.2.6 main.c文件內(nèi)容 177 

11.3 下載驗(yàn)證SRAM靜態(tài)內(nèi)存單線程 179 

11.4 創(chuàng)建單線程——SRAM動(dòng)態(tài)內(nèi)存 179 

11.4.1 動(dòng)態(tài)內(nèi)存空間堆的來(lái)源

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)