亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種中斷驅(qū)動(dòng)系統(tǒng)程序生成和分析方法與流程

文檔序號(hào):12063384閱讀:369來源:國(guó)知局

本發(fā)明涉及數(shù)據(jù)處理和代碼生成分析領(lǐng)域,尤其涉及一種針對(duì)中斷驅(qū)動(dòng)系統(tǒng)代碼框架的生成,進(jìn)而對(duì)補(bǔ)充完整的代碼做分析驗(yàn)證的方法。



背景技術(shù):

中斷驅(qū)動(dòng)系統(tǒng)(interrupt-driven system)是指一類由系統(tǒng)任務(wù)和中斷處理程序組成的實(shí)時(shí)控制系統(tǒng)。這類系統(tǒng)要求較高的安全性和可靠性,任何微小的錯(cuò)誤都可能造成人員傷亡或后果難以估計(jì)的重大損失。在現(xiàn)實(shí)生活中,中斷驅(qū)動(dòng)系統(tǒng)被廣泛應(yīng)用于安全關(guān)鍵系統(tǒng)中,如醫(yī)療輔助系統(tǒng)、軌道交通控制系統(tǒng)、航空航天控制系統(tǒng)。因此,系統(tǒng)的正確性保障有著特別重要的現(xiàn)實(shí)意義。

在這種情況下,怎么正確高效的構(gòu)建編寫出中斷驅(qū)動(dòng)系統(tǒng),是一個(gè)值得探索的方向。中斷驅(qū)動(dòng)系統(tǒng)對(duì)具體不同的應(yīng)用場(chǎng)景,會(huì)有不同的要求和編寫過程,這對(duì)代碼的可讀性和正確性提出更高的要求,將不同應(yīng)用場(chǎng)景下的中斷驅(qū)動(dòng)系統(tǒng)轉(zhuǎn)化為相對(duì)固定模式下的系統(tǒng)模型,可簡(jiǎn)化中斷驅(qū)動(dòng)系統(tǒng)編寫流程并提高準(zhǔn)確率。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的是提供一種中斷驅(qū)動(dòng)系統(tǒng)程序生成和分析方法,以減少程序錯(cuò)誤和提高開發(fā)效率,并在此基礎(chǔ)上做進(jìn)一步代碼分析,確定其是否滿足中斷驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)需求。

為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:

一種中斷驅(qū)動(dòng)系統(tǒng)程序生成和分析方法,包括以下步驟:

步驟1,獲取中斷驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)數(shù)據(jù);

步驟2,根據(jù)步驟1獲取的中斷驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)數(shù)據(jù)建立中斷驅(qū)動(dòng)系統(tǒng)模型;

步驟3,根據(jù)步驟2建立的中斷驅(qū)動(dòng)系統(tǒng)模型導(dǎo)出代碼框架,所述代碼框架包括中斷處理程序、系統(tǒng)任務(wù)處理程序;

步驟4,將系統(tǒng)任務(wù)處理程序中的任務(wù)子函數(shù)人工填充完整,并使用WCET分析工具分析其函數(shù)最壞運(yùn)行時(shí)間;

步驟5,對(duì)比源代碼框架中的最壞時(shí)間標(biāo)注,判斷其是否滿足要求進(jìn)行處理。

所述步驟1中,中斷驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)數(shù)據(jù)包括中斷驅(qū)動(dòng)系統(tǒng)的中斷事件、中斷及其處理程序、系統(tǒng)任務(wù)及其處理程序、共享變量。

所述步驟2包括:

步驟21,輸入中斷驅(qū)動(dòng)系統(tǒng)的任務(wù)及其處理程序信息,中斷及其處理程序信息;

步驟22,輸入中斷驅(qū)動(dòng)系統(tǒng)所能發(fā)生的中斷事件信息;

步驟23,對(duì)輸入中斷事件選擇設(shè)計(jì)好的中斷處理程序和任務(wù)處理程序進(jìn)行處理。

