欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: uC/OS-II學(xué)習(xí)筆記—任務(wù)控制塊實(shí)體 [打印本頁]

作者: xueren    時(shí)間: 2013-7-14 04:03
標(biāo)題: uC/OS-II學(xué)習(xí)筆記—任務(wù)控制塊實(shí)體
uC/OS-II是如何生成任務(wù)控制塊的實(shí)體的呢?答案很簡單,uC/OS-II是以結(jié)構(gòu)體數(shù)組的形式生成了任務(wù)控制塊的實(shí)體。任務(wù)控制塊實(shí)體的聲明如下:

該代碼在ucos_ii.h中,OS_MAX_TASKS為最多的用戶任務(wù)數(shù),OS_N_SYS_TASKS為系統(tǒng)任務(wù)數(shù),一般情況下為2。因此,在內(nèi)存中分配了OS_MAX_TASKS+OS_N_SYS_TASKS個(gè)任務(wù)控制塊,這些任務(wù)控制塊占用了(OS_MAX_TASKS+OS_N_SYS_TASKS)*SizeOf(OS_TCB)個(gè)內(nèi)存空間。
宏OS_MAX_TASKS在OS_CFG.h中定義,OS_CFG.h是整個(gè)操作系統(tǒng)的配置文件。宏OS_N_SYS_TASKS在ucos_ii.h中定義,它的值與另一個(gè)宏OS_TASK_STAT_EN有關(guān),代碼如下所示:

OS_TASK_STAT_EN>0表示系統(tǒng)具有統(tǒng)計(jì)任務(wù)的時(shí)候,OS_N_SYS_TASKS的值應(yīng)為2,否則應(yīng)為1.
OS_TASK_STAT_EN在OS_CFG.h中定義,意義為系統(tǒng)是否具有統(tǒng)計(jì)任務(wù),OS_TASK_STAT_EN的默認(rèn)值是1,表示有統(tǒng)計(jì)任務(wù),如果確實(shí)不需要統(tǒng)計(jì)任務(wù),可以把OS_TASK_STAT_EN的值設(shè)置為0,這時(shí)候系統(tǒng)任務(wù)只有空閑任務(wù),因此OS_N_SYS_TASKS的值就是1.反之,系統(tǒng)如果有統(tǒng)計(jì)任務(wù),再加上空閑任務(wù),那么系統(tǒng)任務(wù)的數(shù)量就是2,OS_N_SYS_TASKS的值就是2.
于是,系統(tǒng)任務(wù)總數(shù)=OS_MAX_TASKS+OS_N_SYS_TASKS,那么上面程序中的代碼定義的任務(wù)控制塊的數(shù)量就等于系統(tǒng)的任務(wù)總數(shù)。
uC/OS-II最多可以管理64個(gè)任務(wù),因此,在有統(tǒng)計(jì)任務(wù)的情況下,OS_MAX_TASKS不能超過62。通常,為節(jié)省內(nèi)存,提高運(yùn)行效率 ,在實(shí)際情況下,如果用戶只有5個(gè)任務(wù),完全可以把OS_MAX_TASKS的值設(shè)置為5,這樣既節(jié)省了大量的內(nèi)存資源,又提高了運(yùn)行效率。
任務(wù)控制塊實(shí)體的聲明的程序代碼定義了系統(tǒng)任務(wù)總數(shù)個(gè)任務(wù)控制塊數(shù)組,于是這些任務(wù)控制塊序號分別是0,1,2,……,OS_MAX_TASKS+OS_N_SYS_TASKS-1,對應(yīng)的數(shù)組元素為OSTCBTbl[0]~OSTCBTbl[OS_MAX_TASKS+OS_N_SYS_TASKS-1],他們占用連續(xù)的內(nèi)存空間。
如下圖所示,列出了系統(tǒng)初始化后實(shí)際的任務(wù)控制塊,其中第一個(gè)任務(wù)控制塊的內(nèi)容被展示出來。


如上圖所示是系統(tǒng)實(shí)際運(yùn)行時(shí),內(nèi)存中的實(shí)際信息。可見,第一個(gè)任務(wù)控制塊即OSTCBTbl[0]是從地址0x00433300開始的,包含了前面講到的所有任務(wù)控制塊成員。該任務(wù)控制塊的優(yōu)先級是0x3f,對應(yīng)十進(jìn)制的63,所以是優(yōu)先級最低的空閑任務(wù),任務(wù)名稱OSTCBTaskName的內(nèi)容是“uC/OS-II Idle”。






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1