精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

從零開始構建實時操作系統—任務切換

運維 系統運維
嵌入式實時操作系統將會部署到越來越多的設備中,這就要求工程師深入地了解嵌入式實時操作系統。

1、前言

隨著計算機技術和微電子技術的迅速發展,嵌入式系統應用領域越來越廣泛,尤其是其具備低功耗技術的特點得到人們的重視。隨著工信部提出NB-IoT基站建設具體目標、三大運營商加速建設,即將迎來萬物互聯的新時代,這是信息產業繼移動互聯網之后的下一個萬億級市場,這些為實時操作系統的應用提供了廣闊的前景。

嵌入式實時操作系統將會部署到越來越多的設備中,這就要求工程師深入地了解嵌入式實時操作系統。本系列文章將和大家一起從零開始構建一個嵌入式實時操作系統,我將用最簡單直白的方式一步一步搭建,我將用一篇文章的方式來總結搭建中的每個節點階段,并開源軟件工程和源代碼。

2、嵌入式實時操作系統

嵌入式實時操作系統是一個特殊的程序,是一個支持多任務的運行環境。嵌入式實時操作系統最大的特點就是“實時性”,如果有一個任務需要執行,實時操作系統會立即執行該任務,不會有較長的延時。典型的實時操作系統有uCOS ,RT-Thread,FreeRTOS ,VxWorks,WinCE等。

嵌入式實時操作系統是一個特殊的程序(通常稱為內核),它可以創建和控制所有任務。嵌入式實時操作系統除了包含一個內核以外,還提供其他服務,如文件系統,協議棧,圖形用戶界面等。本文的重點在于了解嵌入式實時操作系統內核的工作原理和結構,因此文中提到的實時操作系統通常指的是操作系統內核。實時操作系統內核通常要占用5%左右的CPU運行時間,另外內核是一個軟件代碼,需要額外占用ROM空間和RAM空間。

嵌入式實時操作系主要由以下3個子系統組成:

  • 任務調度子系統
  • 任務通信子系統
  • 內存管理子系統

3、實現目標

本文講解構建嵌入式實時操作系統的第一個節點階段:實現簡單的任務切換功能。

代碼區的數據是不變的,處理器寄存器的值和棧空間的值決定程序運行狀態。讓每個任務“獨享”一個棧空間,當我們將任務運行時的處理器寄存器的值保存起來時,這樣就實現保存任務的運行狀態。同樣的當我們把保存的任務運行時的處理器寄存器的值裝載到處理的寄存器中時,這樣就恢復了任務的運行狀態,任務繼續運行起來。

切換任務的原理是:每個任務有一個“獨享”棧空間,通過保存和裝載任務運行時的處理器寄存器的值,實現任務的暫停和恢復運行。暫停一個任務后再恢復另外一個任務就完成了一次任務切換。

任務代碼,任務棧空間和處理器狀態如下圖:

4、實驗環境

硬件是基于意法半導體的STM32F401(ARM公司的Cortex-M4內核),軟件開發使用的是KEIL V5.2 開發工具。

軟件工程如下:

軟件工程中包含:main.c ,startup_stm32f401xc.s 和 readme三個文件。startup_stm32f401xc.s文件為STM32F401的啟動文件,main.c文件實現任務切換功能,readme文件用于記錄版本修改日志。

5、代碼實現

切換任務的原理是讓每個任務都有一個“獨享”棧空間,通過保存和裝載任務運行時的處理器寄存器的值,實現任務的暫停和恢復運行。暫停一個任務后再恢復另外一個任務就完成了一次任務切換。

因此需要實現:

  • 每個任務的獨立棧空間。
  • 實現任務的暫停和恢復。
  • 實現任務的調度。

(1)實現獨立棧空間

棧空間代碼如下:

為每個任務定義一個靜態數組,當任務運行時將處理器的棧指針指向任務“自己的”靜態數組,從而實現獨立棧空間。棧空間用來存放局部變量,中斷調用和函數調用時的處理器寄存器的值。任務切換時需要將處理器寄存器的值保存到任務的獨立棧空間。

在保存任務運行狀態時需要保存處理器寄存器值到棧空間,因此需要深入了解處理器寄存器的用途和出入棧順序,Cortex-M4內核的寄存器和寄存器中斷自動入棧的順序圖如下:

