SPARC結構與實時內核的移植
4.系統中斷
時鐘節拍
對于一個多任務系統,時鐘節拍是必不可少的。ERC32CPU提供2個定時器,根據系統硬件采用的晶振源頻率,可通過設置對應定時器控制寄存器的計數值,通過產生一定周期的系統中斷來實現時鐘節拍。對于時鐘節拍的處理子程序,所選內核不同,其自帶子程序也不同。在定時中斷到來,只需將子程序入口地址添加到中斷服務子程序中即可。
中斷嵌套
當在系統開發中需要不同優先級中斷,并可能發生中斷嵌套的情況時,需要在進入中斷服務子程序之前設置中斷優先級,然后打開Trap,以允許在較長的中斷服務子程序中響應更高優先級的中斷。在退出中斷服務子程序后,關閉Trap,將該中斷優先級屏蔽掉,然后退出中斷。
堆棧段
在堆棧的管理上存在堆棧幀的概念,并且每個幀的分配與產生都對應一個新的窗口和一個新的線程或者中斷。根據中斷的棧結構和線程棧結構的不同,可在程序初始化部分分配兩個堆棧段。一個堆棧段對應普通線程的堆棧分配和管理,一個對應中斷棧的分配和管理。這樣在每個段中各幀的大小一致,不會在 Overflow Trap和Underflow Trap時讀寫內存出錯。可以通過增加兩個變量LEVEL,SKP來協調兩個堆棧段的使用。使用兩個堆棧的中斷嵌套服務子程序流程圖如圖4。
5.總結
SPARC結構中比較復雜的部分就是寄存器窗口的概念,但在使用中,效率也高很多。如果能了解寄存器窗口的工作原理,并能正確使用Window flush操作,在軟件設計上將會得到高的可靠性。
本文作者的創新點為,將能實現自動控制需求的小型uC/OS內核移植到具有高可靠性SPARC結構的ERC32 CPU。ERC32 CPU是專門針對航天應用而設計的CPU,采用SPARC V7指令集。航天工程的控制不像消費電子的控制那么復雜,但在可靠性和實時性方面要求比較苛刻,能夠移植滿足需求的小型內核,如uC/OS到ERC32,在工程上有很大的應用價值。
參考文獻:
1.The SPARC Architecture Manual Version 8,SPARC International,Inc.1998.
2.Jean J.Labrosse,邵貝貝,嵌入式實時操作系統uC/OS-II(第二版),北京航空航天大學出版社
3.Rad.Hard 32-bit SPARC Embedded Processor User Guide, Atmel Inc.2004
4.陳繼榮,Linux操作系統實時性分析及改進策略,微計算機信息,2005,11期,67頁
評論