|
在嵌入式開(kāi)發(fā)這條不歸路上漸行漸遠(yuǎn),從最初的51單片機(jī)裸板開(kāi)始,直到現(xiàn)在開(kāi)始使用ARM-Cortex系列的單片機(jī),隨著使用的單片機(jī)的處理能力的提升,發(fā)現(xiàn)自己縮寫(xiě)的那些代碼根本就占用不了處理器的多少處理能力,而且由于只能是單純的循環(huán)加中斷,想要實(shí)現(xiàn)一個(gè) 稍微復(fù)雜點(diǎn)的功能都是相當(dāng)?shù)聂[心。必須要設(shè)計(jì)好半天,有時(shí)候還要自己寫(xiě)各種調(diào)度的算法,心好累。到這里發(fā)現(xiàn)合理的使用嵌入式操作系統(tǒng)應(yīng)該是開(kāi)發(fā)一些稍微大型的應(yīng)用的一個(gè)必然的選擇,否則光那些各種調(diào)度功能就能讓人崩潰掉。
在當(dāng)初玩51單片機(jī)的時(shí)候就發(fā)現(xiàn)在Keil中有一個(gè)可以選擇使用操作系統(tǒng)的選項(xiàng),但是當(dāng)年能力很弱,雖然知道有這么個(gè)東西,但是從來(lái)都沒(méi)有用過(guò)。

圖為在MDK中選擇操作系統(tǒng)的地方。
既然使用這些嵌入式的操作系統(tǒng)是以后必然要用的東西的話,與其逃避,倒不如痛快的面對(duì)吧。在分析了眾多的嵌入式操作系統(tǒng)之后,我選擇了一個(gè)最簡(jiǎn)單,但是使用起來(lái)相當(dāng)方便,功能也是絲毫不弱的操作系統(tǒng),就是由MDK中自帶的那個(gè)RTOS。
在MDK中使用RTOS是一件相當(dāng)?shù)挠淇觳⑶液?jiǎn)單的過(guò)程。尤其是在MDK5中,在這里所有的操作都可以有圖形化的操作。而操作上也是非常的方便的,只要像往常新建一個(gè)工程那樣,只不過(guò)在選擇外設(shè)之類的東西的時(shí)候要記得把RTx點(diǎn)選了就OK了。

圖中紅色的部分是需要點(diǎn)選的。
如此這樣,就相當(dāng)于告訴了MDK你要在這個(gè)工程中使用RTOS了。
工程新建完畢了,那么就是對(duì)RTOS的使用了,既然使用了RTOS那么比如線程啦之類的概念也就出現(xiàn)了。之所以使用操作系統(tǒng),就是因?yàn)槭褂昧瞬僮飨到y(tǒng)以后,我們可以新建不同的線程,而各個(gè)線程之間可以互不干擾的運(yùn)行,而且線程之間還可以互相協(xié)作,這樣對(duì)于我們尤其是要用來(lái)做一些帶有和用戶交互的功能的時(shí)候就會(huì)方便很多了,比如,我們可以新建3個(gè)線程,其中一個(gè)用來(lái)負(fù)責(zé)對(duì)鍵盤(pán)的掃描,一個(gè)用來(lái)負(fù)責(zé)顯示的輸出,還有一個(gè)用來(lái)處理一些邏輯任務(wù)。我們可以非常的方便的利用線程來(lái)搞定,這些事情,然而如果不使用操作系統(tǒng)的話,則要利用中斷來(lái)實(shí)現(xiàn)鍵盤(pán),利用定時(shí)器來(lái)實(shí)現(xiàn)顯示,主函數(shù)來(lái)實(shí)現(xiàn)邏輯處理,雖然也能實(shí)現(xiàn),但是實(shí)現(xiàn)起來(lái)卻要麻煩很多。
既然,使用操作系統(tǒng)能夠帶給我們這么多的便利,那么下面就來(lái)探究一下,使用了操作系統(tǒng)后代碼該如何來(lái)寫(xiě)。
首先,需要包含 一個(gè) 叫做 的頭文件,基本上所有在RTOS中會(huì)用到的東西,在這個(gè)文件中都可以找到相關(guān)的內(nèi)容。
之后 就可以像往常寫(xiě)代碼那樣開(kāi)始編寫(xiě)了。
同樣是從main函數(shù)開(kāi)始。然后一步一步的往下執(zhí)行。不同的是在使用了操作系統(tǒng)之后,可以新建各種線程,內(nèi)存管理等等。
具體的使用過(guò)程,敬請(qǐng)關(guān)注 相關(guān)的內(nèi)容。
|
|