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