初始化棧空間的代碼如下:

棧空間初始化后的狀態如下:

棧是一中先入后出的數據結構,Cortex-M4內核的棧操作方式倍設置成了向下生長。psp_array用于保存任務棧指針,psp_array[0]任務0棧指針指向task0_stack[112],其中task0_stack[116]保存PC程序指針值,task0_stack[117]保存狀態寄存器(符合Cortex-M4內核寄存器出棧順序:手動出棧8個寄存器,硬件自動出棧8個寄存器)。

(2)實現任務的暫停和恢復

代碼如下:

cortex-M4內核有一個PendSV(可掛起的系統調用)異常,其異常編號為14并且具有可編程的優先級。當軟件將PendSV設置成掛起時,程序將進入PendSV異常(中斷)。

將PendSV異常優先級設置為最低,其它中斷函數都可以得到正常響應,不會受到PendSV異常影響,在PendSV異常中執行任務切換,時序框圖如下:

PendSV_Handler為Cortex-M4內核中斷服務函數,進入中斷函數時處理器自動保存了R0,R1,R2,R3, R12,LR,PC,XPSR,在PendSV_Handler中斷程序中完成R4~R11入棧保存工作,從而實現任務保存工作。

/* 讀取當前進程棧指針數值 */
MRS R0,PSP
/* 保存R4-R11八個寄存器的值到當前任務棧中 同時將回寫的地址寫入R0 */
STMDB R0!,{R4-R11}

psp_array[0]為任務0的棧指針, psp_array[1]為任務1的棧指針。以下代碼實現任務棧指針切換。

