国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在基于模型的自動代碼生成器中建立信任

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:S. Tucker Taft ? 2022-06-29 10:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

您如何建立對用于安全關鍵系統的自動代碼生成器的信任?例如,給定一個代碼生成器,它采用 Simulink 和 Stateflow 中表示的飛行控制系統的實時模型并將其轉換為 MISRA C 或 Ada 的 SPARK 子集,什么過程可以確保生成的代碼是真實的表示原來的實時模型?美國聯邦航空管理局 (FAA) 有一個定義明確的過程來創建合格的代碼生成器,這意味著代碼生成器的輸出可以被信任以與輸入模型的語義完全匹配,沒有遺漏,也沒有添加任何內容。此過程在 DO-178C(機載系統中的軟件考慮)中定義,

對于像代碼生成器這樣的工具,它可能會在機載系統中插入錯誤,如果該工具要用于其故障可能發生的子系統,則需要最高級別的工具認證(工具認證級別 1 (TQL-1))是災難性的(A 級子系統)。

毫不奇怪,這種級別的工具鑒定可能涉及大量的時間和精力,通常估計為工具的每 1,000 個源代碼行 (KSLOC) 需要數百小時。這類似于驗證 A 級安全關鍵嵌入式軟件組件所需的每條線路的工作量。但是工具可以是更多的代碼行。例如,如果該工具是 100 KSLOC,則在 A 級進行驗證的傳統方法可能花費大約 500 萬美元。因此,有強烈的動機去研究測試這種工具的替代方法,同時仍然實現 TQL-1 目標。

傳統的測試方法

驗證高完整性應用程序的傳統方法要求測試人員:

仔細定義和驗證應用程序的一組高級需求

從高級需求中導出模塊級需求,這些需求足夠具體以確定適當的實現

使用單元測試檢查實現的每個模塊是否符合其低級需求

對所有高級需求執行集成級測試

然后執行覆蓋率分析以確保所有代碼都被這些測試覆蓋,并確保應用程序中沒有剩余的代碼可能會提供額外的、不需要的功能。

對于嵌入式軟件組件,每個模塊的單元級測試和整個組件的集成級測試的組合可以很好地工作。特別是嵌入式軟件模塊的單元測試是實用的,因為在許多情況下,每個模塊的輸入的數量和復雜性是可控的,并且輸出相對容易識別和檢查。然而,對于像自動代碼生成器這樣的工具,它通常涉及多個階段,涉及將輸入模型逐步轉換為生成的代碼,單元測試可能是一個真正的挑戰。另一方面,對于這樣的工具,集成測試并不難,因為中間階段的數量不會影響工具的整體輸入和輸出。

圖 1 說明了單元測試的復雜性和代碼生成器等多階段工具的集成測試相對容易性之間的這種二分法。

pYYBAGK7vReAX8zUAACpGeORK-M492.png

【圖1 | 由于易于使用,集成測試優于單元測試。]

在圖 1 中,我們展示了優化自動代碼生成器的整體數據流,其中輸入模型稱為“用戶語言”,輸出稱為“源代碼”。多個階段流水線化,第一階段讀取以用戶語言 (M 0 ) 表示的原始模型,并以某種內部數據結構 (M 1 ) 表示模型。然后將其轉換為模型的較低級別表示(M 2 , M 3等),直到最后階段以所需的編程語言生成實際的源代碼。要執行集成測試,只需使用普通模型創建工具準備一個以用戶語言表示的模型,將其輸入代碼生成器,然后檢查生成的源代碼,以確定它是否滿足高級需求。形式和功能,使用該編程語言的普通編譯器、靜態分析和測試工具。

相比之下,對多階段代碼生成器的每個階段執行單元測試要復雜得多。必須為給定階段的每個測試構造一個內部數據結構,該結構符合用于該階段輸入的表示,然后需要在該輸入上調用該階段,然后必須檢查輸出表示以查看它是否具有預期的形式和內容。準備此類輸入并檢查此類輸出需要費力的手動過程或創建特殊工具,這些工具本身可能需要資格認證。

集成單元測試

考慮到單元測試的復雜性,已經開發了一種替代方法,稱為集成單元測試。圖 2 說明了這種方法:

poYBAGK7vRyAclQwAAFlCXvSF3I670.png

【圖2 | 集成單元測試方法是單元測試的一種更簡單的替代方法]

