[發(fā)明專利]動靜態(tài)結(jié)合的中斷驅(qū)動程序數(shù)據(jù)競爭檢測方法有效
| 申請?zhí)枺?/td> | 201410324303.9 | 申請日: | 2014-07-08 |
| 公開(公告)號: | CN104090798A | 公開(公告)日: | 2014-10-08 |
| 發(fā)明(設(shè)計)人: | 王林章;陳園軍;陳志;李宣東 | 申請(專利權(quán))人: | 南京大學(xué) |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 南京瑞弘專利商標(biāo)事務(wù)所(普通合伙) 32249 | 代理人: | 楊曉玲 |
| 地址: | 210093 江*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 靜態(tài) 結(jié)合 中斷 驅(qū)動程序 數(shù)據(jù) 競爭 檢測 方法 | ||
1.一種動靜態(tài)結(jié)合的中斷驅(qū)動程序數(shù)據(jù)競爭檢測方法,其特征在于該方法包含的步驟為:?
步驟1:用戶指定受測試的中斷驅(qū)動程序源文件,所述的中斷驅(qū)動程序源文件包含若干個函數(shù)構(gòu)成的主任務(wù)的源代碼,以及該任務(wù)涉及到的中斷所對應(yīng)的中斷處理程序的源代碼;?
步驟2:用戶指定測試的配置文件,所述配置文件是XML文件,XML的全稱是可擴展標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進(jìn)行定義的源語言;所述的測試配置文件包括主函數(shù)的入口說明、各個中斷處理程序的中斷向量號和中斷優(yōu)先級;?
步驟3:對受測試的中斷驅(qū)動程序源文件進(jìn)行共享資源檢測,得到共享資源列表;?
步驟4:對受測試的中斷驅(qū)動程序源文件進(jìn)行中斷操作行為檢測,得到中斷操作列表;?
步驟5:對中斷驅(qū)動程序源文件進(jìn)行分析,得到簡要控制流圖RCFG,?
步驟6:將所有的RCFG互聯(lián)起來,得到全局的中斷互聯(lián)控制流圖IICFG;?
步驟7:對IICFG進(jìn)行深度優(yōu)先遍歷,得到中斷驅(qū)動源程序的靜態(tài)分析結(jié)果;?
步驟8:在西米克斯Simics仿真平臺中執(zhí)行中斷驅(qū)動程序源文件,驗證PR中的所有靜態(tài)分析結(jié)果,?
步驟9:對驗證后的驗證結(jié)果進(jìn)行嚴(yán)重性排序,從而得到了對受測試的中斷驅(qū)動程序源文件的競爭檢測結(jié)果。?
2.如權(quán)利要求1所述的動靜態(tài)結(jié)合的中斷驅(qū)動程序數(shù)據(jù)競爭檢測方法,其特征在于所述步驟3具體過程如下:?
步驟31:設(shè)置共享資源列表,將該表初始化為空,所述的共享資源列表包含五個屬性,分別是共享資源所在的函數(shù)名、該共享資源所在該函數(shù)中的行號、共享資源在該函數(shù)中的別名、該共享資源的全局的實質(zhì)名稱、該共享資源的讀寫訪問類型;?
步驟32:打開中斷驅(qū)動程序源文件,逐行讀取源文件數(shù)據(jù),每當(dāng)讀入源文件的一行數(shù)據(jù)時,通過語法分析該行數(shù)據(jù)中所包含的語句是否屬于共享資源聲明語句;所述的共享資源包括:可全局被訪問的共享變量、可共享訪問的端口號、寄存器地址、可全局被訪問的文件句柄,以及上述所有的共享資源的有效的指針形式傳播;如果該語句是共享資源聲明語句,則將該語句中包含的共享資源的具體信息作為共享資源列表的一行,添?入到共享資源列表中;共享資源的具體信息包括共享資源所在的函數(shù)名、該共享資源所在該函數(shù)中的行號、共享資源在該函數(shù)中的別名、該共享資源的全局的實質(zhì)名稱、該共享資源的讀寫訪問類型。?
3.如權(quán)利要求1所述的動靜態(tài)結(jié)合的中斷驅(qū)動程序數(shù)據(jù)競爭檢測方法,其特征在于所述步驟4具體過程如下:?
步驟41:讀取用戶指定測試的配置文件,讀入本次測試的函數(shù)主入口信息、各個中斷處理程序的中斷向量號、中斷優(yōu)先級,?
步驟42:設(shè)置中斷操作列表,將該表初始化為空;所述的中斷操作列表包含四個屬性,分別是中斷操作所在的函數(shù)名、該中斷操作所在該函數(shù)中的行號、該中斷的向量號、該中斷操作的操作類型;?
步驟43:打開中斷驅(qū)動程序源文件,逐行讀取源文件數(shù)據(jù),每當(dāng)讀入源文件的一行數(shù)據(jù)時,通過語法分析判斷該行數(shù)據(jù)中包含的語句是否是中斷控制語句,如果是,將該中斷操作添入到中斷操作列表中。?
4.如權(quán)利要求1所述的動靜態(tài)結(jié)合的中斷驅(qū)動程序數(shù)據(jù)競爭檢測方法,其特征在于所述步驟5具體過程如下:?
步驟51:使用編譯器LLVM對源程序進(jìn)行分析,得到每個函數(shù)和中斷處理程序的控制流圖CFG;?
步驟52:讀取所有CFG,對每個CFG,依次讀取其包含的每個結(jié)點;?
步驟53:對于CFG中的每個結(jié)點,根據(jù)前述得到的共享資源列表和中斷操作列表,判斷該結(jié)點是否包含有會影響共享資源的操作,即是否屬于共享資源操作、中斷開關(guān)操作、條件分支判斷操作;如果是,則將當(dāng)前結(jié)點從當(dāng)前CFG中刪除,如果否,則什么都不做,判斷完當(dāng)前結(jié)點后,繼續(xù)往下判斷下一個結(jié)點;?
步驟54:每遍歷完成一個CFG,則得到了該CFG對應(yīng)的RCFG。?
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京大學(xué),未經(jīng)南京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410324303.9/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 復(fù)雜背景中實現(xiàn)靜態(tài)目標(biāo)檢測和識別的方法
- 一種設(shè)置靜態(tài)認(rèn)證信息的方法及裝置
- 一種基于物聯(lián)網(wǎng)技術(shù)的機房靜態(tài)資源快速定位的方法
- 一種動態(tài)網(wǎng)頁靜態(tài)化的方法和裝置
- 瀏覽器靜態(tài)資源加載方法、瀏覽器程序及可讀存儲介質(zhì)
- 靜態(tài)資源更新方法、裝置、存儲介質(zhì)和計算機設(shè)備
- 一種圖像顯示方法及裝置
- 一種靜態(tài)方法修改非靜態(tài)對象的方法
- 一種靜態(tài)資源加載方法、裝置、設(shè)備及可讀存儲介質(zhì)
- 一種靜態(tài)資源獲取方法、裝置及其相關(guān)設(shè)備





