1. 程式人生 > >嵌入式實時作業系統uc/os-ii 原理及應用 讀書筆記

嵌入式實時作業系統uc/os-ii 原理及應用 讀書筆記

對任務就緒表的操作理解:

將優先級別為prio的任務置為就緒狀態,可使用如下程式碼

OSRdyGrp |= OSMapTbl[prio >>3];//將prio任務所在的組狀態置為1,表示該組有任務就緒。

OSRdyTbl[prio>>3] |= OSMapTbl[prio&0x07];//將就緒表中prio任務對應的位置為1,表示該優先順序為prio的任務就緒。

其中OSMapTbl[]是uc/os-ii為加快運算速度定義的一個數組,它的各元素值為:

OSMapTbl[0] = 00000001B

OSMapTbl[1] = 00000010B

OSMapTbl[2] = 00000100B

OSMapTbl[3] = 00001000B

OSMapTbl[4] = 00010000B

OSMapTbl[5] = 00100000B

OSMapTbl[6] = 01000000B

OSMapTbl[7] = 10000000B

要使優先順序為prio的任務脫離就緒狀態,可使用如下程式碼

if ((OSRdyTbl[prio>>3] &= ~OSMapTbl[prio&0x07]) == 0)

{

       OSRdyGrp &= ~OSMapTbl[prio >>3];

}

