為FPGA軟處理器選擇操作系統(08-100)
引言
本文引用地址:http://www.104case.com/article/91693.htm操作系統能夠提高可移植性,并提供多種經過測試的抽象層,服務層和應用模塊層以供選擇,從而加快產品上市時間并減少應用程序出錯的可能性。然而,選擇一個嵌入式操作系統( OS )從來就不是一個簡單的過程,因為集成嵌入式軟件的方式選擇余地很大,你可以完全都由自己來編寫,或通過商業定制專門實時操作系統,也可以直接購買通用操作系統不作任何修改,現成的通用操作系統。FPGA性能的提高和軟處理器核的出現,直接導致了可編程邏輯SoC解決方案的產生,隨著這一變化,關于選擇標準,設計方案以及折中考慮等傳統經驗也需要與時俱進以適應這些新的開發方式。
在本文中,我們研究了選擇嵌入式操作系統的各種方案,并且針對嵌入式和實時操作系統,討論一些選擇標準,并強調由可編程邏輯解決方案引入的設計折衷。闡述了一個典型實例,這里我們以在萊迪思半導體公司的FPGA 上運行的LatticeMico32軟處理器設計為例提供一個典型方案的討論。
傳統經驗
根據傳統經驗,一個操作系統的選擇有四個主要方式。
無操作系統
許多簡單的嵌入式系統不需要操作系統。該代碼通常始于設立堆棧指針和初始化幾個時鐘和外設寄存器。然后,該代碼進入主循環(也稱為超級循環) ,以執行產品的功能。編寫中斷服務程序( ISR)用以處理異步事件,以提供一些響應而不是輪詢設備方式來進行服務。 ISR的響應通常是在0到10微秒的范圍。如果 處理器速度 足夠 快,以及超級循環是小而緊湊的,這是一個完全可行的選擇。然而,如果進行更復雜的操作,如執行控制循環,提供圖形顯示服務,使用文件系統或網絡堆棧( TCP / IP協議或其他),超級循環將無法正常工作。如果考慮一個 快速和 功能強大的 處理器, 如開放源 代碼LatticeMico32軟處理器, 應該選擇一個操作系統。
自己編寫操作系統
對于一些特定需求,現有的解決方案無法滿足需要,或者現有的解決方案成本太高,通常就需要考慮自己編寫操作系統。自己編寫RTOS (實時操作系統)通常不是一個好的選擇,因為總是嚴重低估所需付出的努力。一個簡單的“tasker”要寫幾天或幾周,但更艱巨的挑戰是需要對實現魯棒性商業產品的努力。例如,一個商業的RTOS ,如μC/OS-II可能包含超過10000行的代碼,已經在各種各樣的產品中得到了現場驗證,并可能已被認證應用于,如電子和醫療產品等。如果選擇你自己編寫,誰將確保長期維護,并且完成詳細的文檔?
從商業的觀點來看,自己編寫的RTOS不是一個好的選擇。
商業RTOS
實時操作系統是一個管理微控制器,微處理器或DSP時間的軟件。最重要的一個特點是它對實時事件的響應,通常不到25微秒。這種響應通常是確定性,在某些情況下,甚至相當穩定。一個實時操作系統以應用編程接口( API )的形式為應用程序員提供了許多“服務”。當選擇一個實時操作系統時,從技術和業務問題方面考慮會有數十種選擇。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論