欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法

文檔序號:6584970閱讀:525來源:國知局
專利名稱:一種用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法
技術領域
本發(fā)明涉及一種用于分析嵌入式系統(tǒng)中堆棧使用的方法,具體說,本發(fā)明涉及一 種用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法。
背景技術
堆棧內(nèi)存由程序開發(fā)人員靜態(tài)進行分配。如果低估了堆棧的使用量,將會導致程 序運行出錯;而過高的估計了堆棧的使用又將造成系統(tǒng)內(nèi)存資源的浪費。堆棧分析器不僅 可以降低程序員開發(fā)程序的難度,還可以減少很多隱晦的錯誤。本發(fā)明全面分析了本領域內(nèi)相關研究的進展情況,例如專利申請?zhí)?200810061578. 2設計了堆棧使用分析的一種方法。在該專利中,以可執(zhí)行文件作為輸入,進 行反匯編,基本塊的堆棧分析,函數(shù)內(nèi)的堆棧分析后,以程序的調用關系圖為基礎計算多線 程中的堆棧使用情況,專利申請?zhí)?00810061578. 2還考慮了中斷處理函數(shù)對堆棧大小的 影響,是一種實用的堆棧分析方法。然而在該專利中,并未考慮實時操作系統(tǒng)RT0S對堆棧 大小的影響,未考慮程序中可能調用的動態(tài)庫和標準庫對堆棧的影響。

發(fā)明內(nèi)容
本發(fā)明的目的在于,為克服在嵌入式系統(tǒng)中對所用堆棧需求估計不準導致的系統(tǒng) 不穩(wěn)定問題,從而提出一種用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法。為了達到本發(fā)明提供一種用于精確估算最大堆棧使用量的堆棧方法,該發(fā)明詳細 分析了程序運行時每個函數(shù)的堆棧使用量,統(tǒng)計了程序所調用的運行時庫和標準庫的堆棧 使用信息,同時還考慮了操作系統(tǒng)本身的運行對堆棧的影響,從而使得對程序最大堆棧使 用量的計算更為精確。一種用于估計嵌入式系統(tǒng)中堆棧需求量的方法,該方法用于精確估計嵌入式系統(tǒng) 程序運行過程中對堆??臻g的最大需求量,所述的方法包含如下步驟1)對目標二進制文件進行反匯編得到源匯編文件;2)對匯編文件進行分析得到完整的函數(shù)調用關系圖;3)根據(jù)步驟2得到的完整的函數(shù)調用關系圖進行本地函數(shù)的堆棧需求量分析,并 求和;4)根據(jù)步驟2得到的完整的函數(shù)調用關系圖,統(tǒng)計每棵調用樹所調用的運行時庫 的堆棧需求和標準庫的堆棧需求量并求和;5)按照優(yōu)先級進行中斷函數(shù)的堆棧需求進行分析,確定每個優(yōu)先級內(nèi)各個中斷程 序的最大堆棧需求量并求和,再加上中斷發(fā)生時,保存處理器狀態(tài)而增加的額外堆棧需求 量;6)對3、4和5步驟中的堆棧需求求和,統(tǒng)計出單線程程序的嵌入式系統(tǒng)的最大堆 棧需求量;其中,步驟2)所述的完整的函數(shù)關系圖步驟,具體包含
3
首先用控制流分析得到初步的函數(shù)關系圖,然后針對間接調用函數(shù)和遞歸調用函 數(shù)采取抽象解釋算法的值分析方法進一步分析,對于無法分析的函數(shù)調用需要用戶進行注 釋,得到完整的函數(shù)調用關系圖。所述的用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,其特征在于,所述的運行 時庫函數(shù)的堆棧需求,直接對源代碼進行堆棧需求分析;所述的標準庫函數(shù),查詢編譯器廠 商提供的堆棧信息表格得到堆棧需求。所述的用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,其特征在于,步驟3)所述 的本地函數(shù)堆棧需求分析需要確定函數(shù)調用深度,針對在同一棵調用樹上的函數(shù)堆棧大小 進行累加,對于復雜遞歸函數(shù)的深度通過值分析得到數(shù)據(jù),否則需要用戶進行注釋。所述的用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,其特征在于,如果程序以 多線程方式運行,為每個線程建立調用樹,并重復步驟3)至6),得到多線程時系統(tǒng)的最大 堆棧需求量。所述的用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,其特征在于,所述的最大 堆棧需求量與操作系統(tǒng)本身運行時的堆棧最大需求量求和,得到整個嵌入式系統(tǒng)程序運行 時最大堆棧需求量。本發(fā)明的優(yōu)點在于,除了可以靜態(tài)的計算多線程程序的堆棧大小,還可以分析運 行時庫、標準庫和操作系統(tǒng)的堆棧使用情況,使得計算結果更加精確,用于指導程序員合理 的分配內(nèi)存資源,從而保證嵌入式系統(tǒng)的安全性可靠性。


