單片機,特別是8位的單片機,一般很少要用到操作系統(tǒng)。
通常加了個操作系統(tǒng)啥事都沒干資源就沒了一大半,所以在單片機里上操作系統(tǒng)頗有殺雞用牛刀的意味。
不過話又說回來,看你怎么定義操作系統(tǒng)了。
你可以說:
while(1) ?{
}
就是一個操作系統(tǒng)。
入門教程一般提到的流水燈,就是放在這個循環(huán)里面跑啊跑。
你可以加點花樣,比如流水燈跑完一個流程后蜂鳴器響一下,于是就把蜂鳴器的代碼寫在流水燈后面。
到后來,你學(xué)了按鈕,又把按鈕的代碼往后面加。
所有任務(wù)都放在里面,但每次只能做一件事情。
假如又要處理UART,又要處理SPI,循環(huán)本身還有幾個邏輯運算呢?還好芯片本身還有中斷處理函數(shù)。
平時在主函數(shù)里面跑著,當(dāng)遇到外部請求的時候處理中斷函數(shù),然后再回到主函數(shù)。
但假如主函數(shù)里的任務(wù)A跟任務(wù)B之間是相互獨立并且要同時運行呢?
可以通過定時器中斷為每個任務(wù)分配時間片,這就有了分時操作系統(tǒng)的雛形。
于是,單片機要不要上操作系統(tǒng)就可以簡單的歸結(jié)為:你的程序有沒有復(fù)雜到多個任務(wù)并行。