色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UCOS2系統內核講述(三)_ TCB任務控制塊

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-25 10:02 ? 次閱讀

Ⅰ、寫在前面

學習本文之前可以參看我前面的文章:

UCOS2_STM32F1移植詳細過程(匯總文章)

UCOS2系統內核講述(一)_總體描述

UCOS2系統內核講述(二)_初始化調用函數

上一篇文章講述了關于OSInit函數體中幾個關于系統內核重要的函數,本文將針對上一篇文章中OS_InitTCBList(初始化任務控制塊)函數重點講述一下TCB(Task Control Block)任務控制塊。

TCB任務控制塊是用來記錄任務的堆棧指針、任務的當前狀態、任務的優先級別等一些與任務有關屬性的一個數據結構表(因此,學習本文之前需要了解數據結構)。任務控制塊相當于一個任務的“身份證”,它記錄著任務的重要信息。

對于系統內核而言,各個任務就是通過控制任務塊將其鏈接成一個表。因此,任務控制塊在任務中占據重要地位。

本文還是結合前面移植好、可以運行的源代碼來進行講述關于最新版本UCOS2系統內核部分代碼(圍繞源代碼來講述)。

對于想學習UCOS的朋友,本文講述的內容可不用深入理解,可以先做個了解。

關于本文的更多詳情請往下看。

Ⅱ、全局TCB

在上一篇文章中講述的OS_InitTCBList是整個系統初始化重要的一個函數。


在該函數中可以看到OS_TCB這么一個數據類型,在第一條執行語句中可以看到“OSTCBTbl”這個TCB表,下面可以看到“OSTCBPrioTbl”、“OSTCBList”、“OSTCBFreeList”等一些關于TCB數據類型的變量。由此可知道,這個函數體里面的內容全是關于OS_TCB類型的。

跟蹤代碼可以知道“OSTCBTbl”這些變量定義在ucos_ii.h中,其實這些變量是控制整個系統任務的一些全局TCB.


從變量后面的注釋可以知道關于任務的切換需要修改多少變量(指針),下一章節我們將進一步講述關于“OS_TCB”這個數據結構體。

Ⅲ、OS_TCB數據結構體

要想理解OS_TCB結構體,需要理解數據結構(也就是C語言中結構體、指針、鏈表等這些知識),因為OS_TCB里面使用的就是這些知識,先看一下ucos_ii.h中定義的OS_TCB結構體,如下圖:


上面的截圖就是整個“OS_TCB”結構體的內容,最重要的幾個參數就是我用紅色框出來的那些,其他都是次要,或者不必要的參數。

下面就重點講述一下紅色標記的幾個參數:

1.三個重要的OS_TCB參數

OS_STK *OSTCBStkPtr; 指向當前棧頂的指針

struct os_tcb *OSTCBNext; 指向(TCB鏈表中)下一個TCB的指針

struct os_tcb *OSTCBPrev; 指向(TCB鏈表中)上一個TCB的指針

將這三個參數結合在一起來講述是為了便于理解任務控制塊之間的關聯。學過鏈表的人應該知道這個寫法,其實它就是將各個TCB構成一個關聯的表,利用指針將一個個TCB關聯起來。

指向上一個TCB的指針、指向當前TCB的指針、指向下一個TCB的指針,初學者只需要將這三個結合起來思考,理解起來就不難了。

2.任務運行時重要的OS_TCB參數

這里說的參數見上面截圖中最后紅色標記部分,這些參數是任務運行是重要的參數。

A.INT32U OSTCBDly;任務延時滴答 或 事件超時等待:

這個參數結合實例中三個任務的OSTimeDly函數一起理解就容易多了。OSTimeDly就是將該任務延時(該任務掛起)多少個滴答,其中重要的一個參數就是這里說的“OSTCBDly”,這個參數傳遞的信息就是延時。

B.INT8U OSTCBStat; 任務狀態:

這個參數就是一個標示,標示任務處于什么狀態。包括運行、掛起等,具體見ucos_ii.h第101行“TASK STATUS”的宏定義。

C.INT8U OSTCBStatPend; 任務懸掛狀態:

這個參數和上面“任務狀態”類似。主要包括三個狀態:OS_STAT_PEND_OK、OS_STAT_PEND_TO和OS_STAT_PEND_ABORT。詳情可見ucos_ii.h第117行“TASK PEND STATUS”的宏定義。

D.INT8U OSTCBPrio; 任務優先級:

任務優先級在學習UCOS之前都聽說過這個詞,這個參數就是標明任務優先級的參數。提示的是:任務優先級值越小,其優先級越高。所以,空閑任務優先級是設置最低。

E.優先級計算參數

INT8U OSTCBX; 優先級低3位對應的數值,即=prio&0x07

INT8U OSTCBY; 優先級高3位對應的數值,即=prio>>3

OS_PRIO OSTCBBitX; "對應"就緒表組的值 OSRdyTbl[OSTCBY] |= OSTCBBitX

OS_PRIO OSTCBBitY; 就緒表組 OSRdyGrp |= OSTCBBitY 即上面的"對應"組

這四個參數是計算任務優先級用的,至于是如何計算的,可以自己研究一下。

Ⅳ、實例工程下載

筆者針對于初學者提供的例程都是去掉了許多不必要的功能,精簡了官方的代碼,對初學者一看就明白,以簡單明了的工程供大家學習。

筆者提供的實例工程都是在板子上經過多次測試并沒有問題才上傳至360云盤,歡迎下載測試、參照學習。

我將最新UCOS2.92操作系統移植到F0、F1、F3、F4各個硬件平臺上,可以根據你芯片系列選擇下載。

UCOS基于STM32F0、F1、F3、F4系列實例工程源代碼(匯總):

https://yunpan.cn/cM9Fjv88cXbjI訪問密碼 048d

本文所講述部分注釋修改為中文(軟件工程源代碼):

https://yunpan.cn/cMGZKfnVVb2Li訪問密碼 49c2

基于STM32平臺的UCOS源代碼工程(官方原始軟件工程)

官網下載(需要賬號):

https://www.micrium.com/downloadcenter/download-results/?searchterm=hm-stmicroelectronics&supported=true

360云盤下載:

https://yunpan.cn/cM9Gzv4drXqxv訪問密碼 c82c

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制塊
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6396
  • STM32F10
    +關注

    關注

    0

    文章

    45

    瀏覽量

    15636
  • ucos2
    +關注

    關注

    0

    文章

    15

    瀏覽量

    3560
  • 操作系統內核

    關注

    0

    文章

    8

    瀏覽量

    2371
