1. 程式人生 > >ucos iii學習筆記——為什麼選擇ucos iii

ucos iii學習筆記——為什麼選擇ucos iii

首先我們得先討論前後臺系統和RTOS(Real Time OS)的區別。前後臺系統,也即是我們所說的裸機程式,它的結構通常包括一個死迴圈和若干個中斷服務程式,直接上圖,我們有一個直觀認識:


假如Task2是一個延時任務,當程式執行到Task2時,CPU只能乾等,這樣就浪費了CPU資源。進一步說,當在延時階段,某種特發情況需要Task4響應,此時系統無法得到實時響應,只能一直按順序執行下去,直到執行到Task4才能得到響應,可見前後臺系統的實時響應性較差。

那麼RTOS呢?我們先看圖,瞭解它的執行機制


在實時作業系統中,我們可以把要實現的功能劃分為多個任務,每個任務負責實現其中的一部分,每個任務都是一個很簡單的程式,通常是一個死迴圈。

RTOS的核心負責管理所有的任務,核心決定了執行哪個任務,何時停止當前任務切換到其他任務,這個是核心的多工管理能力。這就意味著,假設執行某任務裡面的延時語句時,該任務就會被掛起,CPU根據核心機制執行另一個任務,這就充分利用了CPU資源。多工管理給人的感覺就好像晶片有多個CPU,多工管理實現了CPU資源的最大化利用,多工管理有助於實現程式的模組化開發,能夠實現複雜的實時應用。

說了這麼多,那我們為何選擇使用ucos iii這個實時作業系統呢?因為ucos iii是一個開源、可裁剪、絕大部分由C語言編寫、可讀性強!更重要的一點是網上有很多關於ucos iii/ucos ii的資源,不像其他作業系統相對較少的學習資源。作為嵌入式初學者,ucos iii是一個很好的入門學習物件!


相關推薦

ucos iii學習筆記——為什麼選擇ucos iii

首先我們得先討論前後臺系統和RTOS(Real Time OS)的區別。前後臺系統,也即是我們所說的裸機程式,它的結構通常包括一個死迴圈和若干個中斷服務程式,直接上圖,我們有一個直觀認識: 假如Task2是一個延時任務,當程式執行到Task2時,CPU只能乾等,這樣就浪費

uCOS-III學習筆記——LPC1768移植

4.在bsp.h中,將部分巨集和函式宣告刪除,包括按鍵的巨集,LED的函式,PB的函式,按鍵的函式,只保留BSP_Init函式和BSP_Start函式.BSP_Init()函式對硬體進行配置,在主要函式CPU初始化之後進行呼叫; BSP_Start()函式獲取CPU時鐘,並進行systick初始化,在初始任務

UCOS-III學習筆記——OS獲取CPU控制權深入理解

μC/ OS III Version: v3.03.01 μC/ CPU Version: v1.29.01 μC/ LIB Version: v1.37.00 FOR: NXP LPC1768 CPU 在UCOS-III學習筆記——main函式中的配

ucos ii學習筆記1——任務中斷和排程

       UCos ii的中斷過程是接收到中斷請求,如果此時處理器處於中斷允許的情況下,系統中止當前執行的任務,而按照中斷向量指向的中斷服務子程式,當中斷服務子程式結束時,系統將根據當前優先順序連結串列中的情況,返回原先的被中止的任務繼續執行,或者到另一個優先順序更高

uCOS-II學習筆記:實時作業系統(一)

1.前後臺系統:前後臺系統的架構用一句話來形容的話,就是一個大的迴圈,加上中斷,就形成了一個整的體系。 假設來了中斷需要處理模組3,如果模組3的處理是最緊迫的,但是當前cpu 只執行到模組1, 這樣的話,必須還要承受模組2的執行時間延遲,才能輪到模組3的處理,當模組越多的

uc/os-iii學習筆記-資源管理(中斷、訊號、訊號量、互斥訊號量)

資源管理 最常用的獨佔共享資源和建立臨界區的方法有以下幾種: 關、開中斷 獨佔共享資源最簡單也是最快捷的方法就是關中斷和開中斷,當訪問共享資源的速度很快,以至於訪問共享資源所花的時間小於中斷的關閉時間時,可以使用關、開中斷方法。但是不推薦此方法

uc/os-iii學習筆記-任務排程

