18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UCOS2系統(tǒng)內(nèi)核講述(三)_ TCB任務(wù)控制塊

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-25 10:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Ⅰ、寫在前面

學(xué)習(xí)本文之前可以參看我前面的文章:

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

UCOS2系統(tǒng)內(nèi)核講述(一)_總體描述

UCOS2系統(tǒng)內(nèi)核講述(二)_初始化調(diào)用函數(shù)

上一篇文章講述了關(guān)于OSInit函數(shù)體中幾個(gè)關(guān)于系統(tǒng)內(nèi)核重要的函數(shù),本文將針對(duì)上一篇文章中OS_InitTCBList(初始化任務(wù)控制塊)函數(shù)重點(diǎn)講述一下TCB(Task Control Block)任務(wù)控制塊。

TCB任務(wù)控制塊是用來記錄任務(wù)的堆棧指針、任務(wù)的當(dāng)前狀態(tài)、任務(wù)的優(yōu)先級(jí)別等一些與任務(wù)有關(guān)屬性的一個(gè)數(shù)據(jù)結(jié)構(gòu)表(因此,學(xué)習(xí)本文之前需要了解數(shù)據(jù)結(jié)構(gòu))。任務(wù)控制塊相當(dāng)于一個(gè)任務(wù)的“身份證”,它記錄著任務(wù)的重要信息。

對(duì)于系統(tǒng)內(nèi)核而言,各個(gè)任務(wù)就是通過控制任務(wù)塊將其鏈接成一個(gè)表。因此,任務(wù)控制塊在任務(wù)中占據(jù)重要地位。

本文還是結(jié)合前面移植好、可以運(yùn)行的源代碼來進(jìn)行講述關(guān)于最新版本UCOS2系統(tǒng)內(nèi)核部分代碼(圍繞源代碼來講述)。

對(duì)于想學(xué)習(xí)UCOS的朋友,本文講述的內(nèi)容可不用深入理解,可以先做個(gè)了解。

關(guān)于本文的更多詳情請(qǐng)往下看。

Ⅱ、全局TCB

在上一篇文章中講述的OS_InitTCBList是整個(gè)系統(tǒng)初始化重要的一個(gè)函數(shù)。


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

跟蹤代碼可以知道“OSTCBTbl”這些變量定義在ucos_ii.h中,其實(shí)這些變量是控制整個(gè)系統(tǒng)任務(wù)的一些全局TCB.


從變量后面的注釋可以知道關(guān)于任務(wù)的切換需要修改多少變量(指針),下一章節(jié)我們將進(jìn)一步講述關(guān)于“OS_TCB”這個(gè)數(shù)據(jù)結(jié)構(gòu)體。

Ⅲ、OS_TCB數(shù)據(jù)結(jié)構(gòu)體

要想理解OS_TCB結(jié)構(gòu)體,需要理解數(shù)據(jù)結(jié)構(gòu)(也就是C語言中結(jié)構(gòu)體、指針、鏈表等這些知識(shí)),因?yàn)镺S_TCB里面使用的就是這些知識(shí),先看一下ucos_ii.h中定義的OS_TCB結(jié)構(gòu)體,如下圖:


上面的截圖就是整個(gè)“OS_TCB”結(jié)構(gòu)體的內(nèi)容,最重要的幾個(gè)參數(shù)就是我用紅色框出來的那些,其他都是次要,或者不必要的參數(shù)。

下面就重點(diǎn)講述一下紅色標(biāo)記的幾個(gè)參數(shù):

1.三個(gè)重要的OS_TCB參數(shù)

OS_STK *OSTCBStkPtr; 指向當(dāng)前棧頂?shù)闹羔?/p>

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

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

將這三個(gè)參數(shù)結(jié)合在一起來講述是為了便于理解任務(wù)控制塊之間的關(guān)聯(lián)。學(xué)過鏈表的人應(yīng)該知道這個(gè)寫法,其實(shí)它就是將各個(gè)TCB構(gòu)成一個(gè)關(guān)聯(lián)的表,利用指針將一個(gè)個(gè)TCB關(guān)聯(lián)起來。