在圖 2 中,我們展示了一個將單元測試需求監視器和單元測試預言(一個“知道”所需輸出的檢查器)直接嵌入到工具結構中的過程。將這些監視器和檢查器嵌入工具中,然后我們按照用于正常集成測試的步驟,準備代表性模型(測試0到測試4) 并通過代碼生成器提供給它們。但是現在,不僅僅是等待工具生成最終輸出,每個嵌入式單元測試需求監視器都會跟蹤其相關階段的輸入是否與其關聯的單元測試匹配,如果匹配,它會記錄該事實,然后觸發相應的基于 oracle 的單元測試檢查器,該檢查器驗證階段的輸出是否對應于特定測試模式的輸入的預期轉換。

例如,假設我們已經定義了將模型級別的增益模塊特定轉換為代碼級別的表達式,該表達式將信號變量的值乘以常數。每次增益塊出現在其模型級輸入表示中時,我們都會有一個單元測試需求監視器記錄,當它出現時,觸發基于 oracle 的檢查器查看代碼級輸出表示以確保它涉及適當的信號變量乘以適當的常數。這是一個非常簡單的檢查,只要有足夠多的模型作為一個整體通過工具,就可以預期覆蓋這個特定的單元測試模式。

通過該工具運行多個模型后,我們可以得到一個類似于圖 2 的表格。在左側,我們有模型,從 Test 0到 Test 4。在頂部,我們有工具每個不同階段的測試需求和測試預言對。例如,tr 0,2表示階段 0 的測試要求 2,而2,1表示階段 2 的測試預言 1。每當一個階段的特定輸入滿足與某個測試需求關聯的測試模式時,我們將在輸入模型行的需求列中看到一個 SAT。每次調用測試 oracle 時,我們都會在輸入模型行的 oracle 列中看到 PASS 或 FAIL。如果我們最終得到一個空列,則永遠不會遇到測試模式(未涵蓋相應的低級需求)。如果我們最終在 test-oracle 列中出現 FAIL,這意味著我們有一個測試失敗(相應的低級需求沒有正確實現)。在圖 2 所示的表格中,我們看到 tr 0,1和 tr 2,0沒有被覆蓋,而 to 0,2和 to 2,1有失敗。這樣的表格記錄了完整的單元測試過程,同時避免了為每個測試模式準備特殊輸入的費用。

受信任的代碼生成器