可剝奪含義: ucos-iii採用的是“可剝奪型”,意味著當一個事件發生,並且使得一個更高優先順序任務就緒時,ucos就會立即將CPU的控制權剝奪,轉交給更高優先順序的任務使用。當一個任務將訊號量釋放給一個更高優先順序的任務,當前任務就會掛起,而更高優先順序的

uc/os-iii學習筆記---儲存管理(記憶體管理)

記憶體管理 我本人覺得記憶體管理反而是最容易的管理函式。 作為一個RTOS作業系統,記憶體管理是必備的功能,因此UCOSIII也就記憶體管理能力。通常應用程式可以呼叫ANSI C編譯器的malloc()和free()函式來動態的分配和釋放記憶體,但是在嵌

C++學習筆記——選擇結構的格式

bre span pan c++學習 bsp ase fault str 結構 1、if語: 格式1: 1 if(條件表達式) 2 語句 1; 格式2: 1 if(條件表達式) 2 { 3

CSS3學習筆記-選擇

標識 bsp line 首字母 site href before 偽類選擇器 round 類選擇器 class="className" .className 選區class為className的元素 p.chassName 選區p標簽中class為className的元素

Python學習筆記 ---- 選擇排序

選擇排序的演算法思想是: 每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的資料元素排完 Python程式碼如下: def selection_sort

前端基礎學習筆記 選擇器(高階)

組合選擇器的優先順序 比較優先順序時,保證精準控制到了元素 比較id選擇器,如果id多,那優先順序高 id選擇器一樣多時,比較class選擇器,class多的則優先順序高 class如果相等,比較標籤選擇器,標籤選擇器多則優先順序高 偽類選擇器,如hover,優先順

演算法學習筆記--選擇排序

前言:深知自己在演算法方面的菜,所以最近買了本演算法的書,本系列就作為該書的學習筆記。 就是這本:演算法(名字就叫演算法。。。) 作為演算法學習筆記的第一篇,當然從最簡單的排序演算法開始:選擇排序。 排序過程:先找到陣列中最小的那個元素,然後它和陣列中第一

ucos-iii學習之就緒列表以及新增任務到就緒佇列

1.就緒列表 準備好執行的任務就被放到就緒列表中。 就緒列表是一個數組(OSRdyList[]),共有OS_CFG_PRIO_MAX條記錄,記錄的資料型別為OS_RDY_LIST,其中包含三個變數:

ucos-iii學習之實時作業系統(RTOS)

1.實時作業系統的概念? 實時作業系統除了包含一個實時多工核心外,還提供了其他的高層系統服務函式,如檔案系統,協議棧,圖形使用者介面庫(GUI)等。 2.關於Micrium? Micrium提供了

ucos-iii學習之目錄與檔案

ucos-iii的應用具體需要哪些原始檔? 1.軟體(韌體) (1)應用程式 通常能在應用程式碼中找到main()函式。 (2)CPU 半導體廠商通常以原始碼的形式提供庫函式,用於訪問他們生產

uCOS-II的學習筆記(共九期)和例子(共六個)

操作 第七篇 wip target 恢復 第一篇 ont load -i 源:uCOS-II的學習筆記(共九期)和例子(共六個) 第一篇 :學習UCOS前的準備工作http://blog.sina.com.cn/s/blog_98ee3a930100w0eu.htm

UCOS學習筆記(六)訊號量

前言 這是用markdown寫的第一篇部落格,如果寫的不好見諒啦 訊號量 基本概念及一些注意事項 將訊號量用於同步的概念是荷蘭的電腦科學家Edgser Dijkstra 在1959 年發明的。在電腦軟體中,訊號量是一種用於多工排程的協議機制。 訊號量像是一種上鎖

吳恩達機器學習筆記4-代價函數III(cost function)

cti 分享 表達 地理 image 一個 技術分享 代價函數 .com 這是代價函數的樣子,等高線圖,則可以看出在三維空間中存在一個使得??(??0, ??1)最小的點;   通過這些圖形,我希望你能更好地理解這些代價函數??所表達的值是什麽樣的,它們對應的假設是

UCOS學習筆記(二)UCOSII與UCOSIII在F4上的移植

要想學習一個作業系統,最先要做的當然是移植了,把它移植到你的板子上,然後寫寫程式,讀讀原始碼,慢慢去吃透這個OS。 今天我就記錄下UCOSII機UCOSIII在F4上的移植。 UCOSII 我在學習32時,一直學習的都是原子的暫存器版本的資料,所以說在移植時我也是優先向