指向上一個(gè)TCB的指針、指向當(dāng)前TCB的指針、指向下一個(gè)TCB的指針,初學(xué)者只需要將這三個(gè)結(jié)合起來思考,理解起來就不難了。

2.任務(wù)運(yùn)行時(shí)重要的OS_TCB參數(shù)

這里說的參數(shù)見上面截圖中最后紅色標(biāo)記部分,這些參數(shù)是任務(wù)運(yùn)行是重要的參數(shù)。

A.INT32U OSTCBDly;任務(wù)延時(shí)滴答 或 事件超時(shí)等待:

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

B.INT8U OSTCBStat; 任務(wù)狀態(tài):

這個(gè)參數(shù)就是一個(gè)標(biāo)示,標(biāo)示任務(wù)處于什么狀態(tài)。包括運(yùn)行、掛起等,具體見ucos_ii.h第101行“TASK STATUS”的宏定義。

C.INT8U OSTCBStatPend; 任務(wù)懸掛狀態(tài):

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

D.INT8U OSTCBPrio; 任務(wù)優(yōu)先級(jí):

任務(wù)優(yōu)先級(jí)在學(xué)習(xí)UCOS之前都聽說過這個(gè)詞,這個(gè)參數(shù)就是標(biāo)明任務(wù)優(yōu)先級(jí)的參數(shù)。提示的是:任務(wù)優(yōu)先級(jí)值越小,其優(yōu)先級(jí)越高。所以,空閑任務(wù)優(yōu)先級(jí)是設(shè)置最低。

E.優(yōu)先級(jí)計(jì)算參數(shù)

INT8U OSTCBX; 優(yōu)先級(jí)低3位對(duì)應(yīng)的數(shù)值,即=prio&0x07

INT8U OSTCBY; 優(yōu)先級(jí)高3位對(duì)應(yīng)的數(shù)值,即=prio>>3

OS_PRIO OSTCBBitX; "對(duì)應(yīng)"就緒表組的值 OSRdyTbl[OSTCBY] |= OSTCBBitX

OS_PRIO OSTCBBitY; 就緒表組 OSRdyGrp |= OSTCBBitY 即上面的"對(duì)應(yīng)"組

這四個(gè)參數(shù)是計(jì)算任務(wù)優(yōu)先級(jí)用的,至于是如何計(jì)算的,可以自己研究一下。

Ⅳ、實(shí)例工程下載

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

筆者提供的實(shí)例工程都是在板子上經(jīng)過多次測(cè)試并沒有問題才上傳至360云盤,歡迎下載測(cè)試、參照學(xué)習(xí)。

我將最新UCOS2.92操作系統(tǒng)移植到F0、F1、F3、F4各個(gè)硬件平臺(tái)上,可以根據(jù)你芯片系列選擇下載。

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

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

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

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

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

官網(wǎng)下載(需要賬號(hào)):

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

