ucos iii学习笔记——为什么选择ucos iii
首先我們得先討論前后臺系統(tǒng)和RTOS(Real Time OS)的區(qū)別。前后臺系統(tǒng),也即是我們所說的裸機(jī)程序,它的結(jié)構(gòu)通常包括一個死循環(huán)和若干個中斷服務(wù)程序,直接上圖,我們有一個直觀認(rèn)識:
假如Task2是一個延時任務(wù),當(dāng)程序執(zhí)行到Task2時,CPU只能干等,這樣就浪費(fèi)了CPU資源。進(jìn)一步說,當(dāng)在延時階段,某種特發(fā)情況需要Task4響應(yīng),此時系統(tǒng)無法得到實(shí)時響應(yīng),只能一直按順序執(zhí)行下去,直到運(yùn)行到Task4才能得到響應(yīng),可見前后臺系統(tǒng)的實(shí)時響應(yīng)性較差。
那么RTOS呢?我們先看圖,了解它的運(yùn)行機(jī)制
在實(shí)時操作系統(tǒng)中,我們可以把要實(shí)現(xiàn)的功能劃分為多個任務(wù),每個任務(wù)負(fù)責(zé)實(shí)現(xiàn)其中的一部分,每個任務(wù)都是一個很簡單的程序,通常是一個死循環(huán)。
RTOS的內(nèi)核負(fù)責(zé)管理所有的任務(wù),內(nèi)核決定了運(yùn)行哪個任務(wù),何時停止當(dāng)前任務(wù)切換到其他任務(wù),這個是內(nèi)核的多任務(wù)管理能力。這就意味著,假設(shè)運(yùn)行某任務(wù)里面的延時語句時,該任務(wù)就會被掛起,CPU根據(jù)內(nèi)核機(jī)制運(yùn)行另一個任務(wù),這就充分利用了CPU資源。多任務(wù)管理給人的感覺就好像芯片有多個CPU,多任務(wù)管理實(shí)現(xiàn)了CPU資源的最大化利用,多任務(wù)管理有助于實(shí)現(xiàn)程序的模塊化開發(fā),能夠?qū)崿F(xiàn)復(fù)雜的實(shí)時應(yīng)用。
說了這么多,那我們?yōu)楹芜x擇使用ucos iii這個實(shí)時操作系統(tǒng)呢?因?yàn)閡cos iii是一個開源、可裁剪、絕大部分由C語言編寫、可讀性強(qiáng)!更重要的一點(diǎn)是網(wǎng)上有很多關(guān)于ucos iii/ucos ii的資源,不像其他操作系統(tǒng)相對較少的學(xué)習(xí)資源。作為嵌入式初學(xué)者,ucos iii是一個很好的入門學(xué)習(xí)對象!
總結(jié)
以上是生活随笔為你收集整理的ucos iii学习笔记——为什么选择ucos iii的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脚手架 - props
- 下一篇: openocd目录_OpenOCD的调试