System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于嵌入式操作系統,具體涉及一種嵌入式實時操作系統移植到csky架構的方法及裝置。
技術介紹
1、目前,密碼專用芯片上的開發模式為裸機開發模式,通常把程序分成兩部分,即前臺程序和后臺程序。后臺程序是一個無限的循環,循環中調用相應的函數完成相應的操作,這部分可以看成后臺行為;前臺程序通過中斷來處理事件,也就是我們常見的中斷。在程序運行時,后臺程序檢查每個任務是否具備運行條件,對于實時性要求特別嚴格的操作通常由中斷來完成,僅在中斷服務程序中標記事件的發生,不再做任何工作就退出中斷。
2、實際上,前后臺系統的實時性比預計的要差,這是因為前后臺系統認為所有的任務具有相同的優先級,因而對那些實時性要求高的任務不可能立刻得到處理。這種開發模式的軟件由于存在大量標志位,如果軟件規模較大導致軟件架構上很難做到低耦合,為軟件的維護和移植提出了更高的挑戰。另外,當前的嵌入式操作系統種類繁多,但是這些操作系統只支持主流的cpu核,例如arm、mips等,對于國產的csky架構的cpu沒有操作系統支持。
技術實現思路
1、為此,本專利技術提供一種嵌入式實時操作系統移植到csky架構的方法及裝置,通過csky架構的cpu可以運行嵌入式實時操作系統;解決csky硬件架構的系統下,密碼管理軟件的實時性和可移植性差的問題。
2、為了實現上述目的,本專利技術提供如下技術方案:一種嵌入式實時操作系統移植到csky架構的方法,包括:
3、獲取任務對象的棧指針,按照從高地址到
4、當操作系統啟動時,進行操作系統的初始化,系統初始化時創建一個優先級最低的任務,然后創建用戶任務,調用os_schednew函數選擇高優先級的用戶任務準備切換,調用osstarthighrdy函數調度用戶任務,跳轉到用戶任務入口進行執行;
5、當用戶任務放棄cpu時,調用osctxsw函數進行任務切換,osctxsw函數觸發陷阱異常,進入陷阱異常后進行任務調度;
6、當定時器中斷觸發時,cpu進入中斷上下文中,cpu在中斷中更新操作系統節拍,并進行任務調用的裁決,最后跳轉到被調度的任務。
7、作為嵌入式實時操作系統移植到csky架構的方法優選方案,還包括:
8、調用ostaskstkinit函數對所有任務棧進行初始化;
9、ostaskstkinit函數的接口由ucosii定義,ostaskstkinit函數中包括task參數、p_arg參數、ptos參數和opt參數;task參數為任務的入口地址,p_arg參數為傳入任務的參數,ptos參數為是任務棧頂地址,opt參數為任務屬性值。
10、作為嵌入式實時操作系統移植到csky架構的方法優選方案,調用osstarthighrdy函數調度用戶任務,跳轉到用戶任務入口進行執行過程中:
11、將變量osrunning的值設置為1,從ostcbhighrdy函數變量中獲取任務的棧頂地址,將ostcbhighrdy變量作為二級指針進行解析后得到棧頂地址,依次從棧中恢復epc、epsr、r15-r31和r0-r13寄存器的內容,最后跳轉到被調度的任務入口地址繼續執行。
12、作為嵌入式實時操作系統移植到csky架構的方法優選方案,當cpu進入中斷上下文中,調用osintctxsw函數在中斷上下文中進行任務切換;
13、通過osintctxsw函數獲取最高優先級任務的tcb,接著通過tcb獲取最高優先級任務的棧指針,通過棧指針恢復任務上下文,跳轉到最高優先級任務的被中斷地址繼續運行。
14、作為嵌入式實時操作系統移植到csky架構的方法優選方案,當用戶任務放棄cpu時,通過osctxsw函數使用trap指令觸發陷阱異常。
15、作為嵌入式實時操作系統移植到csky架構的方法優選方案,當osctxsw函數觸發陷阱異常后:
16、調用hw_vsr_trap0函數進行入棧操作,在棧中分配空間將cpu寄存器入棧后,將棧指針保存在當前任務tcb中;獲取最高優先級任務的tcb,接著通過tcb獲取最高優先級任務的棧指針,通過棧指針恢復任務上下文,最后跳轉到最高優先級任務的被中斷地址繼續運行。
17、作為嵌入式實時操作系統移植到csky架構的方法優選方案,當定時器中斷觸發時:
18、調用os_cpu_savesr函數獲取cpu狀態寄存器的值,然后將cpu的中斷關閉,最后返回cpu狀態寄存器的值;
19、調用os_cpu_restoresr函數恢復cpu狀態寄存器。
20、作為嵌入式實時操作系統移植到csky架構的方法優選方案,當定時器中斷觸發時:
21、調用os_tick_handler函數為操作系統提供時鐘節拍功能,通過os_tick_handler函數將定時器中斷標志位清除,然后將中斷嵌套層數計數更新,接著調用ostimetick函數更新系統節拍,最后調用osintexit函數進行任務調度。
22、作為嵌入式實時操作系統移植到csky架構的方法優選方案,當定時器中斷觸發時:
23、調用hw_vsr_autovec函數進行入棧操作,在棧中分配空間將cpu寄存器入棧后,將棧指針保存在當前任務tcb中,然后執行中斷處理函數,最后從棧中恢復現場,跳轉回被中斷的地址繼續執行。
24、本專利技術還提供一種嵌入式實時操作系統移植到csky架構的系統,采用上述的嵌入式實時操作系統移植到csky架構的方法,包括:
25、任務棧處理模塊,用于獲取任務對象的棧指針,按照從高地址到低地址的入棧順序將所述任務對象保存到任務棧中;
26、系統啟動任務切換模塊,用于當操作系統啟動時,進行操作系統的初始化,系統初始化時創建一個優先級最低的任務,然后創建用戶任務,調用os_schednew函數選擇高優先級的用戶任務準備切換,調用osstarthighrdy函數調度用戶任務,跳轉到用戶任務入口進行執行;
27、陷阱異常任務切換模塊,用于當用戶任務放棄cpu時,調用osctxsw函數進行任務切換,osctxsw函數觸發陷阱異常,進入陷阱異常后進行任務調度;
28、定時器中斷任務切換模塊,用于當定時器中斷觸發時,cpu進入中斷上下文中,cpu在中斷中更新操作系統節拍,并進行任務調用的裁決,最后跳轉到被調度的任務。
29、本專利技術的有益效果如下,獲取任務對象的棧指針,按照從高地址到低地址的入棧順序將所述任務對象保存到任務棧中;當操作系統啟動時,進行操作系統的初始化,系統初始化時創建一個優先級最低的任務,然后創建用戶任務,調用os_schednew函數選擇高優先級的用戶任務準備切換,調用osstarthighrdy函數調度用戶任務,跳轉到用戶任務入口進行執行;當用戶任務放棄cpu時,調用osctxsw函數進行任務切本文檔來自技高網...
【技術保護點】
1.嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,包括:
2.根據權利要求1所述的嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,還包括:
3.根據權利要求1所述的嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,調用OSStartHighRdy函數調度用戶任務,跳轉到用戶任務入口進行執行過程中:
4.根據權利要求1所述的嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,當CPU進入中斷上下文中,調用OSIntCtxSw函數在中斷上下文中進行任務切換;
5.根據權利要求1所述的嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,當用戶任務放棄CPU時,通過OSCtxSw函數使用trap指令觸發陷阱異常。
6.根據權利要求1所述的嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,當OSCtxSw函數觸發陷阱異常后:
7.根據權利要求1所述的嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,當定時器中斷觸發時:
8.根據權利要求1所述的嵌入式實時操作系統移
9.根據權利要求1所述的嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,當定時器中斷觸發時:
10.嵌入式實時操作系統移植到CSKY架構的系統,采用權利要求1至9任一項所述的嵌入式實時操作系統移植到CSKY架構的方法,其特征在于,包括:
...【技術特征摘要】
1.嵌入式實時操作系統移植到csky架構的方法,其特征在于,包括:
2.根據權利要求1所述的嵌入式實時操作系統移植到csky架構的方法,其特征在于,還包括:
3.根據權利要求1所述的嵌入式實時操作系統移植到csky架構的方法,其特征在于,調用osstarthighrdy函數調度用戶任務,跳轉到用戶任務入口進行執行過程中:
4.根據權利要求1所述的嵌入式實時操作系統移植到csky架構的方法,其特征在于,當cpu進入中斷上下文中,調用osintctxsw函數在中斷上下文中進行任務切換;
5.根據權利要求1所述的嵌入式實時操作系統移植到csky架構的方法,其特征在于,當用戶任務放棄cpu時,通過osctxsw函...
【專利技術屬性】
技術研發人員:呂靖邦,王瀟,汪海洋,郟暉,
申請(專利權)人:江蘇新質信息科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。