360云盤下載:

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制塊
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6456
  • STM32F10
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    16089
  • ucos2
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    3693
  • 操作系統(tǒng)內(nèi)核

    關(guān)注

    0

    文章

    8

    瀏覽量

    2464
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用函數(shù)實(shí)現(xiàn)相電機(jī)正反轉(zhuǎn)控制

    在使用西門子S1200PLC,所使用的軟件是博途軟件,在這個(gè)軟件里運(yùn)用了的概念。比如我們常見的組織(OB)、函數(shù)(FB)、數(shù)據(jù)(DB)以及函數(shù)FC等。今天我們來具體交流一下這個(gè)
    的頭像 發(fā)表于 10-15 14:40 ?1584次閱讀
    使用函數(shù)<b class='flag-5'>塊</b>實(shí)現(xiàn)<b class='flag-5'>三</b>相電機(jī)正反轉(zhuǎn)<b class='flag-5'>控制</b>

    氧濃度監(jiān)控在熱壓鍵合(TCB)工藝過程中的重要性

    ,在高性能、高密度封裝領(lǐng)域占據(jù)了一席之地,傳統(tǒng)的倒裝回流焊封裝工藝,因其翹曲、橋接、移位等各種缺陷,逐漸被熱壓鍵合TCB所取代。本文主要跟大家分享的就是剖析熱壓鍵合技術(shù),并探討氧氣濃度監(jiān)控在TCB工藝中的重要性。 熱壓鍵合(TCB
    的頭像 發(fā)表于 09-25 17:33 ?559次閱讀
    氧濃度監(jiān)控在熱壓鍵合(<b class='flag-5'>TCB</b>)工藝過程中的重要性

    【RA4E2開發(fā)板評(píng)測(cè)】電壓檢測(cè)器 ThreadX顯示量程0-3300 mV+CPU利用率+任務(wù)當(dāng)前使用棧

    續(xù)前【RA4E2開發(fā)板評(píng)測(cè)】電壓檢測(cè)器 ThreadX顯示量程0-3300 mV 了解系統(tǒng)使用情況對(duì)于系統(tǒng)優(yōu)化和配置特別重要。 ThreadX 的 CPU 利用率主要是通過創(chuàng)建一個(gè)統(tǒng)計(jì)任務(wù)
    發(fā)表于 09-07 08:05

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(一):驅(qū)動(dòng)安裝、內(nèi)核配置與使用

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750的驅(qū)動(dòng)安裝與內(nèi)核配置
    的頭像 發(fā)表于 07-03 15:48 ?3098次閱讀
    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)<b class='flag-5'>控制</b><b class='flag-5'>內(nèi)核</b>MotionRT750(一):驅(qū)動(dòng)安裝、<b class='flag-5'>內(nèi)核</b>配置與使用

    屆大會(huì)回顧第5期 | OpenHarmony內(nèi)核實(shí)時(shí)性探索

    實(shí)時(shí)性是操作系統(tǒng)內(nèi)核在特定應(yīng)用場(chǎng)景中不可或缺的特性,它通過多種技術(shù)手段確保系統(tǒng)在規(guī)定時(shí)間內(nèi)完成任務(wù),從而滿足高可靠性、高響應(yīng)速度的需求。
    的頭像 發(fā)表于 06-25 18:02 ?669次閱讀
    第<b class='flag-5'>三</b>屆大會(huì)回顧第5期 | OpenHarmony<b class='flag-5'>內(nèi)核</b>實(shí)時(shí)性探索

    基于RISC-V內(nèi)核的嵌入式系統(tǒng)在機(jī)器人關(guān)節(jié)控制中的應(yīng)用研究

    控制提供了新的選擇。本文結(jié)合多個(gè)基于RISC-V內(nèi)核的芯片案例,詳細(xì)探討了基于RISC-V內(nèi)核的嵌入式系統(tǒng)在機(jī)器人關(guān)節(jié)控制中的應(yīng)用研究,分析
    的頭像 發(fā)表于 04-13 00:00 ?1069次閱讀

    搭載32 位 RXv2 CPU內(nèi)核以及增強(qiáng)型DSP和FPU的RX231系列微控制器數(shù)據(jù)手冊(cè)

    執(zhí)行高性能的數(shù)字濾波、浮點(diǎn)運(yùn)算和其他處理任務(wù)。RX231系列實(shí)現(xiàn)了行業(yè)頂級(jí)的通信安全與加密功能、高靈敏度且高抗噪能力的電容式觸摸傳感器功能,以及安全數(shù)字(SD)主機(jī)接口、通用串行總線(USB)和控制器局域網(wǎng)(CAN)通信功能。 *附件:搭載32 位 RXv
    的頭像 發(fā)表于 03-20 17:39 ?756次閱讀
    搭載32 位 RXv<b class='flag-5'>2</b> CPU<b class='flag-5'>內(nèi)核</b>以及增強(qiáng)型DSP和FPU的RX231系列微<b class='flag-5'>控制</b>器數(shù)據(jù)手冊(cè)

    瑞薩RA8快速上手指南:Cortex-M85內(nèi)核瑞薩RA8開發(fā)環(huán)境搭建 并點(diǎn)亮一個(gè)LED

    因?yàn)镃ortex-M內(nèi)核,瑞薩RA8系列單片機(jī)支持多種市面上常見的開發(fā)環(huán)境,像Keil MDK、IAR EWARM等,而本文講述的是瑞薩自家官方的IDE(e2 studio)。
    的頭像 發(fā)表于 03-17 14:35 ?1351次閱讀
    瑞薩RA8快速上手指南:Cortex-M85<b class='flag-5'>內(nèi)核</b>瑞薩RA8開發(fā)環(huán)境搭建 并點(diǎn)亮一個(gè)LED

    RTOS中的本地存儲(chǔ)指針使用

    本地存儲(chǔ)指針是RTOS中的一個(gè)重要特性,增強(qiáng)了任務(wù)管理和數(shù)據(jù)處理能力。在RTOS上下文中,本地存儲(chǔ)是指存儲(chǔ)在本地的特定任務(wù)或?qū)ο蟮臄?shù)據(jù)。通常與任務(wù)本地存儲(chǔ)(Task Local Storage,TLS)有關(guān),其中數(shù)據(jù)存儲(chǔ)在
    的頭像 發(fā)表于 02-28 16:33 ?1080次閱讀
    RTOS中的本地存儲(chǔ)指針使用

    淺談Windows實(shí)時(shí)性拓展對(duì)工業(yè)控制的重要意義

    而言,微內(nèi)核可以更精確地控制任務(wù)的調(diào)度和資源分配。例如,在實(shí)時(shí)任務(wù)需要執(zhí)行時(shí),微內(nèi)核能夠快速地將所需的資源分配給該
    的頭像 發(fā)表于 01-07 17:36 ?467次閱讀

    TCB熱壓鍵合:打造高性能半導(dǎo)體封裝的秘訣

    隨著半導(dǎo)體技術(shù)的飛速發(fā)展,封裝技術(shù)作為連接芯片與外界環(huán)境的橋梁,其重要性日益凸顯。在眾多封裝技術(shù)中,TCB(Thermal Compression Bonding,熱壓鍵合)技術(shù)以其獨(dú)特的優(yōu)勢(shì),在
    的頭像 發(fā)表于 01-04 10:53 ?5358次閱讀
    <b class='flag-5'>TCB</b>熱壓鍵合:打造高性能半導(dǎo)體封裝的秘訣

    菱PLC伺服控制系統(tǒng)介紹

    在現(xiàn)代工業(yè)自動(dòng)化領(lǐng)域,菱電機(jī)以其高質(zhì)量和可靠性而聞名。菱PLC伺服控制系統(tǒng)是實(shí)現(xiàn)精確運(yùn)動(dòng)控制和高效生產(chǎn)的關(guān)鍵技術(shù)之一。 一、菱PLC伺
    的頭像 發(fā)表于 12-26 17:32 ?2236次閱讀

    鴻道Intewell工業(yè)操作系統(tǒng)大關(guān)鍵技術(shù),領(lǐng)跑行業(yè)前沿

    鴻道工業(yè)操作系統(tǒng),是軟件定義控制的工業(yè)實(shí)時(shí)操作系統(tǒng),具備大關(guān)鍵技術(shù):1、確定性計(jì)算與高實(shí)時(shí)響應(yīng)(微秒級(jí)、關(guān)鍵指標(biāo))提供確定性的計(jì)算與高實(shí)時(shí)的系統(tǒng)
    的頭像 發(fā)表于 12-25 14:46 ?729次閱讀

    電動(dòng)工具電機(jī)的換向與FOC控制解析

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

    Linux計(jì)劃任務(wù)介紹

    點(diǎn)定時(shí)備份數(shù)據(jù)。比如:11點(diǎn)開啟網(wǎng)站搶購接口,12點(diǎn)關(guān)閉網(wǎng)站搶購接口。 3.計(jì)劃任務(wù)主要分為以下兩種使用情況: 1.系統(tǒng)級(jí)別的定時(shí)任務(wù): 臨時(shí)文件清理、系統(tǒng)信息采集、日志文件切割?
    的頭像 發(fā)表于 11-24 15:49 ?1008次閱讀