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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5194|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人午夜影院 | www.粉色视频在线观看 | 亚洲va| 亚洲最新视频 | 国产草草影院 | www激情 | 亚洲乱码在线 | 免费在线黄色网址 | 久久久久久国产精品 | 亚洲无av在线中文字幕 | 国产中文字幕视频 | 自拍偷拍中文字幕 | 国产精品一二三四 | 久久午夜影院 | 日本韩国欧美中文字幕 | 日韩一区二区三区在线 | 精品久久视频 | 免费看黄色片 | 亚洲无人区一线二线三线 | 性色av蜜臀av浪潮av老女人 | 亚洲精品一区二区在线观看 | 欧美一级黄色大片 | 国产午夜精品一区二区三区视频 | 亚洲国产精品久久久 | 免费观看一区二区三区 | 中文字幕自拍 | 天天综合天天做天天综合 | 日韩一级免费视频 | 欧美黄色一区 | 日韩在线视频一区 | 黄色小视频在线播放 | 午夜www| 久热在线 | 国产福利在线 | 亚洲免费在线播放 | 日韩精品免费观看 | 国产www视频 | 黄色www | 高清视频一区二区 | 触手繁殖の地狱3d啪啪 | 亚洲视频一区 |