如果我們要越來越依賴此類工具來幫助從更高級別的模型自動生成安全關鍵軟件,那么建立對代碼生成器的信任至關重要。但是,需要創新方法來管理以最高信任級別 TQL-1 實現現代優化代碼生成器的工具認證的潛在高昂費用。集成單元測試就是這樣一種方法。當與其他正式指定需求的系統方法相結合,并根據這些需求生成需求監控器和預言機等組件時,就有可能以一種不僅更具成本效益,而且支持增量認證的方式實現 TQL-1。工具進化。AdaCore 正在使用這些方法驗證其 QGen 代碼生成器。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5198

    文章

    20449

    瀏覽量

    334056
  • 源代碼
    +關注

    關注

    96

    文章

    2953

    瀏覽量

    70324
  • 編譯器
    +關注

    關注

    1

    文章

    1672

    瀏覽量

    51610
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何在LTspice仿真中實現偽隨機數和真隨機數的生成

    to reseed the MC generator(使用時鐘重新設置MC生成器的隨機種子)選項。文章探討了偽隨機數和真隨機數之間的利弊權衡,同時比較了蒙特卡羅統計仿真與更有針對性的最壞情況仿真之間的差異。
    的頭像 發表于 01-09 14:08 ?4686次閱讀
    如何在LTspice仿真中實現偽隨機數和真隨機數的<b class='flag-5'>生成</b>

    語法糾錯和testbench的自動生成

    ;path 如果環境變量添加成功后,可以cmd查看xvlog的版本: 然后該拓展設置中選擇linting的工具為xvlog: 選擇后,寫完Verilog
    發表于 10-27 07:07

    如何通過地址生成器實現神經網絡特征圖的padding?

    一些內存(BRAM),但是考慮到我們設計的網絡為五層卷積池化結構,特征圖BRAM每層卷積結束之后都進行存儲的復用,因此其大小取決于最大特征圖大小,因此使用稀疏地址生成器并不能大量減少存儲資源消耗
    發表于 10-22 08:15

    使用Simulink自動生成浮點運算HDL代碼(Part 1)

    引言 想要實現浮點運算功能,如果自己寫Verilog代碼,需要花費較多的時間和精力。好在Simulink HDL Coder工具箱提供了自動代碼生成技術。下圖展示了HDL Coder如
    發表于 10-22 06:48

    看不見的安全防線:信而泰儀表如何驗證零信任有效性

    要求,零信任都能提供靈活且高安全性的解決方案。以下是一些典型的零信任應用場景: 在混合云環境,能進行跨云資源的細粒度策略執行,避免數據泄露; ? 遠程辦公場景
    發表于 09-09 15:33

    非對稱密鑰生成和轉換規格詳解

    生成 以字符串參數生成RSA密鑰,具體的“字符串參數”由“RSA密鑰類型”和“素數個數”使用符號“|”拼接而成,用于創建非對稱密鑰生成器時,指定密鑰規格。 說明:
    發表于 09-01 07:50

    為什么無法DAVE? IDE 中導入和編譯 XMC4402/XMC4200 項目?

    該項目不可用。 2)即使項目出現在工作區,我也無法編譯它。 3 此外,導入后DAVE?代碼生成器不起作用。
    發表于 08-08 07:19

    模型自適應控制永磁同步電機轉速的仿真研究

    估計動態系統非線性函數和控制律;基于系統輸出誤差提出三個控制規則生成恰當信號控制電機轉速。 Simulink 環境下建立控制器和永磁同步電機轉速仿真系統,仿真分析結果驗證了提出方法控制電機轉速
    發表于 06-25 13:01

    使用s32ds軟件時,無法生成是怎么回事?

    使用s32ds軟件時,無法生成,并顯示以下錯誤消息。 請幫忙。 生成器:錯誤:錯誤:LinStackCfg.npf 行:5 “bus_clock” - 語法錯誤
    發表于 04-04 08:04

    “Quantum Origin”成首個獲NIST驗證的軟件量子隨機數生成器

    -Quantinuum的“Quantum Origin”成為首個通過NIST驗證的軟件量子隨機數生成器 Quantum Origin獲得NIST SP 800-90B對其驗證熵源的批準 增強了聯邦
    的頭像 發表于 04-03 15:22 ?889次閱讀

    ADC PAL,當ADC讀數超過閾值時、是否有辦法生成中斷?

    生成中斷,是否有其他方法可以根據閾值輸入自動調用函數? 此外,我們可以 MPC5775B 中使用 SDADC 嗎?如果是,SDADC 是否有任何解決方案來滿足上述要求? 我搜索
    發表于 04-02 08:30

    EB Tresos狀態顯示無法運行生成器是什么原因導致的?

    我正在嘗試集成 MCAL 包,但在生成過程收到如下驗證錯誤:“無法為模塊”Dio_TS_T40D2M20I0R0“運行生成器
    發表于 04-02 08:06

    使用 QWQ:32B 模型搭配 VSCode 的 Cline 插件實現自動代碼編程!

    作者:算力魔方創始人/英特爾創新大使劉力 一,概述 隨著人工智能技術的快速發展,自動化編程工具逐漸成為開發者的得力助手。QWQ:32B 模型是一種先進的自然語言處理模型,能夠理解并生成
    的頭像 發表于 03-21 18:12 ?1317次閱讀
    使用 QWQ:32B <b class='flag-5'>模型</b>搭配 VSCode 的 Cline 插件實現<b class='flag-5'>自動</b>化<b class='flag-5'>代碼</b>編程!

    DS855調相直接數字合成器適合哪些場景?

    :DS855可作為射頻信號源生成器,廣泛應用于各種射頻測試與應用場景。其精確的頻率與相位控制能力使其能夠生成高質量的射頻信號,滿足射頻測試與應用的多樣化需求。儀器與半導體測試儀:儀器與半導體測試儀
    發表于 03-21 09:28

    《AI Agent 應用與項目實戰》閱讀心得3——RAG架構與部署本地知識庫

    應用。第六章深入探討了RAG架構的工作原理,該技術通過推理過程實時檢索和注入外部知識來增強模型生成能力。RAG架構的核心是檢索器和生成器
    發表于 03-07 19:49