精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

天堂√中文最新版在线| 国产精品久久久久久久久久久久久久久久久 | 国产精品sm调教免费专区| 欧美挤奶吃奶水xxxxx| 亚洲成va人在线观看| 国产视频99| 九九热在线免费观看| 国产91久久精品一区二区| 欧美日韩在线影院| 亚洲精品高清视频| 国产区精品在线| 国产一区美女| 亚洲精品自产拍| 国产主播中文字幕| 性欧美videos高清hd4k| 丁香婷婷综合网| 欧美重口另类videos人妖| 精品夜夜澡人妻无码av| 日日av拍夜夜添久久免费| 中文成人av在线| 91大片在线观看| 免费又黄又爽又色的视频| 国产美女撒尿一区二区| 在线视频一区二区免费| 一区二区三区四区免费视频| 亚洲精品911| 视频一区二区三区入口| 久久精品99久久久香蕉| 超碰caoprom| 午夜av成人| 亚洲一二三四在线观看| 欧美日韩高清在线一区| 国产三级自拍视频| 亚洲欧美成人综合| 日韩一区二区福利| 超碰人人cao| 欧洲亚洲两性| 亚洲一区二区在线免费观看视频 | 韩国欧美国产一区| 欧美一级视频在线观看| 999精品视频在线观看播放| 久久亚洲道色| 欧美区在线观看| 日本韩国欧美在线观看| 高h视频在线| 成人亚洲一区二区一| 国产精品夫妻激情| 亚欧洲精品在线视频| 99精品在线| 亚洲美女福利视频网站| 少妇愉情理伦片bd| 97欧美成人| 色偷偷一区二区三区| 日本精品福利视频| 啊v视频在线| 91在线视频观看| 成人综合色站| 国产精品视频一区二区三区,| 久久久久国产精品一区二区| 久久久久99精品久久久久| 国产精品美女高潮无套| 亚洲最好看的视频| 亚洲精品ady| 国产精品久久久久久亚洲影视 | 中文字幕在线观看欧美| 99在线|亚洲一区二区| 尤物九九久久国产精品的特点| 日本道中文字幕| 91精品国产自产观看在线 | 黄黄视频在线观看| 欧美a免费在线| 欧美极品少妇xxxxⅹ高跟鞋| 黑人中文字幕一区二区三区| 精品久久久免费视频| 九九久久精品视频 | 欧美成a人片免费观看久久五月天| 亚洲国产成人av好男人在线观看| 男人的天堂成人| 日本网站在线免费观看视频| 国产日韩影视精品| 日本一区免费在线观看| 欧洲成人一区二区三区| 成人小视频免费观看| 91超碰在线免费观看| 国产黄a三级三级看三级| 国产综合色视频| 国产精品自产拍在线观看中文| 国产一级片av| 美日韩一区二区| 91精品国产综合久久男男 | 日本三级视频在线播放| 国产精品午夜免费| 三年中国中文在线观看免费播放| 国产人成网在线播放va免费| 综合分类小说区另类春色亚洲小说欧美 | 精品爽片免费看久久| 亚洲一区二区三区四区五区六区| 无码日韩精品一区二区免费| 日韩精品极品在线观看播放免费视频| 99久久久久久久久久| 国产免费播放一区二区| 日韩精品在线看| av永久免费观看| 婷婷成人基地| 欧美日韩福利在线观看| 日本一级淫片色费放| 亚洲三级观看| 国产成人一区二| 亚洲一区精品在线观看| 国产成人在线免费观看| 久久www免费人成精品| 五月婷婷在线观看| 亚洲激情自拍视频| 波多野结衣家庭教师在线播放| 免费成人美女女| 欧美日韩精品系列| 香蕉久久久久久av成人| 亚洲传媒在线| 久久精品国产久精国产一老狼| 老湿机69福利| 亚洲伊人网站| 91在线观看免费| 五月婷婷久久久| 国产精品国产三级国产| 伊人婷婷久久| 91超碰在线免费| 欧美日韩午夜影院| 人妻av一区二区| 色135综合网| 欧美激情综合色综合啪啪五月| 亚洲国产成人精品女人久久| 国产久卡久卡久卡久卡视频精品| 欧美激情第一页在线观看| 免费观看在线午夜影视| 欧美日韩激情小视频| 亚洲一二三av| 国产亚洲电影| 97在线视频精品| 中文字幕一二三四| 99久久精品国产观看| 亚洲免费视频播放| 久久久成人av毛片免费观看| 亚洲电影免费观看高清| 三级在线观看免费大全| 美女诱惑黄网站一区| 国产精品久久九九| av大片在线| 91福利小视频| 人妻无码一区二区三区| 伊人精品成人久久综合软件| 成人日韩av在线| √天堂资源地址在线官网| 精品久久久视频| 中文字幕一区二区三区乱码不卡| 在线中文一区| 91精品在线观看视频| 日本免费不卡| 精品国产乱码久久久久酒店| 极品人妻一区二区| 亚洲成人最新网站| 国产精品亚洲一区二区三区| 久久伊伊香蕉| 色94色欧美sute亚洲线路二| 波多野结衣视频播放| 欧美日韩亚洲一区| 99久久综合狠狠综合久久止| 搞黄网站在线观看| 3d动漫精品啪啪1区2区免费 | 91麻豆精品激情在线观看最新| 最好看的2019年中文视频| 国产农村妇女aaaaa视频| 成人av电影在线观看| 国产精品久久久久7777| 狼人精品一区二区三区在线| 久久视频国产精品免费视频在线| 怡红院成永久免费人全部视频| 久久久久久久久久看片| 男人日女人下面视频| 欧美精品密入口播放| 97成人超碰免| 日本精品专区| 五月天网站亚洲| 欧美无人区码suv| 免费看的黄色欧美网站| 欧美精品成人一区二区在线观看 | 日韩乱码一区二区三区| 亚洲国产岛国毛片在线| www亚洲成人| 日韩在线视频精品| 91文字幕巨乱亚洲香蕉| 国产丝袜精品丝袜| 日韩毛片在线观看| 天干夜夜爽爽日日日日| 日本一区二区三区国色天香| 中文字幕欧美人妻精品一区| 欧美理论在线播放| 亚洲综合视频1区| 欧美人与禽性xxxxx杂性| 精品剧情在线观看| 久久久国产精品成人免费| 国产日本欧洲亚洲| 中文字幕亚洲影院| 亚洲激情午夜| 西游记1978| 精品国产第一国产综合精品| 欧美高清视频在线观看| 人成免费电影一二三区在线观看| 偷拍一区二区三区| 欧美另类z0zx974| 国产一区美女在线| 欧美成人xxxxx| 日韩欧美国产精品综合嫩v| 亚洲在线观看视频网站| 免费一二一二在线视频| 日韩在线小视频| 天天综合网在线| 欧美精品乱码久久久久久按摩| 国产av无码专区亚洲av毛网站| 成人小视频在线观看| 九色porny91| 国产精品久久久久久久免费观看 | 欧美日韩一二三四五区| 久久精品—区二区三区舞蹈| 国产原创一区二区三区| 精品一区二区中文字幕| 亚洲色图网站| 久久伊人一区二区| 亚洲精品v亚洲精品v日韩精品| 日本一区二区在线免费播放| 欧美成人精品一区二区男人看| 欧美一区二区三区系列电影| 久久久国产精品成人免费| 亚洲色图第一区| 怡红院一区二区| 国产在线精品一区二区三区不卡| 欧美 丝袜 自拍 制服 另类 | 正在播放一区| 九九亚洲精品| 国产九区一区在线| 91国产一区| 日韩午夜av电影| 波多野结衣视频在线看| 福利微拍一区二区| 精品91久久久| 一区在线播放视频| 秋霞欧美一区二区三区视频免费 | 欧美一卡二卡三卡| 国产色片在线观看| 日韩午夜av一区| 超碰在线观看99| 日韩免费视频一区| 超碰在线人人干| 日韩欧美一级在线播放| av中文字幕免费| 日韩欧美一区二区不卡| 亚洲av无码国产精品永久一区| 日韩一区二区三区高清免费看看 | 久久精品国产999大香线蕉| 久久久久国产精品熟女影院| 狠狠色综合网| 国产在线播放观看| 国产精品入口| 免费观看成人网| 美腿丝袜在线亚洲一区| 欧美日韩精品区别| 国产成人一区在线| 污污污www精品国产网站| 91亚洲男人天堂| 欧美性受xxxx黑人| 亚洲欧美色综合| www.av视频在线观看| 懂色av中文一区二区三区天美| 少妇高潮av久久久久久| 欧美午夜理伦三级在线观看| 97人妻精品一区二区三区动漫| 91精品国产综合久久精品app | 精品在线一区二区| 99免费观看视频| 久久网站最新地址| 一本色道久久88| 一卡二卡三卡日韩欧美| 国产又大又黑又粗免费视频| 色成人在线视频| 99精品视频免费看| 日韩国产激情在线| 91在线网址| 欧美激情va永久在线播放| 国产亚洲成av人片在线观看| 国产精品99导航| 欧洲一区在线| 奇米视频888战线精品播放| 亚洲九九视频| 日韩欧美在线播放视频| 精品一区二区三区蜜桃| 久久久久久久久免费看无码| 中文字幕一区二区三区四区不卡 | 国产又粗又猛又色| 国产视频911| 91嫩草|国产丨精品入口| 亚洲国产精品综合小说图片区| 亚洲 欧美 中文字幕| 欧美日韩三级一区| 色欲av永久无码精品无码蜜桃| 亚洲欧美制服第一页| 国产1区2区3区在线| 美女福利精品视频| 亚洲v.com| 懂色一区二区三区av片| 亚洲人成伊人成综合图片| 一区二区三区久久网| 9久re热视频在线精品| 天天爽人人爽夜夜爽| 国产精一区二区三区| 97伦伦午夜电影理伦片| 亚洲欧美激情插| 国产成人精品一区二区色戒| 日韩精品一区二区三区中文不卡| 人成在线免费视频| 久久久久久久久久久亚洲| 黄色综合网址| 国产欧美欧洲| 欧美福利网址| 日本不卡一区二区在线观看| 国产精品美女久久久久人| 欧美日韩综合在线| 精品区在线观看| 亚洲午夜av久久乱码| 川上优av中文字幕一区二区| 国产精品自拍偷拍| 在线成人动漫av| 免费看毛片的网址| 久久精品久久精品| 五月婷婷欧美激情| 精品久久久在线观看| 国产熟女一区二区三区五月婷| 中文字幕亚洲色图| 久草免费在线视频| 成人美女av在线直播| 欧美亚洲国产一区| 日韩人妻精品无码一区二区三区| 国产91在线观看| 精品国产精品国产精品| 动漫精品一区二区| 天堂中文在线8| 欧美激情视频网址| 中文字幕亚洲在线观看| 一区不卡视频| 国产伦理一区| 丰满少妇高潮一区二区| 亚洲成人av电影在线| 丁香六月天婷婷| 欧美成人免费小视频| 秋霞国产精品| 亚洲一区综合| 理论片日本一区| 日韩欧美综合视频| 欧美一区二区三区视频免费| 黄色网在线免费观看| 国产精品中文字幕在线| 希岛爱理一区二区三区| 欧美日韩亚洲自拍| 91麻豆产精品久久久久久| 日本中文字幕免费观看| 日韩美女一区二区三区四区| 日韩精品亚洲人成在线观看| 91情侣偷在线精品国产| 欧美日韩a区| 一区二区三区四区影院| 夜色激情一区二区| 污视频软件在线观看| 91av视频在线观看| 欧美精品羞羞答答| 亚洲欧美久久久久| 中文字幕电影一区| 国产高潮流白浆喷水视频| 欧美成人免费全部观看天天性色| 超碰成人福利| 九一国产精品视频| 久久久.com| 中文字幕在线观看高清| 中文日韩在线观看| 视频一区中文字幕精品| 欧美中日韩在线| 2021中文字幕一区亚洲| 中文字幕高清在线免费播放| 亚洲最新av在线| 欧美片第一页| 中文字幕中文字幕一区三区| 美腿丝袜在线亚洲一区| 久久久久久天堂| 亚洲国产小视频在线观看| 国模冰冰炮一区二区| 神马影院午夜我不卡| 国产91丝袜在线播放九色| 欧美激情黑白配| 亚洲免费av电影| 欧美成年网站| 日韩精品 欧美| 亚洲视频免费观看| 无码精品人妻一区二区三区影院|