所述步驟23的具體步驟為:對(duì)輸入的中斷事件選擇設(shè)計(jì)好的中斷處理程序,分配控制命令字,期間要檢查中斷處理程序是否有足夠CPU時(shí)間響應(yīng)該中斷事件;再將處理中斷事件所需消耗的CPU時(shí)間按設(shè)計(jì)分割成一個(gè)或多個(gè)小的時(shí)間片,對(duì)每個(gè)時(shí)間片選擇某個(gè)任務(wù)處理程序,表示在該系統(tǒng)任務(wù)內(nèi)運(yùn)行中斷事件引發(fā)的操作,運(yùn)行時(shí)間為此時(shí)間片所規(guī)定的時(shí)間,期間需要檢查選擇的系統(tǒng)任務(wù)處理程序所剩CPU運(yùn)行時(shí)間是否滿足分割出時(shí)間片要求。

所述步驟3中,中斷處理程序中包含其所需響應(yīng)的中斷事件,并設(shè)置好對(duì)應(yīng)的控制命令字;系統(tǒng)任務(wù)處理程序包含在其CPU時(shí)間內(nèi)所需運(yùn)行的中斷事件處理時(shí)間片操作,每個(gè)時(shí)間片對(duì)應(yīng)一個(gè)任務(wù)子函數(shù),根據(jù)中斷處理程序中設(shè)置的控制命令字確定調(diào)用哪個(gè)任務(wù)子函數(shù)完成處理,期間需要對(duì)生成的函數(shù)使用注釋或其它方式標(biāo)注其設(shè)計(jì)信息。

所述步驟4中,使用WCET分析工具對(duì)源碼以函數(shù)為單位計(jì)算各任務(wù)子函數(shù)的實(shí)際最壞運(yùn)行時(shí)間。

所述步驟5包括:所述對(duì)比最壞時(shí)間標(biāo)注包含以下步驟:

步驟51:對(duì)比WCET工具計(jì)算出的任務(wù)子函數(shù)最壞運(yùn)行時(shí)間和代碼框架生成時(shí)的最壞運(yùn)行時(shí)間標(biāo)注;

步驟52:若對(duì)每個(gè)任務(wù)子函數(shù)計(jì)算出的時(shí)間都不大于其最壞運(yùn)行時(shí)間標(biāo)注,則代碼符合系統(tǒng)設(shè)計(jì)需求代碼生成結(jié)束;若某個(gè)任務(wù)子函數(shù)計(jì)算出的時(shí)間大于最壞運(yùn)行時(shí)間標(biāo)注,則選擇以下任一種方式:

(1)重新設(shè)計(jì)該任務(wù)子函數(shù),轉(zhuǎn)至步驟4;

(2)重新設(shè)計(jì)中斷驅(qū)動(dòng)系統(tǒng)模型,轉(zhuǎn)至步驟2。

有益效果:本發(fā)明所述的中斷驅(qū)動(dòng)系統(tǒng)代碼生成和分析方法,將中斷驅(qū)動(dòng)系統(tǒng)在設(shè)計(jì)階段轉(zhuǎn)化為滿足系統(tǒng)要求的模型,使之生成代碼框架并做一定分析驗(yàn)證,本發(fā)明所述的方法具有如下優(yōu)點(diǎn):

(1)本發(fā)明提供了一種中斷驅(qū)動(dòng)系統(tǒng)代碼框架生成方法,減少了中斷驅(qū)動(dòng)系統(tǒng)在設(shè)計(jì)和編寫階段的人為錯(cuò)誤,提高了編寫效率。

(2)本發(fā)明所述的生成方法分析了具體任務(wù)子函數(shù)的最壞運(yùn)行時(shí)間,確定是否滿足系統(tǒng)設(shè)計(jì)要求,提高了中斷驅(qū)動(dòng)系統(tǒng)的可靠性。

附圖說明

圖1是本發(fā)明的方法的流程圖。

具體實(shí)施方式

一.中斷驅(qū)動(dòng)程序模型

中斷驅(qū)動(dòng)系統(tǒng)(interrupt-driven system)是指一類由系統(tǒng)任務(wù)和中斷處理程序組成的實(shí)時(shí)控制系統(tǒng)。在不同應(yīng)用場(chǎng)景下會(huì)有比較大的差別,將其歸納到相對(duì)固定模式的模型下,便于進(jìn)行后續(xù)處理。本發(fā)明中,中斷驅(qū)動(dòng)程序模型的主要要素有:

