chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

MATLAB ? 來源:djl ? 作者:龔小平 ? 2019-09-16 16:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

所選用的C語言標(biāo)準(zhǔn):C90/C99

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

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

目標(biāo)處理器類型:定義不同數(shù)據(jù)類型的大小和字節(jié)順序類型,如mpc5xx系列處理器定義如下:

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

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

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

2.選擇驗(yàn)證分析模式

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

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

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

Function_sub(){ ……};

Function_top(){……

Function_sub();

……};

自動生成的main函數(shù)中只調(diào)用Function_top:在分析Function_top的進(jìn)程中分析Function_sub,即Function_sub在Function_top的上下文中被分析。

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

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

— 總結(jié) —

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

往期 | 代碼分析驗(yàn)證

Polyspace應(yīng)用到軟件開發(fā)和驗(yàn)證流程

淺談Polyspace的靜態(tài)分析

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20069

    瀏覽量

    242793
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1665

    瀏覽量

    50854
  • C代碼
    +關(guān)注

    關(guān)注

    1

    文章

    90

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Perforce QAC產(chǎn)品簡介:面向C/C++的靜態(tài)代碼分析工具(已通過SO 26262認(rèn)證)

    Perforce QAC專為C/C++開發(fā)者打造,支持多種編碼規(guī)范、功能安全標(biāo)準(zhǔn)(ISO 26262)等,廣泛用于汽車、醫(yī)療、嵌入式開發(fā)領(lǐng)域,可幫助快速識別關(guān)鍵缺陷、提升代碼質(zhì)量、實(shí)現(xiàn)合規(guī)交付。
    的頭像 發(fā)表于 07-10 15:57 ?615次閱讀
    Perforce QAC產(chǎn)品<b class='flag-5'>簡介</b>:面向<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++的靜態(tài)<b class='flag-5'>代碼</b><b class='flag-5'>分析</b>工具(已通過SO 26262認(rèn)證)

    零極點(diǎn)仿真分析簡介

    零極點(diǎn)分析是用于確定電路頻率響應(yīng)特性的關(guān)鍵方法,通過找到傳遞函數(shù)的零點(diǎn)和極點(diǎn)來分析電路的穩(wěn)定性和頻率響應(yīng)。
    的頭像 發(fā)表于 05-28 17:33 ?696次閱讀
    零極點(diǎn)仿真<b class='flag-5'>分析</b><b class='flag-5'>簡介</b>

    N6715C?基礎(chǔ)型定制配置直流電源分析

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

    電池電量計的通信、配置、數(shù)據(jù)內(nèi)存訪問以及相關(guān)代碼示例

    基礎(chǔ)電量計命令:電量計通過命令與主機(jī)控制器通信,命令類似寄存器,如讀取充電狀態(tài)的命令StateOfCharge(),其命令代碼為0x1C和0x1D 。命令分為標(biāo)準(zhǔn)命令(用于獲取測量結(jié)果和更改部分配置參數(shù))和擴(kuò)展命令(主要用于訪問
    發(fā)表于 03-11 15:45 ?0次下載

    貼片電感的感值代碼與讀取方法

    貼片電感作為電子電路中的重要元件,其感值的準(zhǔn)確性和讀取方法的便捷性對于電路的性能至關(guān)重要。本文將詳細(xì)介紹貼片電感的感值代碼及其讀取方法。 貼片電感的感值代碼通常采用數(shù)碼表示法,這種
    的頭像 發(fā)表于 03-06 14:15 ?1029次閱讀
    貼片電感的感值<b class='flag-5'>代碼</b>與讀取<b class='flag-5'>方法</b>

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

    電子發(fā)燒友網(wǎng)站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費(fèi)下載
    發(fā)表于 02-26 17:32 ?677次下載

    代碼加密、源代碼防泄漏c/c++與git服務(wù)器開發(fā)環(huán)境

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

    分析C語言代碼結(jié)構(gòu)的設(shè)計問題

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

    伺服故障代碼有哪些?哪些處理方法?

    伺服故障代碼有哪些?哪些處理方法?以三菱伺服驅(qū)動器為例,下面為故障代碼分類及處理方法如下: 一、電源及連接類故障 ? ? ? 1. AL.E6/ALE6.1 - 伺服緊急停止 ? ?
    的頭像 發(fā)表于 02-06 14:06 ?1.1w次閱讀
    伺服故障<b class='flag-5'>代碼</b>有哪些?哪些處理<b class='flag-5'>方法</b>?

    gitee 常見問題及解決方法

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

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

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

    閃電定位儀的日常維護(hù)方法簡介

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

    AIC3254的miniDSP編寫代碼和編寫C5502代碼有什么區(qū)別?

    問題:AIC3254的miniDSP編寫代碼和編寫C5502代碼有什么區(qū)別,執(zhí)行速度和代碼量來進(jìn)行分析吧,謝謝回復(fù)
    發(fā)表于 11-06 07:22

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

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

    Linux環(huán)境變量配置方法

    Linux上環(huán)境變量配置分為設(shè)置永久變量和臨時變量兩種。環(huán)境變量設(shè)置方法同時要考慮環(huán)境Shell類型,不同類型的SHELL設(shè)置臨時變量方法和設(shè)置永久變量對應(yīng)的配置文件不同。Linux環(huán)
    的頭像 發(fā)表于 10-23 13:39 ?1057次閱讀