圖1給出了本發(fā)明的詳細流程圖。
具體實施例方式下面結合附圖和具體實施例對本發(fā)明進行詳細的說明。下面結合附圖和具體實施方式
對本發(fā)明做進一步說明。該方法具體工作步驟如圖 1所示1.對二進制文件進行反匯編得到匯編文件。不同的硬件平臺需要不同的反匯編工且.
Z、 92.對匯編文件進行控制流分析得到函數(shù)調用關系圖,這里的函數(shù)調用圖可能因為 間接調用的存在無法明確反映出函數(shù)關系,因此需要進一步流分析;3.對匯編文件進行值分析,得到完整的函數(shù)調用關系圖。值分析采取抽象解釋算 法。對于無法分析的函數(shù)調用需要用戶進行注釋。以下步驟以單線程為模型進行分析,對 于多線程分析,步驟7給出方案;4.進行本地函數(shù)的堆棧使用分析。本地函數(shù)分析需要明確函數(shù)調用深度,在同一 棵調用樹上的函數(shù)堆棧大小需要進行累加。對于復雜遞歸函數(shù)的深度通過值分析得到數(shù) 據(jù),否則需要用戶進行注釋;5.按照優(yōu)先級進行中斷函數(shù)的堆棧使用分析,確定每個優(yōu)先級內(nèi)各個中斷程序的 最大堆棧用量并進行求和。還需計算中斷發(fā)生時,用來保存處理器中間狀態(tài)的堆棧使用空 間;
6.統(tǒng)計每棵調用樹所調用的運行時庫和標準庫的堆棧使用信息。對于運行時庫函 數(shù)的堆棧使用,可以對源代碼進行堆棧分析;對于標準庫函數(shù),可以通過查詢編譯器廠商提 供的堆棧信息表格得到數(shù)據(jù);7.對4,5,6步驟中的最大堆棧使用求和,統(tǒng)計出程序的最壞堆棧使用量。如果程 序以多線程方式運行,為每個線程建立調用樹,重復步驟4至7,最后求和;8.計算操作系統(tǒng)RT0S本身運行時的堆棧最大需求量;9.對7和8計算結果求和,得到多線程程序運行時對系統(tǒng)的最大堆棧需求量;10.反標調用關系圖,并使用圖形化界面輸出通過以上步驟,本發(fā)明可以對多線程程序的堆??臻g使用量進行精確的估算,可 以應用在程序的安全性檢查步驟中。最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制。盡管參 照實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,對本發(fā)明的技術方 案進行修改或者等同替換,都不脫離本發(fā)明技術方案的精神和范圍,其均應涵蓋在本發(fā)明 的權利要求范圍當中。
權利要求
一種用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,該方法用于精確估計嵌入式系統(tǒng)程序運行過程中對堆??臻g的最大需求量,所述的方法包含如下步驟1)對目標二進制文件進行反匯編得到源匯編文件;2)對匯編文件進行分析得到完整的函數(shù)調用關系圖;3)根據(jù)步驟2得到的完整的函數(shù)調用關系圖進行本地函數(shù)的堆棧需求量分析,并求和;4)根據(jù)步驟2得到的完整的函數(shù)調用關系圖,統(tǒng)計每棵調用樹所調用的運行時庫的堆棧需求和標準庫的堆棧需求量并求和;5)按照優(yōu)先級進行中斷函數(shù)的堆棧需求進行分析,確定每個優(yōu)先級內(nèi)各個中斷程序的最大堆棧需求量并求和,再加上中斷發(fā)生時,保存處理器狀態(tài)而增加的額外堆棧需求量;6)對3、4和5步驟中的堆棧需求求和,統(tǒng)計出單線程程序的嵌入式系統(tǒng)的最大堆棧需求量;其中,步驟2)所述的完整的函數(shù)關系圖步驟,具體包含首先用控制流分析得到初步的函數(shù)關系圖,然后針對間接調用函數(shù)和遞歸調用函數(shù)采取抽象解釋算法的值分析方法進一步分析,對于無法分析的函數(shù)調用需要用戶進行注釋,得到完整的函數(shù)調用關系圖。
2.根據(jù)權利要求1所述的用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,其特征在 于,所述的運行時庫函數(shù)的堆棧需求,直接對源代碼進行堆棧需求分析;所述的標準庫函 數(shù),查詢編譯器廠商提供的堆棧信息表格得到堆棧需求。
3.根據(jù)權利要求1所述的用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,其特征在 于,步驟3)所述的本地函數(shù)堆棧需求分析需要確定函數(shù)調用深度,針對在同一棵調用樹上 的函數(shù)堆棧大小進行累加,對于復雜遞歸函數(shù)的深度通過值分析得到數(shù)據(jù),否則需要用戶 進行注釋。
4.根據(jù)權利要求1所述的用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,其特征在 于,如果程序以多線程方式運行,為每個線程建立調用樹,并重復步驟3)至6),得到多線程 時系統(tǒng)的最大堆棧需求量。
5.根據(jù)權利要求1或4所述的用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,其特征 在于,所述的最大堆棧需求量與操作系統(tǒng)本身運行時的堆棧最大需求量求和,得到整個嵌 入式系統(tǒng)程序運行時最大堆棧需求量。
全文摘要
本發(fā)明提出一種用于精確估計嵌入式系統(tǒng)中堆棧需求量的方法,所述的方法包含如下步驟用完整的函數(shù)調用關系圖進行本地函數(shù)和每棵調用樹運行時庫和標準庫的堆棧需求的堆棧需求量分析,并求和;確定每個優(yōu)先級內(nèi)各個中斷程序的最大堆棧需求量并求和,并加上保存處理器狀態(tài)而增加的額外堆棧需求;對以上結果求和得到單線程的最大堆棧需求;所述的完整的函數(shù)關系圖,首先用控制流分析得到初步的函數(shù)關系圖,然后針對間接調用函數(shù)和遞歸調用函數(shù)采取抽象解釋算法的值分析方法進一步分析,得到完整的函數(shù)調用關系圖,對于無法分析的函數(shù)調用需要用戶進行注釋。針對多線程重復單線程步驟并將所有求和,最后在加上操作系統(tǒng)的堆棧需求量即系統(tǒng)總堆棧需求。
文檔編號G06F9/50GK101876923SQ20091024125
公開日2010年11月3日 申請日期2009年11月27日 優(yōu)先權日2009年11月27日
發(fā)明者張鐵軍, 時磊, 王東輝, 王紅梅 申請人:中國科學院聲學研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
肥东县| 岳普湖县| 西乌珠穆沁旗| 元朗区| 宜丰县| 云龙县| 扎鲁特旗| 长治市| 台南县| 沧源| 丹凤县| 大田县| 酉阳| 高州市| 时尚| 阜城县| 涞源县| 普宁市| 蒲城县| 吉林市| 辽中县| 花莲市| 沙湾县| 延长县| 鄂托克旗| 佛山市| 勃利县| 石柱| 澳门| 永清县| 关岭| 新建县| 武乡县| 天等县| 清远市| 祁阳县| 荥经县| 九龙坡区| 喀喇| 罗山县| 阳泉市|