女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

分享配置Polyspace分析C代碼的方法和簡介

MATLAB ? 來源:djl ? 作者:龔小平 ? 2019-09-16 16:28 ? 次閱讀

Polyspace可以分析C、C++以及Ada代碼,本文以嵌入式系統中最為常見的C代碼分析為例說明Polyspace配置一個工程的過程和注意事項。

1. 配置語言和處理器類型

C語言由于其靈活性,在不同的編譯器中有不同的約束和擴展,會影響最終生成的目標碼的行為。Polyspace分析C代碼時首先要最大程度和目標編譯器的行為保持一致,這樣才能保持代碼分析的意義。因此在開始創建Polyspace工程時,我們需要配置編譯器和處理器類型:

分享配置Polyspace分析C代碼的方法和簡介

所選用的C語言標準:C90/C99

所用編譯器類型:Keil/Tasking/Diab/IAR…

(編譯器通常定義了標準C語言之外的擴展,如關鍵字sfr、sbit等。選定編譯器類型相當于告知了Polyspace在遇到此類非標擴展時如何解釋其行為。)

目標處理器類型:定義不同數據類型的大小和字節順序類型,如mpc5xx系列處理器定義如下:

分享配置Polyspace分析C代碼的方法和簡介

(某些運行時錯誤檢查與此有關,如同一變量在Int定義為16位時會發生溢出,而在Int定義為32位時不會發生溢出。)

其他編譯器行為設定:如負除取整方向、有符號數右移邏輯、枚舉類型定義方式等。

2.選擇驗證分析模式

Polyspace有兩種基本的驗證分析模式:應用級分析和模塊級分析,可以分別對應于集成測試和單元測試。

所謂應用級分析指用戶待分析的源代碼中包含了 main函數,選擇應用級分析即分析進程從用戶main函數入口,為了更好地模擬實際程序運行和調度情形,有時需要進行多任務(Multitasking)設置,有機會在以后再進一步介紹。

模塊級分析通常待分析代碼不包含main函數,Polyspace會自動打樁生成main函數并建立待分析函數的調用關系進行分析,并可進一步根據需要細化配置。如對于以下被調函數Function_sub和主調函數Function_top,可以設置為以下兩種分析入口形式:

Function_sub(){ ……};

Function_top(){……

Function_sub();

……};

自動生成的main函數中只調用Function_top:在分析Function_top的進程中分析Function_sub,即Function_sub在Function_top的上下文中被分析。

自動生成的main函數中同時調用Function_top和Function_sub:Function_sub除了在Function_top的上下文中被分析,也會在直接在main函數上下文中被分析。對應的可能場景是Function_sub會被其他函數調用,需要更為魯棒地分析其安全性。

分享配置Polyspace分析C代碼的方法和簡介

— 總結 —

Polyspace的配置是一個既簡單又靈活的過程,通過對編譯器行為的模擬和分析模型的選擇,我們可以得到更為有意義和更符合需要的結果。

往期 | 代碼分析驗證

Polyspace應用到軟件開發和驗證流程

