久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5174|回復: 0
收起左側

uC/OS-II學習筆記—任務控制塊實體

[復制鏈接]
ID:51773 發表于 2013-7-14 04:03 | 顯示全部樓層 |閱讀模式
uC/OS-II是如何生成任務控制塊的實體的呢?答案很簡單,uC/OS-II是以結構體數組的形式生成了任務控制塊的實體。任務控制塊實體的聲明如下:

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

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

3.JPG
如上圖所示是系統實際運行時,內存中的實際信息。可見,第一個任務控制塊即OSTCBTbl[0]是從地址0x00433300開始的,包含了前面講到的所有任務控制塊成員。該任務控制塊的優先級是0x3f,對應十進制的63,所以是優先級最低的空閑任務,任務名稱OSTCBTaskName的內容是“uC/OS-II Idle”。

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产91久久久久久久免费 | 99久久久无码国产精品 | 精品久久久久久久久久久久久久久久久 | 日韩在线视频观看 | 久久精品一区 | 淫片一级国产 | 日韩精品在线免费观看视频 | 一本久久a久久精品亚洲 | 成人毛片网站 | 欧美激情久久久 | 超碰成人免费 | 中文字幕二区三区 | 久久久久成人精品 | 成人3d动漫一区二区三区91 | 欧美日韩亚洲国产 | 亚洲一区 | 日韩成人在线播放 | 欧美五月婷婷 | 日韩视频一区在线观看 | 91精品久久久久久久久久入口 | 三级黄片毛片 | 国产精品特级毛片一区二区三区 | 日本一区二区三区免费观看 | 日本高清不卡视频 | 天啪 | 91精品国产综合久久小仙女图片 | 一区二区三区四区国产 | 久久亚洲国产精品 | 99成人精品 | 国产在线高清 | 午夜精品福利视频 | 亚洲国产精品久久久久婷婷老年 | 亚州毛片 | 国产精品久久久久久高潮 | 日韩欧美手机在线 | 亚洲福利在线视频 | 欧美久久一级 | 男女深夜网站 | 新超碰97| 91色网站 | 中文字幕91av|