[發明專利]支持eCos系統的中斷棧處理方法、打印方法及接收機在審
| 申請號: | 202110205763.X | 申請日: | 2021-02-24 |
| 公開(公告)號: | CN112988349A | 公開(公告)日: | 2021-06-18 |
| 發明(設計)人: | 吳振;劉彥;郝志杰;胡月;丁杰;吳金英;劉勇 | 申請(專利權)人: | 長沙海格北斗信息技術有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 長沙永星專利商標事務所(普通合伙) 43001 | 代理人: | 周詠;米中業 |
| 地址: | 410000 湖南省長*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 支持 ecos 系統 中斷 處理 方法 打印 接收機 | ||
本發明公開了一種支持eCos系統的中斷棧處理方法,包括發生中斷時進入中斷處理過程;獲取中斷棧地址并檢查中斷棧地址;根據檢查結果對齊中斷棧;中斷處理完成后恢復中斷棧,完成中斷棧處理。本發明還公開了包括所述支持eCos系統的中斷棧處理方法的打印方法。本發明還公開了包括所述支持eCos系統的中斷棧處理方法和打印方法的接收機。本發明采用創新性算法進行中斷棧的處理,是一種通用的用于eCos系統的軟件解決方案,與硬件平臺無關,并且與硬件支持不沖突,同時并未增加多余的工作量,而且浮點格式化與線程情況下使用相同處理,確保了同一系統下雙精度浮點的格式化標準相同;本發明同時還具有通用性好和簡單可靠的優點。
技術領域
本發明具體涉及一種支持eCos系統的中斷棧處理方法、打印方法及接收機。
背景技術
在普通的線程中(非中斷情形),eCos可正常支持雙精度浮點打印,通過其自帶的C庫函數和數學庫函數實現。但是,在eCos原生系統中,并不支持在中斷中直接打印或者格式化雙精度浮點數據。在使用的過程中,直接使用打印函數進行輸出時,有概率會出現數據打印錯誤的情況,導致無法正確跟蹤某些狀態,給跟蹤調試帶來不便。尤其對于某些時效性強的數據,如果無法第一時間打印出來,則需要使用較大的memory進行數據保存,這使得調試過程極為麻煩。
現有技術中,在cortexM3系列芯片中,可通過控制硬件NVICCCR的配置來支持該功能,但是該功能通過硬件實現,不具備通用性,而且會占用硬件資源。
發明內容
本發明的目的之一在于提供一種通過軟件算法實現的、支持eCos系統且通用性好,簡單可靠的支持eCos系統的中斷棧處理方法。
本發明的目的之二在于提供一種包括了所述支持eCos系統的中斷棧處理方法的打印方法。
本發明的目的之三在于提供一種包括了所述支持eCos系統的中斷棧處理方法和打印方法的接收機。
本發明提供的這種支持eCos系統的中斷棧處理方法,包括如下步驟:
S1.當發生中斷時,進入中斷處理過程;
S2.獲取中斷棧地址,并進行中斷棧地址檢查;
S3.根據步驟S2的中斷棧地址檢查結果,進行中斷棧對齊;
S4.中斷處理完成后,對中斷棧進行恢復,從而完成中斷棧處理。
步驟S2所述的進行中斷棧地址檢查,具體為在進入eCos中斷時,使用golden棧保存完當前數據后,進行棧切換:首先檢查進入中斷時的棧是否為8字節對齊;檢查過程為:對當前SP進行檢查:若當前SP的最低3bit全部為0,則說明至少8字節已經對齊,否則為未對齊。
步驟S3所述的進行中斷棧對齊,具體為若步驟S2檢查的結果為中斷棧未對齊,則向棧中多push一個數據,使得當前棧減4,使當前棧從4字節對齊變成至少8字節對齊,同時對上述的中斷棧對齊操作進行記錄。
步驟S4所述的對中斷棧進行恢復,具體為在中斷處理完成后,在進入interrupt_end之前,根據步驟S3中已記錄的中斷棧對齊操作,對中斷棧進行恢復:若未進行中斷棧對齊操作,則直接恢復中斷棧;若進行了中斷棧對齊操作,則從當前棧中pop一個數據,使得當前棧加4,同時恢復中斷棧對齊操作為原始值。
本發明還公開了一種包括了上述支持eCos系統的中斷棧處理方法的打印方法,包括如下步驟:
A.在eCos系統中,進行浮點格式化數據支持;
B.當需要進行雙精度浮點打印時,進入中斷;
C.采用上述的支持eCos系統的中斷棧處理方法進行中斷棧處理,完成雙精度浮點打印并出中斷,從而完成最終的打印。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于長沙海格北斗信息技術有限公司,未經長沙海格北斗信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110205763.X/2.html,轉載請聲明來源鉆瓜專利網。





