Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

高可靠性飛行程式碼的自動化驗證技術

上網時間: 2012年09月11日     打印版  Bookmark and Share  字型大小:  

關鍵字:程式碼驗證  自動化驗證  可靠性  MATLAB  Simulink 

作者:Tom Erkkinen

嵌入式應用程式經理

MathWorks

從模擬模型自動產生程式碼是基於模型設計中的關鍵開發環節,可實質性地減少開發團隊手寫程式碼所花費的時間和工作量。要想成功開發高性能的嵌入式系統,就必須產生非常高效的程式碼。程式碼效率目標包括記憶體使用的最小化和執行速度的最大化。要想成功部署軍用和國防系統,還需要嚴格的程式碼驗證能力。程式碼驗證目標包括需求符合性和標準符合性。

本文介紹如何使用2011b版MATLAB和Simulink系列產品(包括用於飛行程式碼產生的Embedded Coder)測量程式碼效率和進行程式碼驗證。所討論的開發和驗證活動用於滿足DO-178B和DO-178C要求,同時也用於滿足與DO-178C更新一同發佈的基於模型的開發和驗證的補充說明。本文並非介紹系列產品中的每個工具或DO-178標準的所有條款;恰恰相反,本文關注的重點是新技術。Qualification Kit適用於本文介紹的驗證工具。

原始程式碼評估

程式碼效率

程式碼效率指標分為兩個廣泛的類別。第一個測量RAM、ROM的記憶體使用率和堆疊大小;第二個測量執行週期計數或速度。Embedded Coder在產生程式碼後產生程式碼指標報告,因而幫助軟體工程師分析和最佳化所產生程式碼的記憶體占用率。此報告可根據原始程式碼的靜態分析和對目標硬體特性的瞭解(如整型字長)顯示各行程式碼、全局RAM和堆疊大小。分析是靜態的,因為它並不考慮交叉編譯和程式碼執行。這樣,工程師可以快速的根據原始程式碼最佳化記憶體使用率,例如,透過嘗試不同的資料類型或修改模型中的邏輯。但是,接下來的分析和最佳化階段將需要完整的嵌入式工具鏈來進行板上記憶體利用和執行時間評估,如下文中的可執行目標程式碼評估中所述(圖1)。


圖1:靜態程式碼指標報告 。

程式碼驗證

原始程式碼驗證很大程度上依賴於程式碼審查和需求可追溯性分析。MathWorks的新產品Simulink Code Inspector可對產生的原始程式碼自動執行結構化分析並評估程式碼是否符合詳細設計(low-level requirements)模型。該檢查可檢測每一行程式碼在模型中是否都具有相應的元素或模組。同樣,它還可以檢測模型中的元素以確定它們在結構上是否相當於產生程式碼中的作業、運算符和資料。然後,它會產生詳細的模型到程式碼和程式碼到模型的可追溯性分析報告(圖2)。


圖2:Simulink Code Inspector報告。

其他原始程式碼驗證活動包括確保符合產業程式碼標準(如MISRA AC AGC:有關在自動程式碼產生過程中應用MISRA-C:2004的指南)。借助R2011a版,Embedded Coder允許開發人員基於MISRA-C標準影響程式碼產生器的輸出。這樣MISRA-C分析工具就可以應用於程式碼檢查。例如,Polyspace程式碼驗證產品可分析MISRA AC AGC和MISRA-C:2004程式碼。Polyspace還可檢測程式碼是否具有除零和數組超出邊界條件等執行時錯誤。Simulink Code Inspector結合Polyspace,適用於處理DO-178表A5中的所有涉及原始程式碼分析的程式碼驗證目標。最差情形執行時間等目標將需要使用可執行目標程式碼以及如下所述的其它技術和工具(圖3)。


圖3:MISRA-C:2004程式碼產生目標規格。


1 • 2 Next Page Last Page



投票數:   加入我的最愛
我來評論 - 高可靠性飛行程式碼的自動化驗證技術
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首