/* 讀取psp_array 地址 */
LDR R3, =__cpp(&psp_array)
/* 將當前進程PSP指針值 寫入 相應的 PSP_array 位置 */
STR R0,[R3,R2,LSL #2]
/* 獲取下個進程序號 */
LDR R4,=__cpp(&next_task)
LDR R4,[R4]
/* R1為&curr_task 將下個進程序號寫入curr_task中 */
STR R4,[R1]
/* psp_array讀取更新后的curr_task的PSP指針數值 */
LDR R0,[R3,R4,LSL #2]

在PendSV_Handler中斷程序中完成R4~R11寄存器出棧,PendSV_Handler中斷程序返回時處理器自動出棧R0,R1,R2,R3, R12,LR,PC,XPSR,從而實現任務恢復工作。

/* 出棧 R4-R11八個寄存器 */
LDMIA R0!,{R4-R11}
/* 設置PSP指針 */
MSR PSP,R0
/* 中斷返回 */
BX LR

(3)實現任務的調度

任務調度的代碼如下:

SysTick_Handler為定時器中斷程序,實現時間片輪流改變目標任務,并掛起PendSV_Handle中斷,退出SysTick_Handler中斷程序時進入PendSV_Handle中斷程序。

6、運行結果

代碼仿真運行如下:

運行代碼后task_num0和task_num1這兩個變量依次自加,代碼實現任務輪流切換功能。

責任編輯:姜華 來源: 今日頭條
相關推薦

2022-04-01 08:09:03

操作系統嵌入式重構

2024-03-01 19:53:37

PyBuilderPython開發

2024-07-31 08:14:17

2010-02-22 09:39:52

HTML 5Web

2017-02-10 09:30:33

數據化運營流量

2024-08-01 11:21:52

2025-01-09 11:14:13

2024-05-17 17:29:00

CurdlingPython開發

2015-10-15 14:16:24

2024-11-28 10:35:47

2009-04-11 15:12:24

vxworks操作系統

2025-01-26 16:57:02

2024-02-23 09:00:00

編程語言編譯器工具

2025-07-24 07:42:08

2015-11-17 16:11:07

Code Review

2018-04-18 07:01:59

Docker容器虛擬機

2019-01-18 12:39:45

云計算PaaS公有云

2014-07-22 13:09:21

android

2024-12-06 17:02:26

2020-07-02 15:32:23

Kubernetes容器架構
點贊
收藏

51CTO技術棧公眾號

亚洲永久激情精品| 久久久精品视频成人| 丝袜老师办公室里做好紧好爽| 国产精品久久久久久久久久久久久久久久久 | 九色丨蝌蚪丨成人| 欧美午夜片在线免费观看| 亚洲欧洲一区二区在线观看| 538任你躁在线精品视频网站| 激情欧美一区二区三区黑长吊| 亚洲欧洲色图综合| 精品视频高清无人区区二区三区| 亚洲中文无码av在线| 欧美一区二区| 在线观看国产精品淫| 日本成人在线免费| 国产精品第一国产精品| 亚洲成在线观看| 在线视频亚洲自拍| 男女视频在线观看免费| 国产精品911| 国产精品免费久久久| 国产午夜福利片| 亚洲午夜精品一区二区国产| 亚洲男人的天堂在线| 成人做爰www看视频软件| 久久精品国产福利| 色综合天天综合给合国产| av动漫在线播放| 午夜视频成人| 国产亚洲va综合人人澡精品| 国产精品香蕉视屏| 国产美女三级无套内谢| 日本91福利区| 日韩美女av在线免费观看| 黄色激情视频在线观看| 久久精品一区二区不卡| 在线a欧美视频| 久久精品老司机| 六月丁香久久丫| 欧美成人国产一区二区| 性生活在线视频| 亚洲欧美久久精品| 欧美日韩视频专区在线播放| 日本成人在线免费视频| 欧美办公室脚交xxxx| 亚洲国产一区视频| 自拍偷拍免费精品| 青青草视频成人| 久久99精品国产自在现线| 日韩一区二区三区电影| 午夜剧场在线免费观看| 国产91在线精品| 欧美在线观看18| 污污的网站18| 国产成人77亚洲精品www| 91黄色在线观看| 亚洲熟妇av一区二区三区| 蜜桃av.网站在线观看| 午夜国产精品影院在线观看| 日韩黄色片在线| av人人综合网| 狠狠躁夜夜躁人人躁婷婷91| 9久久9毛片又大又硬又粗| av中文资源在线资源免费观看| 亚洲综合色噜噜狠狠| 又大又硬又爽免费视频| 波多野结衣视频一区二区| 欧美日韩国产在线看| 国产精品宾馆在线精品酒店| 天堂av在线网| 91久久精品网| 久久久久xxxx| 风间由美性色一区二区三区四区| 亚洲国产古装精品网站| 好吊视频在线观看| 五月综合激情| 久久久久久国产精品美女| 日韩人妻无码一区二区三区99| 欧美一区 二区| 日韩av网址在线观看| 老牛影视av老牛影视av| 日韩精品网站| 欧美激情乱人伦一区| 欧美三级一区二区三区| 日本大胆欧美人术艺术动态| 91美女福利视频高清| 成人午夜福利视频| 2020国产成人综合网| 亚洲欧洲精品一区二区三区波多野1战4 | 四季久久免费一区二区三区四区| 亚洲一区视频在线| 国产精品wwwww| 高清久久精品| 亚洲精品动漫久久久久| 国产一二三av| 在线播放一区| 国产美女久久精品| 欧美一级片免费| 国产精品无圣光一区二区| 精品国产一区二区三区在线| 亚洲天堂资源| 欧美一级日韩免费不卡| 巨胸大乳www视频免费观看| 99久久国产综合精品成人影院| 国内精品久久影院| 中文字幕日日夜夜| 99久久夜色精品国产网站| 一区精品在线| 欧美xxx网站| 精品国产欧美一区二区| 国产又粗又长又黄的视频| 在线亚洲伦理| 亚洲一区二区中文字幕| 国产美女视频一区二区三区| 亚洲综合色视频| 欧美成人乱码一二三四区免费| 国产欧美三级电影| 精品国产视频在线| 免费在线不卡av| 91色porny蝌蚪| 国产午夜精品视频一区二区三区| 日韩欧美一区二区三区在线观看| 亚洲国产高潮在线观看| 青青草原免费观看| 久久成人av少妇免费| 欧美日韩三区四区| 黄色aa久久| 亚洲成人a**站| 久久国产精品二区| 国产精品一级片在线观看| 亚洲精品免费在线看| 成人动漫一区| 日韩成人在线播放| 日本五十熟hd丰满| 成人免费av在线| 男人天堂a在线| 精品亚洲a∨一区二区三区18| 中文字幕一区二区三区电影| 日本a级c片免费看三区| 97精品超碰一区二区三区| www.国产在线视频| 亚洲午夜免费| 久久久久久久999精品视频| 99草在线视频| 亚洲乱码国产乱码精品精可以看 | 色播久久人人爽人人爽人人片视av| 国产稀缺真实呦乱在线| 成人av网站免费观看| 男人添女荫道口喷水视频| 视频精品一区| 高清欧美一区二区三区| 天堂av中文字幕| 精品久久香蕉国产线看观看亚洲 | 久久精品66| 91国产视频在线| 性高潮久久久久久久久久| 黑人巨大精品欧美一区二区免费| 老熟妇精品一区二区三区| 亚洲少妇在线| 日本成人看片网址| 精品国产美女a久久9999| 日韩在线观看网址| 国产麻豆一精品一男同| 亚洲一区二区四区蜜桃| 亚洲第一黄色网址| 丝袜a∨在线一区二区三区不卡| 日韩资源av在线| 久久久久黄色| 欧美伦理91i| 五月婷中文字幕| 在线中文字幕一区二区| 久久嫩草捆绑紧缚| 国产成人在线视频网站| 欧美精品一区免费| 成人高清电影网站| 亚洲aⅴ男人的天堂在线观看| 影音先锋男人资源在线| 亚洲国产成人在线播放| 欧美亚洲另类小说| 成人欧美一区二区三区| 在线播放第一页| 国产午夜久久| 午夜在线视频免费观看| 91综合精品国产丝袜长腿久久| 97在线观看免费高清| 韩国三级av在线免费观看| 在线观看91av| 日本三级2019| 中文字幕国产精品一区二区| 超级砰砰砰97免费观看最新一期 | 国产精品扒开腿做| 影音先锋在线视频| 亚洲视频在线免费看| 国产白浆在线观看| 一本久久综合亚洲鲁鲁五月天| 最新日韩免费视频| 99久久国产综合精品女不卡| 国产探花在线看| 国产亚洲激情| 日本一二三区视频在线| 经典一区二区| 国产精品精品软件视频| 日韩五码电影| 欧美一区二区三区免费视| 国产日产一区二区| 亚洲视频在线播放| 三级视频在线看| 欧美一区二区视频观看视频| 少妇久久久久久久| 亚洲国产日韩一级| 国产人与禽zoz0性伦| 久久这里只有精品视频网| 日本美女久久久| 日韩一区欧美二区| 国产免费黄色av| 欧美福利专区| 中文字幕中文字幕一区三区| 国产91久久精品一区二区| 成人做爰66片免费看网站| 黄色小视频免费网站| 精品视频97| 精品视频免费观看| 波多野结衣在线一区二区| 国产综合色香蕉精品| 粉嫩一区二区三区| 992tv在线成人免费观看| 中文字幕有码在线观看| 俺去亚洲欧洲欧美日韩| 国产免费a∨片在线观看不卡| 日韩精品免费在线视频观看| 亚洲免费成人在线| 日韩视频不卡中文| 国产富婆一级全黄大片| 7777精品伊人久久久大香线蕉最新版 | 深夜福利视频在线观看| 亚洲精品在线电影| 黑人精品一区二区| 欧美α欧美αv大片| 国产熟女一区二区三区五月婷| 欧美日韩日日摸| 中文字幕 国产| 欧美亚洲动漫制服丝袜| 欧美三级网站在线观看| 在线观看不卡一区| 最新中文字幕在线观看视频| 在线精品视频免费播放| 日本免费精品视频| 欧美在线播放高清精品| 日本欧美www| 欧美三级乱人伦电影| 亚洲熟女一区二区| 狠狠色丁香九九婷婷综合五月| 国产免费看av| 亚洲人成精品久久久| 国内不卡一区二区三区| 国产成人在线中文字幕| 99九九视频| 精品久久免费视频| 欧美国产日韩精品免费观看| 久久精品国产亚洲av久| 国产日产亚洲精品系列| 国产精品av久久久久久无| 国产农村妇女毛片精品久久麻豆| 在线观看国产精品一区| 国产日韩精品一区二区三区| 国产视频123区| 亚洲日本在线观看| 国产精品99re| 岛国av一区二区三区| yiren22亚洲综合伊人22| 亚洲免费在线看| 极品久久久久久| 亚洲精品欧美综合四区| 国产一级片免费| 欧美午夜影院在线视频| 波多野结衣一本一道| 欧美日韩成人高清| 国产哺乳奶水91在线播放| 亚洲国产日韩精品在线| 成年人在线视频| 美日韩精品视频免费看| а√在线天堂官网| 国产精品∨欧美精品v日韩精品| 亚瑟国产精品| 韩国成人动漫在线观看| 日本一区二区免费高清| 成年在线观看视频| 水蜜桃久久夜色精品一区的特点| 成人亚洲免费视频| 成人高清av在线| 国产探花视频在线播放| 一区二区三区四区不卡视频 | 亚洲一区二区三区在线播放| 欧美日韩综合在线观看| 欧美日韩国产精品自在自线| 亚洲爱爱综合网| 亚洲精品色婷婷福利天堂| 国产在线二区| 日韩免费精品视频| 欧美另类精品xxxx孕妇| 成年人午夜视频| 91黄色免费版| 亚洲av无码国产精品久久不卡 | 日韩在线视频第一页| 国产午夜精品全部视频播放| 羞羞的网站在线观看| 国产精品黄色影片导航在线观看| 999久久精品| 亚洲福利av在线| 一本久道久久综合婷婷鲸鱼| 亚洲黄色av片| 中文子幕无线码一区tr| 天天操中文字幕| 日韩精品中文字幕一区| aaa在线观看| 欧美一区第一页| 粉嫩久久久久久久极品| 蜜桃网站在线观看| 九九九久久久精品| 91l九色lporny| 欧美日韩中文字幕日韩欧美| 丰满人妻一区二区三区免费视频| 色先锋资源久久综合5566| 欧美成人黑人| 久久综合一区二区三区| 国产一区二区三区自拍| 天天色天天干天天色| 亚洲国产精品精华液2区45| 91午夜精品亚洲一区二区三区| aaaaaaaa毛片| 免费一区视频| 又色又爽又黄18网站| 1000部国产精品成人观看| 日韩乱码一区二区三区| 亚洲精品网站在线播放gif| 欧美24videosex性欧美| 成人激情春色网| 婷婷中文字幕一区| 麻豆三级在线观看| 国产欧美综合在线| 999视频在线| 亚洲男女自偷自拍图片另类| 综合另类专区| 欧美综合激情| 日韩精品免费视频人成| 亚洲欧美va天堂人熟伦| 欧美伊人久久大香线蕉综合69| 免费观看成年在线视频网站| 日本精品久久久久影院| 国产精品一区二区三区av麻| 狠狠操精品视频| 国产精品麻豆一区二区| 91免费视频播放| www.日韩.com| 亚洲日本va午夜在线电影| 男人添女人下部视频免费| caoporm超碰国产精品| 国产成人亚洲欧洲在线| 亚洲精品在线看| 欧美日韩视频网站| 亚洲资源视频| 国产成人av电影在线播放| 国产五月天婷婷| 国产一区二区三区视频免费| 99久久婷婷国产综合精品首页| 一区二区91美女张开腿让人桶| 黑人精品欧美一区二区蜜桃| 免费在线观看一级片| 亚洲激情电影中文字幕| 日韩成人影音| 在线观看三级网站| 9i在线看片成人免费| 超碰在线观看91| 欧美成人免费视频| 日日天天久久| 视频免费1区二区三区| 亚洲成a人v欧美综合天堂下载| 你懂的视频在线| 91日本在线视频| 亚洲欧美日韩国产一区| 青青操在线视频观看| 精品国产免费一区二区三区四区| 黄色亚洲网站| 国产一二三四区在线观看| 91影院在线免费观看| 一级片在线观看视频| 高清欧美性猛交xxxx黑人猛交| 精品高清久久| 熟女人妻一区二区三区免费看| 一本一本大道香蕉久在线精品 | 久久精品日韩一区二区三区| 国产一区二区网站| 韩剧1988免费观看全集| 97精品中文字幕| 中文字幕一区二区三区人妻| 91精品一区二区三区在线观看| 人人草在线视频| 4444在线观看| 欧美国产1区2区| 亚洲色图 校园春色|