❶ 再問您 一個問題,51單片機上的C語言問題及uCOS問題.
那個uCOS-II是利用了宏開關。
例如:
Global.h文件里如下定義:
#ifdef
GLOBAL_VAR
unsigned
char
i_var;
#else
extern
unsigned
char
i_var;
#endif
如果在C文件里包含"Global.h"之前,先進行宏定義
#define
GLOBAL_VAR
#include
"Global.h"
那麼,就相當於在
這個C文件里定義了
unsigned
char
i_var;
如果在包含之前,沒有定義
GLOBAL_VAR
相當於,在這個C文件里引用了i_var,相當於:
extern
unsigned
char
i_var;
❷ 用ucos有什麼好處嗎
ucos ii是由Labrosse先生編寫的一個開放式內核,最主要的特點就是源碼公開,使用的好處在於,它是免費的,用戶可以根據自己的需要對它進行修改。
❸ 單片機工業控制是用什麼操作系統
單片機控制一般不用操作系統,但最好用FATFS文件系統,用操作系統的話多用ucos操作系統,也有用專用操作界面如emWin。
❹ free rtos和ucos的區別
一、freeRTOS比uCOS II優勝的地方: 1。 內核 ROM和耗費RAM都比uCOS 小,特別是RAM。 這在 單片機 裡面是稀缺資源,uCOS至少要5K以上, 而freeOS用2~3K也可以跑的很好。 2。freeRTOS 可以用協程(Co-routine),減少RAM消耗(共用STACK)。uCOS只能用任務(TASK,每個任務有一個獨立的STACK)。 3。freeRTOS 可以有優先度一樣的任務,這些任務是按 時間片 來輪流處理,uCOSII 每個任務都只有一個獨一無二的 優先順序 。因此, 理論 上講,freeRTOS 可以管理超過64個任務,而uCOS只能管理64個。 4。freeRTOS 是在商業上免費應用。uCOS在商業上的應用是要付錢的。 二、freeRTOS 不如uCOS的地方: 1。比uSOS簡單,任務間通訊freeRTOS只支持Queque, Semaphores, Mutex。 uCOS除這些外,還支持Flag, MailBox. 2。uCOS的支持比freeRTOS 多。除 操作系統 外,freeRTOS只支持TCPIP, uCOS則有大量外延支持,比如FS, USB, GUI, CAN等的支持 3。uCOS可靠性更高,而且耐優化,freeRTOS 在我設置成中等優化的時候,就會出問題。 從別處看來的文章!❺ STM32單片機 ucos這個東西要怎麼學啊
先把STM32學了,至少知道有些什麼硬體資源,資源是怎麼控制的;上了操作系統,說白了就和硬體層關系就不那麼大了,所有的資源都交給操作系統去管理了,上邊寫程序都是用操作系統給的函數介面;當然驅動編寫是離不開硬體的。所以先要把硬體學會,有硬體基礎了,就好辦了,剛開始是有些不習慣,因為上操作系統就有些偏軟體了,裡面有很多操作系統的機制一時還轉換不過來。如果覺得理解不了可以先看看操作系統原理,把一些概念理解了。其實無論什麼操作系統都是有共同點的,無非就是進程調度,進程間的同步與通信,內存管理和文件系統等等。慢慢的自己移植(現在移植都比較方便的匯編和CPU部分都基本是現成的了,這才是操作系統的根基),把操作系統裡面的機制都用一遍,慢慢的就理解了。要相信,沒有足夠的准備和積累,是吃不下一大塊肉的,不要急。
❻ 嵌入式與單片機之間的關系是什麼
嵌入式與單片機之間的關系如下:
嵌入式系統是一個大類,單片機是其中一個重要的子類。嵌式系統像是一個完整的計算機,而單片機更像是一個沒有外設的計算機。
以前單片機包括的東西並不算多,兩者的硬體區別較為明顯。但是,隨著半導體技術的突飛猛進,現在各種硬體功能都能被做進單片機之中。所以,嵌入式系統和單片機之間的硬體區別越來越小,分界線也越來越模糊。
於是,人們傾向於在軟體上進行區分。
從軟體上,行業里經常把晶元中不帶MMU(memory management unit,內存管理單元)從而不支持虛擬地址,只能裸奔或運行RTOS(實時操作系統,例如ucos、華為LiteOS、RT-Thread、freertos等)的system,叫做單片機(如STM32、NXP LPC系列、NXP imxRT1052系列等)。
同時,把晶元自帶MMU可以支持虛擬地址,能夠跑Linux、Vxworks、WinCE、Android這樣的「高級」操作系統的system,叫做嵌入式。
在某些時候,單片機本身已經足夠強大,可以作為嵌入式系統使用。它的成本更低,開發和維護的難度相對較小,尤其是針對一些針對性更強的應用。而嵌入式系統理論上性能更強,應用更廣泛,但復雜度高,開發難度大。
嵌入式,一般是指嵌入式系統,嵌入式開發,就是對嵌入式系統的開發。IEEE(美國電氣和電子工程師協會)對嵌入式系統的定義是:「用於控制、監視或者輔助操作機器和設備的裝置」。
國內學術界的定義更為具體一些,也更容易理解:嵌入式系統,是以應用為中心,以計算機技術為基礎,軟體硬體可裁剪,適用於對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。 以應用為中心,說明嵌入式系統是有明確實際用途的。
以計算機技術為基礎,說明它其實就是一種特殊的計算機。軟硬體可裁剪,說明它有很強的靈活性和可定製能力。
嵌入式系統的核心,就是嵌入式處理器。嵌入式處理器一般分為以下幾種典型類型: 嵌入式微控制器MCU(Micro Control Unit) MCU內部集成ROM/RAM、匯流排邏輯、定時/計數器、看門狗、I/O、串口、A/D、D/A、FLASH等。典型代表是8051、8096、C8051F等。
嵌入式DSP處理器(Digital Signal Processor) DSP處理器專門用於信號處理,在系統結構和指令演算法進行了特殊設計。在數字濾波、FFT、頻譜分析中廣泛應用。
典型代表是TI(德州儀器)公司的TMS320C2000/C5000系列。 嵌入式微處理器MPU(Micro Processor Unit) MPU由通用處理器演變而來,具有較高的性能,擁有豐富的外圍部件介面。典型代表是AM186/88、386EX、SC-400、PowerPC、MIPS、ARM系列等。
此外,還有嵌入式片上系統SoC(System on Chip)和可編程片上系統SoPC(System on a Programmable Chip)。 我們的單片機,就屬於上述的第一種——MCU(嵌入式微控制器)。
單片機,又稱為單片微控制器,英文叫Single-Chip Microcomputer。它其實就是一種集成電路晶元,是通過超大規模集成電路技術,將CPU、RAM、ROM、輸入輸出和中斷系統、定時器/計數器等功能,塞進一塊矽片上,變成一個超小型的計算機。
單片機技術從上世紀70年代末誕生,早期的時候是4位,後來發展為8位,16位,32位。它真正崛起,是在8位時代。
8位單片機功能很強,被廣泛應用於工業控制、儀器儀表、家電汽車等領域。我們在研究單片機的時候,經常會聽到兩個詞——51單片機、STM32。我來介紹一下它們究竟是什麼。
51單片機,其實就是一系列單片機的統稱。該系列單片機,兼容Intel8031指令系統。它們的始祖,是Intel(英特爾)的8004單片機。
STM32,是意法半導體公司推出的基於ARM Cortex-M內核的通用型單片機。STM32的硬體配置可以滿足大部分的物聯網開發需求,開發工具和相關的文檔資料齊全,已經成為目前單片機學習的首選對象。
❼ ucos移植到51單片機
第一,移植UCOS必須要了解編譯器,我們一般使用的51編譯器都是KEIL。值得一提的是KEIL對可重入函數的處理。由於51單片機的堆棧指針是8位的,所以硬體堆棧只能設置在內部RAM的DATA區和IDATA區(DATA、IDATA、PDATA、XDATA、CODE這些概念相關資料很多,我不想在此處滋述),所以51的堆棧是很緊張的。於是,KEIL將函數內的動態變數和函數傳遞的參數(當然有一部分參數是用寄存器直接傳送的),放在分配的固定數據段中,函數執行時在固定的數據段中去取得相關的數據,而不是像傳統的CPU都用堆棧來處理,這就導致了函數不可重入,因為當一個函數沒執行完成時再次執行會把數據段里的內容覆蓋掉。為了使函數可重入KEIL引入了模擬堆棧的概念(重入函數需在函數定義後面加上reentrant關鍵字),用模擬堆棧來傳遞參數及分配動態變數,就好像傳統堆棧的入棧、出棧操作一般,如此函數第二次進入執行時,就不會覆蓋掉上一次的變數和參數
❽ 用ucos有什麼好處嗎
多任務,相當你同時在用多幾個單片機,可以用任務分解去寫代碼,更加簡單,更加穩定。
調試也容易。