1)中斷事件:指在中斷程序運(yùn)行過程中,發(fā)生的外部事件,這些發(fā)生的中斷事件的處理有時(shí)間要求,必須在限定時(shí)間內(nèi)處理完成,否則會(huì)出現(xiàn)錯(cuò)誤,影響程序的正確運(yùn)行。具體的屬性有:

a)類型:周期發(fā)生/隨機(jī)發(fā)生;

b)重復(fù)頻率:如果是周期中斷,其周期是多少;

c)中斷間隔:如果是隨機(jī)中斷,其最小間隔是多少;

d)動(dòng)態(tài)執(zhí)行時(shí)間上限:在系統(tǒng)實(shí)際運(yùn)行時(shí),從中斷信號(hào)被響應(yīng)開始計(jì)算,最長(zhǎng)在多長(zhǎng)時(shí)間內(nèi)必須完成;

e)CPU時(shí)間:處理完該中斷事件CPU所需運(yùn)行的時(shí)間。

2)中斷及其處理程序:是指中斷驅(qū)動(dòng)系統(tǒng)中響應(yīng)具體中斷事件的程序。其作用是將中斷處理程序與某中斷事件相綁定,在某中斷事件發(fā)生時(shí),由該中斷處理程序進(jìn)行處理,設(shè)置控制變量命令字,確保系統(tǒng)任務(wù)正確運(yùn)行。具體的屬性有:

a)中斷號(hào)

b)優(yōu)先級(jí)

c)類型:周期發(fā)生/隨機(jī)發(fā)生;

d)重復(fù)頻率:如果是周期中斷,其周期是多少;

e)中斷間隔:如果是隨機(jī)中斷,其最小間隔是多少;

f)CPU時(shí)間:該中斷處理程序所能占據(jù)的CPU運(yùn)行時(shí)間;

g)偏移量:對(duì)于系統(tǒng)調(diào)度任務(wù),該處理在周期內(nèi)開始執(zhí)行時(shí)的偏移量是多少;

3)系統(tǒng)任務(wù)及其處理程序:是指中斷驅(qū)動(dòng)系統(tǒng)中處理中斷事件引發(fā)的具體操作的程序。在某中斷事件發(fā)生時(shí),先由其綁定的中斷處理程序進(jìn)行處理,設(shè)置好控制變量命令字,再將該中斷事件處理的實(shí)際操作根據(jù)具體情況和系統(tǒng)設(shè)計(jì)分割成一份或多份,分別放置于選定的系統(tǒng)任務(wù)中。在實(shí)際運(yùn)行時(shí),根據(jù)不同的控制變量命令字,執(zhí)行不同的處理,完成中斷事件所引發(fā)的具體操作流程。具體的屬性有:

a)任務(wù)號(hào)

b)優(yōu)先級(jí)

c)類型:周期發(fā)生/隨機(jī)發(fā)生;

d)重復(fù)頻率:如果是周期中斷,其周期是多少;

e)中斷間隔:如果是隨機(jī)中斷,其最小間隔是多少;

f)CPU時(shí)間:該系統(tǒng)任務(wù)處理程序所能占據(jù)的CPU運(yùn)行時(shí)間;

4)共享變量:是指在系統(tǒng)任務(wù)的具體操作中會(huì)被多處訪問的讀寫變量。

二.中斷驅(qū)動(dòng)程序代碼框架生成和分析

本發(fā)明主要聚焦于如何將中斷驅(qū)動(dòng)系統(tǒng)轉(zhuǎn)化為模型,并進(jìn)行代碼框架的生成和代碼分析,下面根據(jù)說明書附圖1所示對(duì)本發(fā)明的中斷驅(qū)動(dòng)系統(tǒng)程序生成和分析方法做進(jìn)一步說明。

步驟1,獲取中斷驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)數(shù)據(jù),包括中斷驅(qū)動(dòng)系統(tǒng)的中斷事件、中斷及其處理程序、系統(tǒng)任務(wù)及其處理程序、共享變量等信息。

步驟2,根據(jù)步驟1獲取的中斷驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)數(shù)據(jù)建立中斷驅(qū)動(dòng)系統(tǒng)模型;這里需要開發(fā)相應(yīng)的工具程序根據(jù)系統(tǒng)設(shè)計(jì)信息建立成系統(tǒng)模型,具體過程如下:

步驟21,輸入中斷驅(qū)動(dòng)系統(tǒng)的任務(wù)及其處理程序信息,中斷及其處理程序信息;

步驟22,輸入中斷驅(qū)動(dòng)系統(tǒng)所能發(fā)生的中斷事件信息;

步驟23,對(duì)輸入的事件選擇設(shè)計(jì)好的中斷處理程序,分配控制命令字,期間要檢查中斷處理程序是否有足夠CPU時(shí)間響應(yīng)該中斷事件;再將中斷事件所需消耗的CPU時(shí)間按設(shè)計(jì)分割成一個(gè)或多個(gè)小的時(shí)間片,對(duì)每個(gè)時(shí)間片選擇某個(gè)任務(wù)處理程序,表示在該系統(tǒng)任務(wù)內(nèi)運(yùn)行中斷事件引發(fā)的操作,運(yùn)行時(shí)間為此時(shí)間片所規(guī)定的時(shí)間,期間需要檢查選擇的系統(tǒng)任務(wù)處理程序所剩CPU運(yùn)行時(shí)間是否滿足分割出時(shí)間片要求。

步驟3,根據(jù)步驟2建立的中斷驅(qū)動(dòng)系統(tǒng)模型導(dǎo)出代碼框架,該框架主要包括中斷處理程序、系統(tǒng)任務(wù)處理程序;其中,中斷處理程序中包含了他所需響應(yīng)的中斷事件,并設(shè)置好對(duì)應(yīng)的控制命令字;系統(tǒng)任務(wù)處理程序包含了在其CPU時(shí)間所需運(yùn)行的中斷事件處理時(shí)間片操作,每個(gè)時(shí)間片對(duì)應(yīng)一個(gè)任務(wù)子函數(shù),根據(jù)中斷處理程序中設(shè)置的控制命令字確定調(diào)用哪個(gè)任務(wù)子函數(shù),完成處理,期間需要對(duì)生成的函數(shù)使用注釋或其他方式標(biāo)注其他設(shè)計(jì)信息,如該函數(shù)運(yùn)行的CPU時(shí)間上限、所要訪問到的共享變量等。

步驟4,將系統(tǒng)任務(wù)處理程序中的任務(wù)子函數(shù)人工填充完整,然后對(duì)已人工填充完整的任務(wù)子函數(shù)使用WCET(Worst-case Execution Time)分析工具分析函數(shù)最壞運(yùn)行時(shí)間,使用WCET分析工具對(duì)源碼以函數(shù)為單位計(jì)算各任務(wù)子函數(shù)的實(shí)際最壞運(yùn)行時(shí)間。

步驟5,對(duì)比源代碼框架中的最壞時(shí)間標(biāo)注,判斷其是否滿足要求進(jìn)行處理。其中對(duì)比最壞時(shí)間標(biāo)注包含以下步驟:

步驟51:對(duì)比WCET工具計(jì)算出的任務(wù)子函數(shù)最壞運(yùn)行時(shí)間和代碼框架生成時(shí)的最壞運(yùn)行時(shí)間標(biāo)注;

步驟52:若滿足條件即對(duì)于每個(gè)任務(wù)子函數(shù)計(jì)算出的時(shí)間都不大于其最壞運(yùn)行時(shí)間標(biāo)注,則所編寫中斷驅(qū)動(dòng)系統(tǒng)代碼符合設(shè)計(jì)要求代碼生成結(jié)束,若某個(gè)任務(wù)子函數(shù)不滿足條件即計(jì)算出的時(shí)間大于最壞運(yùn)行時(shí)間標(biāo)注,需要進(jìn)行反饋處理,可有以下兩種處理方式:(1)任務(wù)子函數(shù)運(yùn)行時(shí)間過長(zhǎng)則重新設(shè)計(jì)任務(wù)子函數(shù),減少子函數(shù)操作內(nèi)容,將多出內(nèi)容移至同中斷事件其他時(shí)間片,轉(zhuǎn)至步驟4;

(2)若任務(wù)子函數(shù)無法做切割或重改后仍無法滿足時(shí)間限制,則需要重新設(shè)計(jì)中斷驅(qū)動(dòng)系統(tǒng)模型,延長(zhǎng)處理該任務(wù)子函數(shù)所屬中斷事件的CPU時(shí)間,轉(zhuǎn)至步驟2。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1