淺談Polyspace的靜態分析

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

    關注

    68

    文章

    19801

    瀏覽量

    233517
  • 編譯器
    +關注

    關注

    1

    文章

    1654

    瀏覽量

    49886
  • C代碼
    +關注

    關注

    1

    文章

    90

    瀏覽量

    14672
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    零極點仿真分析簡介

    零極點分析是用于確定電路頻率響應特性的關鍵方法,通過找到傳遞函數的零點和極點來分析電路的穩定性和頻率響應。
    的頭像 發表于 05-28 17:33 ?361次閱讀
    零極點仿真<b class='flag-5'>分析</b><b class='flag-5'>簡介</b>

    N6715C?基礎型定制配置直流電源分析

    N6715C?基礎型定制配置直流電源分析儀 ? 綜述 N6715C 是一款可定制的直流電源分析儀系統,在裝運之前已經過全面測試并組裝完畢。
    的頭像 發表于 05-09 17:30 ?141次閱讀
    N6715<b class='flag-5'>C</b>?基礎型定制<b class='flag-5'>配置</b>直流電源<b class='flag-5'>分析</b>儀

    電池電量計的通信、配置、數據內存訪問以及相關代碼示例

    基礎電量計命令:電量計通過命令與主機控制器通信,命令類似寄存器,如讀取充電狀態的命令StateOfCharge(),其命令代碼為0x1C和0x1D 。命令分為標準命令(用于獲取測量結果和更改部分配置參數)和擴展命令(主要用于訪問
    發表于 03-11 15:45 ?0次下載

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發燒友網站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發表于 02-26 17:32 ?658次下載

    代碼加密、源代碼防泄漏c/c++與git服務器開發環境

    代碼加密對于很多研發性單位來說是至關重要的,當然每家企業的業務需求不同所用的開發環境及開發語言也不盡相同,今天主要來講一下c++及git開發環境的源代碼防泄密保護方案。企業源代碼泄密
    的頭像 發表于 02-12 15:26 ?454次閱讀
    源<b class='flag-5'>代碼</b>加密、源<b class='flag-5'>代碼</b>防泄漏<b class='flag-5'>c</b>/<b class='flag-5'>c</b>++與git服務器開發環境

    分析C語言代碼結構的設計問題

    分析一個C語言代碼結構的設計問題。 這段代碼,使用了兩次malloc,分別給 p1 和 p2 申請了內存。用完后,內存釋放,防止內存泄漏。 大家覺得,這樣的
    的頭像 發表于 02-11 09:31 ?307次閱讀

    gitee 常見問題及解決方法

    Gitee作為國內的代碼托管平臺,在使用過程中可能會遇到一些問題。以下是一些常見問題及其解決方法: 一、倉庫創建與代碼推送問題 倉庫已存在遠程配置 問題 :在嘗試為已有項目添加遠程倉庫
    的頭像 發表于 01-06 10:06 ?1119次閱讀

    三星貼片電容識別容值代碼方法

    三星貼片電容的容值代碼識別方法主要基于其型號編碼中的特定部分。以下是一個詳細的識別步驟和說明: ? ?一、識別容值代碼的基本步驟 ? ?查看型號編碼: ? ?三星貼片電容的型號編碼通常包含多個部分
    的頭像 發表于 12-13 16:17 ?692次閱讀
    三星貼片電容識別容值<b class='flag-5'>代碼</b><b class='flag-5'>方法</b>

    閃電定位儀的日常維護方法簡介

    閃電定位儀的日常維護方法簡介
    發表于 11-13 16:32 ?0次下載

    AIC3254的miniDSP編寫代碼和編寫C5502代碼有什么區別?

    問題:AIC3254的miniDSP編寫代碼和編寫C5502代碼有什么區別,執行速度和代碼量來進行分析吧,謝謝回復
    發表于 11-06 07:22

    一種簡單高效配置FPGA的方法

    本文描述了一種簡單高效配置FPGA的方法,該方法利用微處理器從串行外圍接口(SPI)閃存配置FPGA設備。這種方法減少了硬件組件、板空間和成
    的頭像 發表于 10-24 14:57 ?1383次閱讀
    一種簡單高效<b class='flag-5'>配置</b>FPGA的<b class='flag-5'>方法</b>

    Linux環境變量配置方法

    Linux上環境變量配置分為設置永久變量和臨時變量兩種。環境變量設置方法同時要考慮環境Shell類型,不同類型的SHELL設置臨時變量方法和設置永久變量對應的配置文件不同。Linux環
    的頭像 發表于 10-23 13:39 ?562次閱讀

    hex文件如何查看原c語言代碼

    是處理器可以直接執行的指令,而 C 語言代碼則是人類可讀的高級編程語言代碼。 然而,如果你想要從 .hex 文件中獲取一些有用的信息或者對程序進行分析,你可以考慮以下幾種
    的頭像 發表于 09-02 10:37 ?4361次閱讀

    如何使用Polyspace Code Prover來統計堆棧

    前一篇文章介紹了堆棧和內存的一些背景知識。本次介紹如何使用 Polyspace Code Prover來統計堆棧,如何使用這些數據為軟件優化服務。
    的頭像 發表于 07-25 14:06 ?1035次閱讀
    如何使用<b class='flag-5'>Polyspace</b> Code Prover來統計堆棧

    歐姆龍EtherCAT配置方法

    歐姆龍EtherCAT配置方法
    的頭像 發表于 06-13 16:03 ?1848次閱讀
    歐姆龍EtherCAT<b class='flag-5'>配置</b><b class='flag-5'>方法</b>