一種嵌入式實時系統arm平臺網絡化方法
【技術領域】
[0001]本發明涉及嵌入式實時領域,具體地說是一種基于ADEOS (Adaptive DomainEnvironment for Operating Systems,自適應域操作系統)的RTA1-Linux嵌入式實時系統(在ARM平臺上,通過在I inux系統中嵌入RTAI接口改造完成的系統)ARM平臺網絡化方法。
【背景技術】
[0002]在ARM 平臺上,基于 ADEOS 的 RTA1-Linux 系統(RTAI =RealTime Applicat1nInterface,實時應用程序接口)能夠實現多內核操作系統,充分利用各個內核的優點來執行相應的任務。而當前ADEOS核心對嵌入式ARM平臺不提供網絡連接功能,造成使用ADEOS核心的嵌入式RTA1-Linux實時系統無法通過網絡和外界進行交互,進行信息的共享。目前國內外對嵌入式RTA1-Linux實時系統的ADEOS的研究都在研究多內核調度,實時功能改造,實時性能評測等,尚未有實現網絡功能相關的研究成果對外公布。
[0003]嵌入式RTA1-Linux實時系統的ADEOS核心對網絡的默認處理是:當做非法中斷,當啟用網絡的時候,僅給出響應出錯警告。對ADEOS核心的研究發現,其核心采用的是中斷日志的方法,即當出現設備中斷時,系統并不立即進行處理,而是登記在相應結構當中。當處理時機到來后,再對已登記的中斷進行處理。而對于網絡設備的中斷請求,系統沒有任何有效的響應,即沒有在日志中登記,更沒有相關處理。
【發明內容】
[0004]針對現有技術中存在的上述空白,本發明要解決的技術問題是在ARM平臺上,提供一種能夠實現基于ADEOS的RTA1-Linux實時系統網絡化方法,且穩定性高,通用性強。
[0005]為實現上述目的,本發明的技術方案是:一種RTA1-Linux系統ARM平臺網絡化方法,包括以下步驟:
[0006]初始化:在ADEOS系統及相關設備初始化后,配置網絡中斷環境;
[0007]網絡中斷截取:在出現系統中斷時,判斷中斷類型是否為網絡中斷,如果是網絡中斷,則屏蔽網絡中斷共享的父中斷,記錄在中斷日志中,再響應父中斷;
[0008]網絡中斷處理:在中斷處理前保存網絡設備寄存器的狀態,由ADEOS核心調用在初始化過程中設置的處理函數,對網絡中斷進行處理;
[0009]恢復系統環境到網絡中斷處理前的系統環境。
[0010]所述配置網絡中斷環境包括:向RTA1-Linux系統申請網絡中斷號并對其進行注冊,配置網絡中斷描述符,在網絡中斷描述符表中添加網絡中斷描述。
[0011]所述恢復系統環境到網絡中斷處理前的系統環境,具體為:恢復網絡設備寄存器在中斷處理前的狀態值。
[0012]本發明的優點和有益效果為:
[0013]1.實現基于ADEOS的RTA1-Linux實時系統網絡化。
[0014]2.穩定性高,通用性強。
【附圖說明】
[0015]圖1為本發明方法的ADEOS啟動新增網絡初始化的詳細流程圖;
[0016]圖2為本發明方法網絡功能處理總流程圖;
[0017]圖3為本發明方法系統中斷截取流程圖;
[0018]圖4為本發明方法網絡中斷處理相關流程圖;
[0019]圖5為本發明方系統狀態恢復的流程圖;
[0020]圖6為本發明應用的系統架構圖。
【具體實施方式】
[0021]下面結合附圖及實施例對本發明做進一步的詳細說明。
[0022]本發明針對無法通過簡單網絡設備驅動開發方法實現網絡連接的情況,在核心初始化啟動過程中配置網絡中斷環境,并通過截取系統中斷處理,存入中斷日志,添加網絡中斷處理,恢復系統處理流程等相應步驟完成對網絡連接的實現。
[0023]所述系統初始化過程中配置網絡中斷環境的具體執行步驟如圖1所示,執行步驟如下:
[0024]步驟1.1mach-s3c24xx/irq.c在ADEOS核心啟動配置中,加入對網絡處理的初始化請求,申請網絡處理需要的中斷號;
[0025]步驟1.2配置網絡中斷描述符,使用ADEOS標準的結構構造新的網絡中斷描述符;
[0026]步驟1.3.lkernel/irq.c對ADEOS默認初始中斷處理函數中加入網絡功能的處理,對步驟1.1中申請的中斷號進行注冊,并關聯處理函數;
[0027]步驟1.3.2將步驟1.2中構建的網絡中斷描述符加入ADEOS核心的中斷描述符表中。
[0028]步驟1.4回到系統原始啟動操作流程,結束新增的流程。
[0029]本發明方法的核心的處理流程如圖2所示。具體分為截取系統中斷、網絡中斷處理、恢復系統運行環境。當中斷發生時,對中斷類型進行判斷,如果是與網絡相關的中斷,則跳轉對重新設計的網絡中斷處理。在系統中斷日志登記網絡中斷,ADEOS核心調用在系統啟動過程中設置的處理函數,對網絡中斷進行處理。在中斷處理結束之后,處理模塊對檢查中斷日志,清理網絡中斷日志記錄,清空網絡設備的寄存器,重設網絡中斷信息保存的結構,并對截取系統中斷模塊中的修改恢復。
[0030]在啟用網絡設備之后,當系統進行網絡連接時,相應的應用程序會請求網絡服務,因而產生網絡中斷。在ADEOS提供的嵌入式平臺補丁當中,沒有支持網絡中斷,所以默認的處理就是當做非法操作,提示錯誤中斷。要實現網絡連接功能,必須對ADEOS的處理流程進行設計,在其中拓展對網絡的支持,同時要求拓展不影響系統原有功能。本發明根據上述詳細的分析,利用ADEOS核心中預留的開發接口,設計一個可以實現網絡連接的方法。其具體處理步驟分析如下:
[0031]所述截取系統中斷處理是指當中斷發生時,對中斷類型進行判斷,如果是與網絡相關的中斷,則跳轉對新增的網絡中斷處理,其具體步驟如圖3所示:
[0032]步驟3.lkernel/chip.c,當中斷發生時,對中斷號進行判斷,如果是與網絡相關的父中斷,進行步驟3.3 ;否則進行步驟3.2 ;
[0033]步驟3.2轉到ADEOS核心對于中斷的默認處理流程,結束操作;
[0034]步驟3.3轉到網絡父中斷處理前期準備模塊;
[0035]步驟3.4對中斷進行暫時屏蔽,由于ADEOS核心采用的是中斷日志的機制,為避免中斷丟失,當出現一次中斷,必須暫時屏蔽中斷;
[0036]步驟3.5響應中斷,但不作具體中斷處理,只是登記對中斷日志中,保證系統既能再次收到中斷,又能記錄當前中斷,為下一部分中斷處理做好準備。
[0037]所述網絡中斷處理是指對當系統中斷日志登記網絡中斷時,ADEOS核心調用在系統啟動過程中設置的處理函數,對網絡中斷進行處理。其具體執行步驟如圖4所示:
[0038]步驟4.1系統掃描中斷日志,當處理網絡中斷,轉到啟動過程中設置的處理模塊;
[0039]步驟4.2根據與網絡相關的父中斷相關信息,判斷是否是真正的網絡中斷,如果是,則進行步驟4.3,否則進行步驟4.2 ;
[0040]步驟4.2不做任何處理,這是非預期的系統中斷,因而不作任何處理,結束操作;
[0041]步驟4.3調用網絡設備的驅動程序進行網絡功能處理;
[0042]步驟4.4響應網絡設備中斷請求;
[0043]本次處理結束。
[0044]具體數據流動參見圖6。
[0045]所述系統恢復是指當中斷日志當中出現與相關的中斷記錄時,在網絡處理中斷處理結束時,將截取中斷模塊中對流程修改恢復。恢復的具體執行步驟如圖5所示:
[0046]步驟5.1恢復中斷設備相關的寄存器,保證此次中斷處理對設備不產生任何影響,保證可以繼續正常完成處理功能。
[0047]步驟5.2清理與網絡中斷相關的結構,特別注意一定要清楚中斷日志,否則系統將重復處理一次中斷請求,出現異常錯誤。
[0048]步驟5.3將屏蔽的中斷打開,以便接受新的中斷;
[0049]步驟5.4結束操作,跳轉到系統正常處理流程。
[0050]為了測試本發明的實際運行效果及性能,在嵌入式開發板上應用本發明并實際進行網絡連接測試。系統運行穩定,網絡延遲控制在ms級,網絡連接持續平穩,不影響系統其它功能,實時觀測未存在抖動,無連接斷開的情況。
[0051]本發明的測試環境:天嵌TQ2440嵌入式開發板;系統硬件平臺為CPU三星S3C2440, 400MHz、RAM-64M、FLASH-256M ;操作系統為 linux-2.6.20,ADEOS 補丁版本為adeos-1pipe-2.6.20-arm-l.7-03.patch, RTA1-3.8 ;執行結果測試方式:啟用網絡設備,觀察網絡連接情況,對網絡的丟包率,網絡延遲時間實時打印觀測。
【主權項】
1.一種RTA1-Linux系統ARM平臺網絡化方法,其特征在于,包括以下步驟: 初始化:在ADEOS系統及相關設備初始化后,配直網絡中斷環境; 網絡中斷截取:在出現系統中斷時,判斷中斷類型是否為網絡中斷,如果是網絡中斷,則屏蔽網絡中斷共享的父中斷,記錄在中斷日志中,再響應父中斷; 網絡中斷處理:在中斷處理前保存網絡設備寄存器的狀態,由ADEOS核心調用在初始化過程中設置的處理函數,對網絡中斷進行處理; 恢復系統環境到網絡中斷處理前的系統環境。
2.根據權利要求1所述的一種RTA1-Linux系統ARM平臺網絡化方法,其特征在于,所述配置網絡中斷環境包括:向RTA1-Linux系統申請網絡中斷號并對其進行注冊,配置網絡中斷描述符,在網絡中斷描述符表中添加網絡中斷描述。
3.根據權利要求1所述的一種RTA1-Linux系統ARM平臺網絡化方法,其特征在于,所述恢復系統環境到網絡中斷處理前的系統環境,具體為:恢復網絡設備寄存器在中斷處理前的狀態值。
【專利摘要】本發明涉及嵌入式實時系統領域,具體地說是在ARM平臺上,一種基于ADEOS微內核的RTAI-Linux實時系統實現網絡功能的方法。本發明基于ARM平臺,在Linux系統中植入ADEOS核心,嵌入RTAI接口,構建一個嵌入式RTAI-Linux實時系統,進而對該實時系統進行改造實現網絡功能。本發明解決無法實現網絡處理功能的缺陷,為系統提供網絡連接功能。同時也為可為在該系統上實現其他拓展功能提供原型,具有通用性強,穩定性好的優點。
【IPC分類】G06F9-455
【公開號】CN104636175
【申請號】CN201310548605
【發明人】于東, 盧林, 胡毅, 韓旭
【申請人】沈陽高精數控技術有限公司
【公開日】2015年5月20日
【申請日】2013年11月6日