原创 C語言三種預處理功能

僞指令(或預處理指令)定義: 預處理指令是以#號開頭的代碼行。#號必須是該行除了任何空白字符外的第一個字符。#後是指令關鍵字,在關鍵字和#號之間允許存在任意個數的空白字符。整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對源

原创 1.什麼是uC/OS III,以及uC/OS III的結構

1.什麼是uC/OS III uC/OS-III(Micro C OS Three 微型的C 語言編寫的操作系統第3版)是一個可升級的,可固化的,基於優先級的實時內核。它對任務的個數無限制。uC/OS-III 是一個第3 代的系統內核,支

原创 四. 就緒列表

準備運行的任務被放置於就緒列表中。就緒列表包括2 個部分:位映像組包含了優先級信息,一個表包含了所有指向就緒任務的指針。 一  優先級 顯示了優先級的位映像組。它的寬度取決於CPU_DATA 的數據類型(見CPU.H),它可以是8 位、1

原创 SPI、I2C、UART三種串行總線的原理、區別及應用

SPI、I2C、串口、我相信如果你是從事的是嵌入式開發,一定會用到這三種通信協議,串口的話因爲和波特率有關,所以一般的CPU或者MCU只會配有兩個或者三個串口,而數據的傳輸,的話SPI和I2C用得會比較多,下面找到了一篇博客。轉過來、

原创 移植操作系統的對微處理器的要求

1.什麼是移植? 就是使選用的實時內核能在某一個特定的微處理器上運行。爲了方便移植,大部分的實時操作系統代碼都是用C語言編寫的。但仍然需要用C和彙編語言編寫一些與微處理器相關的代碼,因爲有一些操作需要彙編語言才能實現。 2.操作系統對微處

原创 五 .調度

調度的定義: 調度器,決定了任務的運行順序。uC/OS-III 是一個可搶佔的,基於優先級的內核。根據其重要性每個任務都被分配了一個優先級。uC/OS-III 支持多個任務擁有相同的優先級。 “可搶佔的”意味當事件發生時,如果事件讓高優先

原创 在C語言中,static靜態變量,extern外部變量的區別

1:什麼是static static,叫做靜態變量。一般用於全局變量裏面,首先,我們來考慮一下爲什麼要用到static,我們可以想一下,一個項目其實是由很多位工程師一起來完成的,他們之間是互相獨立完成自己所要完成的一個模塊的,這就有可能出

原创 六 上下文切換

一   定義 當UCOS-III轉向執行另一項新任務的時候,他保存了當前任務的CPU寄存器到堆棧,並從新任務的堆棧CPU寄存器載入CPU,這個過程叫做上下文切換 上下文切換需要一些開支,CPU的寄存器越多,開支越大。上下文切換的時間基本取

原创 2.臨界段代碼學習

臨界段代碼的定義 臨界段代碼,也稱作臨界域,是一段不可分割的代碼。uC/OS-III中包含了很多臨界段代碼。如果臨界段可能被中斷,那麼就需要關中斷以保護臨界段。如果臨界段可能被任務級代碼打斷,那麼需要鎖調度器保護臨界段。uC/OS-III

原创 3.任務管理機制

任務的概念 在實際應用中一般是將工作拆分爲多個任務的,並且每個任務都是可靠的。在使用uC/OS就可以很好的解決這個問題,任務又叫線程,在對於單個CPU來說,在任何時刻,都是只能有有一個任務被執行。 uC/OS-III 支持多任務且對任務

原创 任務管理機制二

本文是爲了續前面的任務管理機制的。 六.內部任務 在uC/OS-III 初始化的時候,它會創建至少2 個內部的任務(OS_IdleTask()和OS_TickTask()),3 個可選擇的任務(OS_StatTask(),OS_TmrT