操作系統(tǒng)與裸機(jī)的區(qū)別,stm32能運(yùn)行什么操作系統(tǒng)?
我們?cè)趯W(xué)習(xí)STM32到一定階段可能會(huì)了解操作系統(tǒng),然后便有這種問(wèn)題產(chǎn)生,下面我就來(lái)粗略說(shuō)說(shuō)“操作系統(tǒng)與裸機(jī)的區(qū)別,以及STM32能運(yùn)行什么操作系統(tǒng),能運(yùn)行l(wèi)inux系統(tǒng)嗎”等問(wèn)題。
操作系統(tǒng)與裸機(jī)的區(qū)別
裸機(jī)運(yùn)行的程序代碼,一般由一個(gè)main函數(shù)中的while死循環(huán)和各種中斷服務(wù)程序組成,平時(shí)CPU執(zhí)行while循環(huán)中的代碼,出現(xiàn)其他事件時(shí),跳轉(zhuǎn)到中斷服務(wù)程序進(jìn)行處理,沒(méi)有多任務(wù)、線程的概念。
而引入操作系統(tǒng)后,程序執(zhí)行時(shí)可以把一個(gè)應(yīng)用程序分割為多個(gè)任務(wù),每個(gè)任務(wù)完成一部分工作,并且每個(gè)任務(wù)都可以寫成死循環(huán)。操作系統(tǒng)根據(jù)任務(wù)的優(yōu)先級(jí),通過(guò)調(diào)度器是CPU分時(shí)執(zhí)行各個(gè)任務(wù),保證每個(gè)任務(wù)都能夠得到運(yùn)行。若調(diào)度方法優(yōu)良,則可使個(gè)任務(wù)看起來(lái)是并行執(zhí)行的,減少了CPU的空閑時(shí)間,提高了CPU的利用率。由操作系統(tǒng)的任務(wù)管理衍生出相應(yīng)的CPU管理、內(nèi)存管理,它們分別負(fù)責(zé)分配任務(wù)對(duì)CPU的占有權(quán)和管理任務(wù)所占有的內(nèi)存空間。在linux操作系統(tǒng)中,還具有文件管理、I/O設(shè)備管理的功能。
STM32能運(yùn)行什么操作系統(tǒng),能運(yùn)行l(wèi)inux系統(tǒng)嗎?
首先操作系統(tǒng)有兩種:一種是用MMU(Memory
Managenent Unit ,即存儲(chǔ)管理單元)的,另一種是不用MMU的。
用MMU的是Windows、 MacOS、 Linux 、Android;
不用MMU的是FreeRTOS 、VxWorks 、 ucLinux、uc/OS.
其次CPU也有有兩種 :帶MMU的和不帶MMU的。
帶MMU的有 Cortex-A、ARM9 、ARM11系列。不帶MMU的有 Cortex-M系列
而我們知道STM32是 Cortex-M3系列的…所以目前還不可能運(yùn)行Linux操作系統(tǒng),但是STM32可以運(yùn)行uc/OS、ucLinux、FreeRTOS 、VxWorks等操作系統(tǒng)。其中uc/OS操作系統(tǒng)是開源代碼,且小巧而嚴(yán)謹(jǐn),具有很高的實(shí)時(shí)性,可以作為學(xué)習(xí)linux等高級(jí)操作系統(tǒng)的基礎(chǔ),實(shí)際項(xiàng)目中也經(jīng)常使用uc/OS開發(fā)。
編輯:admin 最后修改時(shí)間:2018-05-22