其中OSRdyTbl[prio>>3] &=~OSMapTbl[prio&0x07]是將就緒表OSRdyTbl中優先順序為prio的任務所在的元素OSRdyTbl[prio>>3]對應優先順序為prio的任務的位([prio&0x07)

置為0,與上面的OSRdyTbl[prio>>3] |= OSMapTbl[prio&0x07]操作功能剛好相反。

改操作執行完畢後判斷就緒表元素OSRdyTbl[prio>>3]是否為0,如果等於0,表示該元素對應的組的8個任務全部沒有就緒,於是將OSRdyGrp對應的表示該組就緒狀態的位

置為0,表示該組沒有任務處於就緒狀態,與上面的OSRdyGrp |= OSMapTbl[prio >>3]操作功能剛好相反。

相關推薦

嵌入式實時作業系統uc/os-ii 原理應用 讀書筆記

對任務就緒表的操作理解: 將優先級別為prio的任務置為就緒狀態,可使用如下程式碼 OSRdyGrp |= OSMapTbl[prio >>3];//將prio任務所在的組狀態置為1,表示該組有任務就緒。 OSRdyTbl[prio>>3] |= O

嵌入式實時作業系統uc-os-ii原理應用 第三章 uc/os-ii中的任務

3.1-3.4.3  印象比較深的點在作業系統中程式叫做程序或執行緒。系統任務:空閒任務和統計任務。不同處理器,堆疊的增長方向不同。實時作業系統,時間操作必須為常量,所以不能用for,配合break或continue。不然每個任務執行時間不同。

嵌入式實時作業系統µC/OS-II》學習筆記(一)

這本書,早在兩年前畢業,一位一起進公司的好友就買了,不過一直沒看,翻了翻目錄,似乎工作中根本用不到,抱著一種若不能學以致用,則學了也很難深入的想法,一直也就沒看。直到在上期《程式設計師》上看到推薦,才忽然提起興趣,兩年嵌入式開發以後,再回過頭來看此書,確實還說不好合適不合適,也許隨著瞭解的深入,不保證某天就中

嵌入式實時作業系統µC/OS-II》學習筆記(二)

就緒表:uC/OS-II最多支援64個任務(包括系統任務),使用一個BYTE(OSRdyGrp)和一個最大(與任務數相關)BYTE[8]的陣列(OSRdyTbl[])表示它們的就緒狀態。OSRdyGrp的第n位代表第n組中是(1)否(0)存在就緒任務,OSRdyTbl[n]的第n位表示這個任務是(1)否(0)

嵌入式實時作業系統μC/OS-Ⅱ 在DSP晶片上的移植與測試

【摘要】為了降低DSP 系統軟體的開發難度,保證系統的實時性,縮短開發週期,將嵌入式實時作業系統μC/OS-Ⅱ移植到DSP 晶片中是目前比較常用的一種方法。本文介紹了嵌入式實時作業系統μC/OS-Ⅱ的

微控制器原理應用學習筆記(一)

*在學習51之前,最先接接觸到的是Arduino,這個東西上手確實十分的簡單,可以做出來一些小玩意,但是它的效能終究是不夠強大,對於一些比較厲害的作品,用Arduino就顯得心有餘而力不足了,所以現在開始學習51和stm32。51的學習在大學本科階段,在學校課堂

嵌入式實時作業系統small RTOS51原理應用 ----筆記 第三章 一個簡單的例子

嵌入式實時作業系統small RTOS51原理及應用 ----筆記 第三章 一個簡單的例子 keil C51 除錯程式碼: 軟體模擬模擬 執行 原始碼 #define OS_ENTER_CRITICAL() EA = 0,Os_Enter_Sum++

嵌入式實時作業系統small RTOS51原理應用 ----筆記 前言 緒論

圍繞 DP-51 微控制器模擬實驗儀的硬體電路, 闡述Small RTOS51 作業系統的設計原理。 詳細的介紹了RS232 ,I2C,USB1.1和CANBUS等一系列外圍器件及其功能部件的應用設計。 本書的原理篇,以Small RTOS V1.12.1版本為基礎, 微型嵌入式

嵌入式實時作業系統small RTOS51原理應用 ----筆記 第五章 如何任務切換

嵌入式實時作業系統small RTOS51原理及應用 ----筆記 第五章 如何任務切換 5.3 何時進行任務切換 參考書籍<MCS-51微控制器原理與應用.pdf> TMOD = (TMOD & 0XF0) | 0X01; TL0 = 0x0;

嵌入式實時作業系統ucos/ii 原理應用(七)

第八章 在51微控制器上移植μC/OS-Ⅱ 8.1 μC/OS-Ⅱ移植的一般性問題 8.1.1 可重入函式 能允許同時被多個任務所呼叫,而不會通過函式中變數的耦合引起任務之間的相互干擾的函式叫做可重入函式。 一個可重入函式只使用區域性變數,因為函式的區域性變數儲存

嵌入式實時作業系統ucos/ii 原理應用(三)

三、uC/OS-II的中斷和時鐘 3.1 uC/OS-II的中斷 3.1.1 uC/OS-II的中斷過程 uC/OS-II系統響應中斷的過程是:系統接收到中斷請求後,如果這是CPU處於中斷允許狀態(即中斷時開放的),系統就會中止正在執行的當前任務,而按照中斷向量

嵌入式實時作業系統ucos/ii 原理應用(二)

第二章  Uc/OS-II中的任務 3.1任務的基本概念 3.1.1 從程式碼上看:Uc/OS-II中的任務就是一個函式 從任務的儲存結構上看:任務分成三個組成:                       任務程式程式碼(函式)                     

uC/OS-II訊息佇列操作

使用訊息佇列可在任務之間傳遞多條訊息,訊息佇列由三部分組成:事件控制塊、訊息佇列和訊息。 事件控制元件塊成員OSEventPtr指向一個叫做佇列控制塊(OS_Q)的結構,該結構管理著一個數組MsgTb1[],該陣列中的元素都是指向訊息的指標。一. 訊息佇列的操作 1. 建立

什麼是嵌入式實時作業系統ucos-ii?有了解的嗎?

對於嵌入式實時作業系統嵌入式實時作業系統ucos-ii你知道有那哪些嗎?凌陽教育的老師為你解答, 關於嵌入式實時作業系統ucos-ii: uCOS II   是由Labrosse先生編寫的一個開放式核心,最主要的特點就是原始碼公開。這一點對於使用者來說可謂利弊各半,好處在於

uC/OS-II任務排程之就緒表最高優先順序任務判定演算法

uC/OS-II是Jean J. Labrosse設計的完整的、可移植、可固化、可裁剪的搶佔式實時多工核心,絕大部分程式碼都是用標準的C語言編寫的,開源、規模不大,比較適合初次接觸嵌入式作業系統的人員

UC/OS-II作業系統結構

由上圖我們可以看到,UC/OS-II作業系統本質上就是一堆.c檔案和.h等檔案,它大部分是C語言編寫的,很少的一部分由組合語言開發。支援這個作業系統的底層是CPU和計數器。當我們移植這個作業系統的時

【RTX作業系統教程】第2章 嵌入式實時作業系統介紹

第2章      嵌入式實時作業系統介紹 轉載來源: http://forum.armfly.com/forum.php?mod=viewthread&tid=16447&highlight=RTX%B2%D9%D7%F7%CF%

uc/os-ii任務排程的鎖定與解鎖

排程器上鎖函式OSSchedlock()的功能是用於禁止任務排程,使任務保持對CPU的控制權。排程器開鎖函式OSSchedUnlock()的功能是解除對任務排程的禁止。 排程器上鎖和開鎖的實現原理是:對全域性變數鎖定巢狀計數器OSLockNesting進行操作

uc/os-ii訊息佇列

使用訊息佇列可以在任務之間傳遞多條訊息。訊息佇列由三個部分組成:事件控制塊、訊息佇列和訊息。 訊息佇列的資料結構如下圖所示。從圖中可以看到,訊息佇列相當於一個共用一個任務等待列表的訊息郵箱陣列,事件控制塊成員OSEventPtr指向了一個叫做佇列控制塊(OS_

【UCOSIII】嵌入式實時作業系統UCOSIII及其任務

UCOSIII的任務簡介在UCOSIII中任務是以何種面貌存在的呢?在UCOSIII中任務就是程式實體,UCOSIII能夠管理和排程這些小任務(程式)。UCOSIII中的任務由三部分組成:任務堆疊、任務控制塊和任務函式。任務堆疊:上下文切換的時候用來儲存任務的工作環境,就是S