收藏 人收藏

    評論

    相關推薦

    鴻道Intewell工業操作系統,大關鍵技術,領跑行業前沿

    鴻道工業操作系統,是軟件定義控制的工業實時操作系統,具備大關鍵技術:1、確定性計算與高實時響應(微秒級、關鍵指標)提供確定性的計算與高實時的系統
    的頭像 發表于 12-25 14:46 ?126次閱讀

    電動工具電機的換向與FOC控制解析

    相無刷直流電機在鉆頭、驅動器、砂光機、磨床和鋸子。到目前為止,霍爾傳感器的換向一直是主要的控制方法電動工具應用中的相BLDC電機。
    的頭像 發表于 11-28 11:47 ?436次閱讀
    電動工具電機的<b class='flag-5'>塊</b>換向與FOC<b class='flag-5'>控制</b>解析

    邏輯組件中的流程節點通常出于什么用途

    邏輯組件中的流程節點是流程圖、狀態圖、序列圖等圖表中的基本元素,它們用于表示業務流程、工作流程、算法步驟、系統狀態等。這些節點在軟件開發、項目管理、自動化控制、工程設計、科學研究等領域都有廣泛
    的頭像 發表于 10-15 14:38 ?166次閱讀

    自動發電控制系統的基本任務

    自動發電控制系統(Automatic Generation Control,簡稱AGC)在電力系統中扮演著至關重要的角色,其基本任務可以歸納為以下幾個方面:   發電機輸出功率與總負荷功率匹配
    的頭像 發表于 10-03 15:03 ?605次閱讀

    freertos最多支持多少個任務

    以下幾個因素: 系統資源 :FreeRTOS能夠支持的任務數量受到系統硬件資源的限制,特別是處理器的RAM大小和性能。RAM用于存儲任務控制
    的頭像 發表于 09-02 14:21 ?947次閱讀

    星旗下Semes正通過TCB設備瞄準HBM市場

    在半導體產業日新月異的今天,星電子的子公司Semes正以其獨特的戰略眼光,在熱壓鍵合(TCB)設備領域開辟新徑,特別是在高帶寬存儲器(HBM)市場的布局上展現出強勁勢頭。面對TCB設備市場的多元化
    的頭像 發表于 07-18 10:09 ?683次閱讀

    在做lwip+ucos+stm32的項目,ping不通是什么原因導致的?

    我正在做lwip+ucos+stm32的項目,兩個sys_arch都做好了,ethernetif沒改,在ucos任務中polling是可以ping通的; 但是我想用中斷模式,也就是eth中斷給
    發表于 05-16 06:28

    STM32F303 ucos ii任務調度都用什么?

    現在303上用ucos ii跑了兩個任務,一個是顯示LCD,一個是讀取FRAM。現在發現,若讀FRAM的優先級高,有時LCD會花屏一閃,若顯示優先級高,有時FRAM讀出的數會不對。 目前是做個信號量做互鎖,但這樣跟不用系統時差不
    發表于 05-14 06:16

    uCOS使用FATFS的時候如果操作SD卡的優先級低了,uCOS就死機怎么解決?

    不知道大家遇到過這個情況沒有,uCOS使用FATFS的時候如果操作SD卡的優先級低了,uCOS相應的任務會死機,我的FATFS的可重入也已經打開了
    發表于 05-14 06:13

    emwin發布信號量給ucos的其他任務失敗的原因?

    , OS_OPT_PEND_BLOCKING,p_ts, err); //Test(); GPIOG->ODR^=GPIO_Pin_13; OSTimeDlyHMSM(0, 0, 2, 0
    發表于 05-11 07:20

    freertos系統如何劃分任務?

    芯片; 2,單片機通過串口和上位機通訊,和上位機通訊時單片機IO腳控制一個LED閃爍。 3,單片機作為從設備通過SPI2和主設備通訊,通過檢測單片機的另一個IO腳的狀態,來判斷該設備是否作為SPI從設備被選中; 要是劃分
    發表于 05-08 07:16

    請問stm32L4是不是M4內核?

    為什么L4在ucos 庫里是屬于 M3內核,F4系列 在ucos庫里是屬于 M4內核
    發表于 04-17 07:07

    linux內核常用調優參數

     1. vm.swappiness:該參數控制系統在內存不足時,內核將頁面交換到磁盤的程度。默認值為60,建議值為10-30。   2. vm.overcommit_memory:該參數
    的頭像 發表于 04-01 10:31 ?1804次閱讀

    智能集成:整合模擬元件和ARM微控制內核,解決棘手嵌入式系統問題

    智能集成:整合模擬元件和ARM微控制內核,解決棘手嵌入式系統問題
    的頭像 發表于 01-05 18:18 ?733次閱讀
    智能集成:整合模擬元件和ARM微<b class='flag-5'>控制</b>器<b class='flag-5'>內核</b>,解決棘手嵌入式<b class='flag-5'>系統</b>問題

    RZ/G2L Linux系統如何添加新的內核模塊

    RZ/G2L Linux系統的鏡像基于yocto構建,本篇介紹如何添加新的內核模塊。
    的頭像 發表于 01-04 12:19 ?1795次閱讀
    RZ/G<b class='flag-5'>2</b>L Linux<b class='flag-5'>系統</b>如何添加新的<b class='flag-5'>內核</b>模塊
    主站蜘蛛池模板: 四虎免费影院| 87.6在线收听| 国产精品一区二区三区四区五区| 无码欧美XXXXX在线观看裸| 国产亚洲人成网站在线观看播放| 一二三四在线视频社区| 男人的天堂久久精品激情a| 刮伦人妇A极一片| 一本久道久久综合婷婷五月| 末成年美女黄网站色大片连接| 动漫H片在线播放免费高清| 亚洲人日本人jlzzy| 男生脱美女内裤内衣动态图| 国产AV精品一区二区三区漫画| 亚洲午夜精品A片久久WWW软件| 暖暖 免费 高清 日本视频大全| 国产精品人成在线播放新网站 | yy8090理论三级在线看| 無码一区中文字幕少妇熟女网站 | 曰本真人00XX动太图| 琪琪SEE色原网色原网站18| 国内精品久久久久影院网站| 99re8在线视频精品| 小777论坛| 人妻精品久久无码专区| 九九热这里只有精品视频免费| 把腿张开老子CAO烂你动态图| 亚洲人女同志video| 色大姐综合网| 免费观看美女的网站| 黄桃AV无码免费一区二区三区| 超碰caoporen国产| 中文字幕亚洲第一| 亚洲精品久久久久69影院| 日韩中文字幕亚洲无线码| 老师的玉足高跟鞋满足我| 国产偷国产偷亚州清高| 成年视频xxxxxx在线| 91久久偷偷做嫩草影院免| 一本大道香蕉中文在线视频观看| 无人区国产片|