1. 程式人生 > >嵌入式實時作業系統ucos/ii 原理與應用(七)

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

第八章 在51微控制器上移植μC/OS-Ⅱ

8.1 μC/OS-Ⅱ移植的一般性問題

8.1.1 可重入函式

能允許同時被多個任務所呼叫,而不會通過函式中變數的耦合引起任務之間的相互干擾的函式叫做可重入函式。

一個可重入函式只使用區域性變數,因為函式的區域性變數儲存在任務的堆疊中,所以可保證不同的任務在呼叫同一個函式時不會發生衝突。如果函式一定要使用全域性變數,則需要對使用的全域性變數做必要的保護。

8.1.2 時鐘節拍的產生

一般情況下應該使用硬體定時器來作為時鐘中斷源,這個定時器可以是微處理器整合在一個晶片上的,也可以是分立的,定時中斷的頻率以10~100Hz為宜。

8.1.3 任務堆疊的設計

系統堆疊與任務堆疊的關係:

各個任務用來儲存各自任務堆疊內容的片外RAM空間叫做任務堆疊;

    定義在片內RAM的,各個任務在執行時使用的堆疊叫做系統堆疊。

8.2 在51系列微控制器上已知μC/OS-Ⅱ

8.2.1 改寫檔案OS_CPU.H

1. 堆疊的增長方向

#defineOS_STK_GROWTH 1

堆疊從低地址向高地址增長(從下往上增長)

2. 定義臨界段的巨集

#defineOS_ENTER_CRITICAL() EA = 0

#defineOS_EXIT_CRITICAL() EA = 1

3. 定義任務切換巨集

#defineOS_TASK_SW() OSCtxSw()

4. 定義資料型別


8.2.2 任務堆疊的設計


8.2.3 檔案OS_CPU_C.C的改寫

在檔案OS_CPU_C.C中主要改寫任務堆疊的初始化函式OSTaskStkInit(),由於要使用微控制器上的定時器為系統設定時鐘中斷,所以還要新增對51微控制器定時器的初始化程式。

如果對51微控制器的T0定時器作為系統時鐘的中斷源,初始化如下:

void InitTimero(void)  reentrant

{

    TMOD = TMOD & 0x0F0;

    TMOD = TMOD | 0x001;

    TH0 = 0x70;

    TL0 = 0x00;

    TH0 = 1;

}

8.2.4 幾點必須注意的事項

μC/OS-Ⅱ使用的pdata、data等引數都與KEIL的關鍵字相同,所以還要把μC/OS-Ⅱ的這些資料改成ppdata、ddata等。

為了使用Ri而不用對它們進行訪問,要使用KEIL擴充套件關鍵字IDATA,將它們定義在內部RAM中。

8.3 應用舉例

相關推薦

嵌入式實時作業系統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中的任務就是一個函式 從任務的儲存結構上看:任務分成三個組成:                       任務程式程式碼(函式)                     

嵌入式實時作業系統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?有了解的嗎?

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

《Visual C++異常處理機制原理應用—— C/C++結構化異常處理之try-finally終止處理的使用原理

在上一篇文章中,我們其實只分析了終止型異常處理程式中正常的執行流程,這種情況的出現其實需要作如下假設: __try塊中的程式碼執行過程中不會引發異常 這部分程式碼不會試圖提前離開__try塊的作用範圍(如包含goto、break、continue、retur

【 專欄 】- 嵌入式實時作業系統UCOS-III

我的學校:東南大學(福建大三本) [注1:如有疑問,歡迎郵件或QQ交流] [注2:CSDN登入頻繁,也可直接在部落格評論處留言] The best preparation for tomorrow is doing your best today!

kmp算法原理應用簡單易懂)

tex font http ont image inf csdn 簡單 算法 kmp算法原理與應用(簡單易懂)

UEFI原理程式設計:UEFI工程模組檔案-使用main函式的應用程式工程模組

UEFI工程模組檔案-使用mian函式的應用程式工程模組 前言   標準應用程式工程模組和Shell應用程式工程模組寫起來都是相對和我們平常使用的C/C++有些不同。EDK2提供了使用main函式的

南京工程學院 資料庫複習資料庫系統概論複習 及 資料庫原理應用樣題

一.資料庫系統概論1.1    百度文庫 複習文件(需下載券)《資料庫系統概論》(王珊.第五版)★第一章   緒論v 本章內容:資料庫系統概述、資料模型、資料庫系統結構v 本章主要考點: 資料、資料庫、★資料庫管理系統的概念、概念模型、★ER圖、三種資料模型、資料庫的三級模式

第44課 遞歸的思想應用

!= 遞歸法 ati 恢復 直接 clu spa tex height 1. 單向鏈表的轉置 【編程實驗】單向鏈表的轉置(Node* reverse(Node* list)) 2. 單向排序鏈表的合並 【編程實驗】單向排序鏈表的合並(Node* merge(Node

無限極分類原理實現

轉換 完成 外灘 獲得 意思 容易 set 導航 另一個   前言   無限極分類是我很久前學到知識,今天在做一個項目時,發現對其概念有點模糊,所以今天就來說說無限極分類。   首先來說說什麽是無限極分類。按照我的理解,就是對數據完成多次分類,如同一棵樹一樣,從根開始,

防雪崩利器:熔斷器 Hystrix 的原理使用

ring bug 導致 運行 ade 新的 not metrics exceptio https://segmentfault.com/a/1190000005988895 前言 分布式系統中經常會出現某個基礎服務不可用造成整個系統不可用的情況, 這種現象被稱為服務雪崩效應

SSH原理運用:遠程登錄

獲得 回車 you 密碼登錄 很難 windows 註釋 設備 範圍 SSH是每一臺Linux電腦的標準配置。 隨著Linux設備從電腦逐漸擴展到手機、外設和家用電器,SSH的使用範圍也越來越廣。不僅程序員離不開它,很多普通用戶也每天使用。 SSH具備多種功能,可以用於很多

由散列表到BitMap的概念應用:面試中的海量資料處理

一道面試題 在面試軟體開發工程師時,經常會遇到海量資料排序和去重的面試題,特別是大資料崗位。 例1:給定a、b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4G,找出a、b檔案共同的url? 首先我們最常想到的方法是讀取檔案a,建立雜湊表,然後再讀取檔案b,遍歷檔

Webpack原理實踐:打包流程

寫在前面的話 在閱讀 webpack4.x 原始碼的過程中,參考了《深入淺出webpack》一書和眾多大神的文章,結合自己的一點體會,總結如下。 總述 webpack 就像一條生產線,要經過一系列處理流程後才能將原始檔轉換成輸出結果。 這條生產線上的每個處理流程的職責都是單一的,多個流程之間有存在依賴關

Docker容器的原理實踐

系統 rest 引擎 服務器 分類 file creat 產品 maintain 歡迎訪問網易雲社區,了解更多網易技術產品運營經驗。虛擬化是一種資源管理技術,將計算機的各種資源予以抽象、轉換後呈現出來, 打破實體結構間的不可切割的障礙,使用戶可以比原本更好的方式來應用這些資

卡爾曼濾波原理應用

出於科研需要,打算開始學習卡爾曼濾波(Kalmam Filter)。很早之前就聽說過卡爾曼濾波,但一直沒能深入學習,這次終於有機會了,哈哈。 1.卡爾曼濾波的發展過程 卡爾曼濾波的本質屬於"估計"範疇.先介紹下估計,所謂“估計”問題,就是對收到隨機干擾和隨機測量誤差作用的物理系統,按照某種效