DIY:給單片機(jī)寫個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核!
為了更明顯地驗(yàn)證這一點(diǎn),你可以在WINDOWS下打開VC6.0或其他的C語(yǔ)言編譯器,寫段代碼如下:
#include
void main(void)
{while(1) ;}
意思是讓CPU不做事情在等待,你猜,這句代碼會(huì)消耗掉多少CPU時(shí)間?
答案會(huì)根據(jù)不同機(jī)型而不同,如果是單核CPU的話,這句話會(huì)消耗掉CPU接近100%的時(shí)間!如果是雙核CPU,則只消耗掉50%左右,因?yàn)檫@段代碼只運(yùn)行在其中一個(gè)核,另外一個(gè)核還可以做別的事情,截圖如下:
然后你可以測(cè)試下面這幾句代碼:
#include
#include
{while(1)
Sleep(100);
}
這段代碼實(shí)際上也是什么都不做,它不斷地調(diào)用Sleep()函數(shù),讓它延時(shí)100毫秒再醒來,然后繼續(xù)睡覺。現(xiàn)在你可以再打開任務(wù)管理器看一下CPU時(shí)間用了多少,答案是基本不用CPU時(shí)間??!
為什么同樣地什么事情都不做,差別咋就這么大呢?這是因?yàn)槭褂昧薙leep()這個(gè)函數(shù)是WINDOWS操作系統(tǒng)為你提供的,調(diào)用Sleep()之后 WINDOWS操作系統(tǒng)自動(dòng)把你這個(gè)程序掛起了(就是暫時(shí)扔到一邊不管),然后讓CPU去執(zhí)行其他程序,等到時(shí)間到了,操作系統(tǒng)再把這段程序恢復(fù)繼續(xù)執(zhí)行,這樣的話CPU就可以得到充分地利用了,也就是說你可以在一塊CPU里面“同時(shí)”執(zhí)行多個(gè)任務(wù)而互不影響?。ㄟ@里所說的“同時(shí)”并不是同時(shí)執(zhí)行,CPU每一時(shí)刻只能做一件事,但如果速度足夠快的話就可以讓人感到它是在同時(shí)執(zhí)行多項(xiàng)任務(wù)了)。是的,操作系統(tǒng)就是為了解決多任務(wù)執(zhí)行而生的。既然操作系統(tǒng)這么神奇,可不可以讓單片機(jī)也來爽一把呢?答案是肯定的。下面就介紹如何給單片機(jī)寫個(gè)操作系統(tǒng)?。?/div>
/************************************************************************************/
工欲善其事,必先利其器,為了寫出操作系統(tǒng),必須得有一定的理論以及技術(shù)基礎(chǔ),
單片機(jī)方面的可以http://www.51hei.com了解到,從下面是所需的材料:
單片機(jī)方面的可以http://www.51hei.com了解到,從下面是所需的材料:
//1 C語(yǔ)言編程基礎(chǔ) :三斤
//2 數(shù)據(jù)結(jié)構(gòu)理論 :一斤八兩
//3 操作系統(tǒng)原理 :兩斤三兩八錢
//4 計(jì)算機(jī)組成原理以及單片機(jī)原理及應(yīng)用 :兩斤半
//5 匯編語(yǔ)言編程基礎(chǔ) :一斤四兩
//6 一份堅(jiān)持的心 :多少斤自己掂量掂量,呵呵
/*************************************************************************************/
這么多怎么學(xué)?去哪學(xué)?下面是我個(gè)人推薦的書單,僅供參考:
1. C語(yǔ)言是必須要會(huì)的,而且要熟練,諸如”預(yù)編譯命令“你必須要懂,模塊化編程必須要熟悉,指針是C語(yǔ)言的一大精髓,在操作系統(tǒng)源碼里面指針是滿天飛的,所以得有足夠的理論基礎(chǔ),推薦國(guó)外的《C Primer Plus》 美國(guó) Stephen Prata著,里面講的內(nèi)容由淺到深,語(yǔ)言引人入勝,大二開始看,現(xiàn)在還時(shí)不時(shí)地要回頭看,確實(shí)是一本不錯(cuò)的好書:
另外,學(xué)會(huì)了C的基本語(yǔ)法之后你還得要會(huì)一點(diǎn)點(diǎn)編程技巧以及編程要注意的問題之類的,推薦有空的話多看看《C專家編程》和《C陷阱與缺陷》,這兩本書是C編程領(lǐng)域里面的經(jīng)典之作,相信看完你的功力會(huì)大有長(zhǎng)進(jìn),但是還是要以經(jīng)常敲代碼為主:
2. 操作系統(tǒng)里面的數(shù)據(jù)組織形式都是以數(shù)據(jù)結(jié)構(gòu)的理論為基礎(chǔ)的,所以你得懂得數(shù)據(jù)結(jié)構(gòu)才能看懂里面的含義,但也不要求把數(shù)據(jù)結(jié)構(gòu)全精通,推薦嚴(yán)蔚敏版本的《數(shù)據(jù)結(jié)構(gòu)》,不過里面的算法都是用偽代碼寫出來的:
3. 有了編程基礎(chǔ)之后你還必須要懂得操作系統(tǒng)的基本原理,比如任務(wù)之間是怎么切換的,內(nèi)存是怎么管理的都得懂,推薦《操作系統(tǒng)-精髓與設(shè)計(jì)原理》
關(guān)鍵詞:
DIY單片機(jī)實(shí)時(shí)操作系統(tǒng)內(nèi)
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論