• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于PowerPC軟件的無源碼異常中斷定位方案

      2023-10-08 05:20:18王逸凡朱帥琦
      工程與試驗 2023年3期
      關鍵詞:插樁源碼上位

      王逸凡,朱帥琦

      (中國航發(fā)控制系統(tǒng)研究所,江蘇 無錫 214063)

      1 引 言

      數(shù)字控制系統(tǒng)在航空航天等高安全性領域已經(jīng)得到了廣泛應用[1],控制軟件的功能和復雜度不斷增加,軟件研發(fā)中引入的缺陷也越來越隱蔽,因此導致的異常中斷定位就顯得尤為重要[2-5]。目前,對基于PowerPC的控制軟件,需要依賴編譯生成的.map文件和源碼進行異常中斷定位[6-10],雖然定位準確,但該方法只適用于開發(fā)調試場景下的異常定位。由于軟件源碼和編譯生成的.map文件涉及到軟件的設計信息,軟件作為產(chǎn)品交付時,一般不會提供源碼和編譯過程文件。因此,現(xiàn)有的定位方式給外場用戶進行快速異常定位帶來不便。

      此外,隨著數(shù)控軟件更新頻率不斷提升,一個數(shù)控系統(tǒng)常常存在多個軟件版本,維護成本大大增加。對于各個版本發(fā)生的異常中斷,想要快速定位異常就完全依賴于內場開發(fā)人員的管理水平和反應速度,使用者在外場沒有快速定位的手段和能力。

      本文針對使用PowerPC的發(fā)動機控制軟件,結合NVRAM的存儲特性[11-14],設計了一種簡易輕量化的異常中斷定位及數(shù)據(jù)存儲方案??梢栽跊]有源碼和編譯文件的情況下,對發(fā)生中斷的模塊進行定位,對異常發(fā)生時的控制狀態(tài)進行記錄,簡化了定位方法,方便外場使用。

      2 異常中斷介紹

      嵌入式軟件運行前,會在系統(tǒng)初始化時,對異常中斷進行初始化,設置中斷源。CPU在運行過程中一旦發(fā)生異常,就會中止處理器正常的執(zhí)行,跳去執(zhí)行異常處理程序。異常有多種類型,異常本身是中斷的一種特例。本文介紹的PowerPC有19種異常中斷,如表1[15]所示。

      表1 異常及觸發(fā)條件

      當上述異常被觸發(fā)后,軟件的中斷服務函數(shù)進入對應的異常處理程序,此時可以利用串口打印異常號及相關寄存器中的信息。目前,異常中斷定位是將異常運行時代碼位置、異常種類等信息打印出來,然后通過相應的.map文件查詢異常發(fā)生的函數(shù)位置,從而實現(xiàn)異常定位。

      3 異常中斷定位方案

      異常中斷后軟件一般會馬上進行復位,通過串口打印出來的信息,有時候很難被PC端的使用者和機載設備捕捉到,偶發(fā)性的異常在復位后容易被忽視。同時,已交付產(chǎn)品一般不提供源碼和.map文件,無法根據(jù)串口信息進行快速異常定位,給外場分析帶來不便。

      3.1 捕獲異常位置

      通過研究異常中斷過程,當異常發(fā)生后,軟件會跳轉到異常中斷服務函數(shù)中,中斷發(fā)生后會馬上跳出主程序。此時,如果將跳出位置記錄下來,就可以不依賴.map文件對異常進行定位,從而捕獲異常。

      本文設計了一個異常數(shù)據(jù)標記函數(shù),標記函數(shù)能夠直接訪問NVRAM進行讀寫操作,并將標記信息記錄到指定地址。此外,宏定義一系列表征軟件運行位置的標記作為函數(shù)入?yún)?申請一片NVRAM空間用來存儲異常信息。軟件正常運行時,進入每個模塊前都會先進行標記,同時覆蓋NVRAM中上一個模塊的記號。因為標記函數(shù)是在進入模塊前進行標記,因此當異常中斷跳出主程序時,NVRAM中存儲的標記就是異常中斷發(fā)生的模塊位置,如圖1所示。此外,結合異常中斷服務函數(shù),可以將產(chǎn)生異常的種類、異常中斷發(fā)生次數(shù)、發(fā)生異常時軟件狀態(tài)信息等,也存儲在NVRAM中。

      圖1 異常中斷定位方式

      由于異常中斷后一般會進行復位,控制軟件重新初始化運行。通過上述方式捕獲異常中斷后,要保證之前的異常中斷信息能夠保存下來,且需要多個相同大小的NVRAM空間,每次異常中斷后,都對異常信息的存儲位置進行偏移,寫滿后循環(huán)覆蓋。在有限的空間下,只記錄最近發(fā)生的幾次異常中斷信息,可記錄的異常次數(shù)取決于分配的NVRAM空間大小。

      3.2 顯示異常信息

      對于異常中斷信息,還需要通過上位機進行解析,有兩種查看方式:

      (1)有監(jiān)視上位機的情況下,將異常中斷位置及其他異常信息傳輸給上位機,通過監(jiān)視上位機對異常信息進行顯示。

      (2)對于裝機狀態(tài),可在產(chǎn)品離線后,下載NVRAM數(shù)據(jù),使用上位機解析回看近幾次的異常中斷位置及其他異常信息。

      4 方案驗證

      針對該PowerPC的19種異常中斷,可以通過軟件和硬件的方式進行觸發(fā)。這里以除零異常,即IVOR33-浮點數(shù)運算異常為例,對初始化和周期任務中的異常中斷定位進行插樁驗證。

      對于初始化過程,借助NVRAM進行插樁。當軟件運行到插樁代碼時,先從NVRAM讀取提前設置好的插樁代碼的激活碼。當軟件初始化到插樁位置時,先將NVRAM中該激活碼置為無效,然后運行插樁代碼觸發(fā)異常,如圖2所示。

      圖2 利用NVRAM的插樁驗證過程

      采用這種觸發(fā)方式的好處是,當軟件在初始化過程中由于異常中斷復位后,下次可以正常初始化,避免軟件因為插樁導致異常而不斷復位。此時,上位機會顯示上一次異常中斷發(fā)生的位置,與.map文件查詢結果一致,并且顯示中斷號為33。下載NVRAM的數(shù)據(jù),可以查看到異常發(fā)生的模塊、異常中斷類型等詳細信息。

      對于周期任務,通過上位機指令激活插樁代碼的方式觸發(fā)異常??刂栖浖诎l(fā)生異常中斷后復位,復位后將上次發(fā)生的異常模塊及其他信息通過串口傳輸給上位機顯示。上位機顯示的異常中斷位置與.map文件查詢的異常中斷函數(shù)位置一致,并且顯示中斷號為33。在不同位置多次注入異常,下載NVRAM數(shù)據(jù),可以查看近幾次發(fā)生異常的模塊及異常發(fā)生前控制軟件的運行狀態(tài)。

      以上插樁驗證結果證明,本文設計的異常中斷定位方案有效。對于不便提供源碼和編譯文件的場景,可以采用本文設計的方案,作為工程試驗現(xiàn)場對控制軟件異常中斷定位的替代方案。

      5 結束語

      本文設計的方案主要是針對沒有源碼、沒有.map文件的控制軟件異常中斷進行定位,是對開發(fā)端現(xiàn)有異常中斷定位方法的補充。本文利用標記函數(shù)結合NVRAM對異常模塊進行標記,模塊可以是一個函數(shù),也可以是功能集,顆粒度可以根據(jù)代碼規(guī)模、硬件速度和時間余度等因素靈活設計。通過該方案,控制軟件發(fā)生異常中斷時,能夠將異常定位并記錄下來,在不依賴.map文件的情況下,通過上位機方便快捷地為用戶提供異常中斷信息。本文通過人為注入異常的方式,驗證了上述方案的可行性和正確性。

      猜你喜歡
      插樁源碼上位
      基于網(wǎng)頁源碼結構理解的自適應爬蟲代碼生成方法
      計算機應用(2023年6期)2023-07-03 14:11:56
      基于圖神經(jīng)網(wǎng)絡的軟件源碼漏洞檢測方法
      計算機時代(2023年6期)2023-06-15 17:49:09
      基于TXL的源代碼插樁技術研究
      企業(yè)如何保護源碼
      基于性能分析的自適應插樁框架
      特斯拉 風云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      基于記錄重播的嵌入式系統(tǒng)死鎖檢測方法
      軟件導刊(2017年12期)2018-01-09 13:01:23
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
      基于數(shù)據(jù)結構教輔系統(tǒng)的實驗課程改革
      計算機教育(2016年4期)2016-05-20 02:36:05
      乌兰察布市| 常熟市| 章丘市| 崇义县| 磐安县| 方正县| 张北县| 东乌珠穆沁旗| 紫阳县| 济阳县| 昌乐县| 公主岭市| 涞源县| 岑溪市| 丽水市| 松潘县| 平陆县| 凤山县| 沛县| 冕宁县| 闵行区| 隆昌县| 河曲县| 渑池县| 昂仁县| 闽侯县| 阳朔县| 双桥区| 图木舒克市| 陈巴尔虎旗| 苍梧县| 讷河市| 都匀市| 巴楚县| 伊春市| 乳山市| 罗江县| 汉中市| 尼木县| 黎平县| 泸水县|