[發明專利]針對嵌入式軟件架構的軟件棧消耗分析方法及分析裝置在審
| 申請號: | 202110584446.3 | 申請日: | 2021-05-27 |
| 公開(公告)號: | CN113312054A | 公開(公告)日: | 2021-08-27 |
| 發明(設計)人: | 李滿;郝志杰;吳振;胡月;楊兆龍;文義榮;酈清華 | 申請(專利權)人: | 長沙海格北斗信息技術有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 長沙永星專利商標事務所(普通合伙) 43001 | 代理人: | 周詠;米中業 |
| 地址: | 410000 湖南省長*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 針對 嵌入式 軟件 架構 消耗 分析 方法 裝置 | ||
1.一種針對嵌入式軟件架構的軟件棧消耗分析方法,其特征在于包括軟件棧消耗分析過程和數據輸出過程;軟件棧消耗分析過程用于分析系統軟件的函數調用關系結構、分析系統軟件的每個函數的棧消耗量、記錄函數的調用關系和函數對應的棧消耗量,并最終得到分析數據;數據輸出過程用于根據件棧消耗分析過程得到的分析數據進行輸出和分析。
2.根據權利要求1所述的針對嵌入式軟件架構的軟件棧消耗分析方法,其特征在于所述的軟件棧消耗分析過程,具體包括如下步驟:
S1.解析傳入的參數;
S2.根據系統軟件的源代碼格式,獲取對應的匯編代碼;
S3.打開指定的文件,搜索指定的入口函數,并從入口函數開始分析;
S4.進入函數內部,分析函數內的指令類型;
S5.根據獲取的指令類型,計算該函數棧的消耗量;
S6.根據函數內部的調用指令,記錄函數調用深度并繼續統計;
S7.處理分析得到最終的分析數據。
3.根據權利要求2所述的針對嵌入式軟件架構的軟件棧消耗分析方法,其特征在于步驟S2所述的根據系統軟件的源代碼格式,獲取對應的匯編代碼,具體為若獲取的系統軟件的源代碼為匯編代碼,則直接進行后續的分析過程;若獲取的系統軟件的源代碼為非匯編代碼,則調用編譯器將源代碼匯編為匯編代碼,再進行后續的分析過程。
4.根據權利要求3所述的針對嵌入式軟件架構的軟件棧消耗分析方法,其特征在于步驟S4所述的進入函數內部,分析函數內的指令類型,具體為從入口函數進入,逐個搜索每個函數;每個函數均有一個func_table結構體用于存儲該函數的信息;所述信息包括該函數的名稱name、棧消耗量func_stack、調用深度func_length和調用該函數時系統軟件棧的消耗量sys_stack;分析完一個函數后,將該函數的信息存入func_table類型的節點中;每一個函數的信息均為一個節點;按照函數的調用順序,將每一個函數的信息節點連接起來組成一個鏈表,該鏈表存儲了系統軟件的所有函數的信息。
5.根據權利要求4所述的針對嵌入式軟件架構的軟件棧消耗分析方法,其特征在于步驟S5所述的根據獲取的指令類型,計算該函數棧的消耗量,具體為獲取到函數名后,首先在func_table鏈表中進行搜索和匹配,判斷是否之前分析過該函數:若已經分析過該函數,則直接將該函數的信息復制到當前的節點中,然后修正該節點的函數調用深度func_length;若在func_table中沒有搜索到該函數,則開始分析該函數的軟件棧消耗量:開始搜索匹配棧操作指令和跳轉指令,并當匹配到棧操作指令時,按著匯編語言的語法格式,繼續向后搜索關鍵字;根據分析到的指令,計算各個指令的棧消耗量,并存儲到該函數對應的節點中,更新系統軟件棧的消耗量sys_stack;系統軟件棧的消耗量(sys_stack)=調用該函數之前系統軟件棧消耗量sys_stack_prev+該函數的棧消耗func_stack;同時,比較系統軟件棧的消耗量sys_stack和系統軟件棧的最大消耗量sys_stack_max的值,并將較大者作為最終的函數棧的消耗量。
6.根據權利要求5所述的針對嵌入式軟件架構的軟件棧消耗分析方法,其特征在于步驟S6所述的根據函數內部的調用指令,記錄函數調用深度并繼續統計,具體為若搜索到跳轉指令,則跳轉到該函數中分析該函數棧消耗,此時函數調用深度加1,再更新函數的信息到該函數節點;若搜索到彈棧指令,則認定該函數分析完畢,返回到函數被調用處。
7.根據權利要求1~6之一所述的針對嵌入式軟件架構的軟件棧消耗分析方法,其特征在于所述的數據輸出過程,具體包括樹狀格式輸出和table格式輸出;樹狀格式輸出用于直接顯示嵌入式軟件架構的軟件棧消耗;table格式輸出則根據軟件棧消耗分析過程輸出的鏈表,重新將鏈表連接,展示每一個函數的每一項信息,并根據每個函數的棧消耗量,比較系統軟件的棧最大消耗量與系統分配軟件的棧大小,從而給出最終的分析建議。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于長沙海格北斗信息技術有限公司,未經長沙海格北斗信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110584446.3/1.html,轉載請聲明來源鉆瓜專利網。





