在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

測量嵌入式系統(tǒng)中的代碼覆蓋率

星星科技指導(dǎo)員 ? 來源:microchip ? 作者:microchip ? 2023-04-23 10:50 ? 次閱讀

許多 軟件 開發(fā) 人員 測量 嵌入式 系統(tǒng) 中 的 代碼 覆蓋 率 使用 的 測試 系統(tǒng) 與 其 原始 設(shè)計(jì) 非常 不同。工程師知道這是一種糟糕的方法,但它很容易發(fā)生。就像沸騰的青蛙寓言一樣,不被注意的增量溫度變化會(huì)導(dǎo)致可憐的青蛙死亡。..。..

讓我們探討一下軟件開發(fā)人員的困境。

代碼覆蓋率通常發(fā)生在開發(fā)過程的后期。此時(shí),硬件和軟件都針對成本進(jìn)行了優(yōu)化,系統(tǒng)緊密滿足了指定的要求。在此階段開始代碼覆蓋率分析通常意味著將“printf”語句或某種類型的串行傳輸代碼添加到代碼的每個(gè)功能中,以便微控制器可以說“程序計(jì)數(shù)器= X”。在整個(gè)項(xiàng)目中添加這些代碼段后,代碼資源要求通常會(huì)超過成本優(yōu)化控制器的限制。一種替代方法是用更大的內(nèi)存變體替換微控制器(希望在同一封裝中提供一種)。執(zhí)行速度可能會(huì)因額外的代碼而陷入困境,因此也許可以提高MCU時(shí)鐘速度以提高系統(tǒng)性能?

該設(shè)備還需要一個(gè)通信通道來輸出信息。需要電線來拼接通信端口和收發(fā)器,以便計(jì)算機(jī)捕獲輸出流。如果沒有額外的引腳可用,則需要一塊新板來容納引腳數(shù)更高的微控制器。或者,所需的功能可以替換為代碼覆蓋例程,這需要多個(gè)軟件版本來測試塊中的代碼。

現(xiàn)在,代碼覆蓋功能已經(jīng)(痛苦地)添加,生成的數(shù)據(jù)日志文件非常龐大,笨拙,難以與原始源代碼相關(guān)聯(lián)。任何 注重 質(zhì)量 的 開發(fā) 人員 都會(huì) 問 “這個(gè) 測試 系統(tǒng) 如何 代表 原始 設(shè)計(jì)?

讓我們來看看代碼覆蓋率的優(yōu)點(diǎn)和局限性,MPLAB?代碼覆蓋率的工作原理,以及如何使用它來衡量嵌入式系統(tǒng)中的代碼覆蓋率。

優(yōu)點(diǎn)和局限性

適當(dāng)?shù)臏y試方法對于開發(fā)強(qiáng)大的嵌入式系統(tǒng)至關(guān)重要,正確使用代碼覆蓋率工具是確保測試完成工作的唯一方法。明智的代碼開發(fā)人員明白“未經(jīng)測試的代碼是損壞的代碼”。任何經(jīng)歷過產(chǎn)品召回的人都了解代碼覆蓋率對提高產(chǎn)品質(zhì)量帶來的價(jià)值。

具有最低代碼覆蓋率要求的代碼開發(fā)人員通常會(huì)驚訝于其初始代碼覆蓋率結(jié)果的低。編寫涵蓋特定流的測試代碼也可能非常困難。使用需要對原始設(shè)計(jì)進(jìn)行大量修改的工具會(huì)使這項(xiàng)工作進(jìn)一步復(fù)雜化。

代碼覆蓋率是一個(gè)看似簡單的等式:

執(zhí)行

的代碼量 ______ 代碼

總量 一個(gè)精明的工程師用 C 編寫嵌入式代碼,或者C++知道他們的代碼編譯成匯編代碼,可能會(huì)問:“計(jì)算哪個(gè)代碼?這是一個(gè)需要理解的重要問題,因?yàn)榇鸢敢蚬ぞ咛峁┥潭悾⑶視?huì)顯著影響此等式的結(jié)果。我們l 在本博客后面介紹 MPLAB 代碼覆蓋率實(shí)現(xiàn)。

一個(gè)常見的誤解是,覆蓋率為 100% 的代碼比覆蓋率為 95% 的代碼“更好”。代碼覆蓋率百分比指示測試套件對應(yīng)用程序的執(zhí)行程度。它沒有指示代碼效率低下、缺少功能、性能或正確性。

將測試方法與代碼覆蓋率工具區(qū)分開來也很重要。在互聯(lián)網(wǎng)上搜索,您可以找到聲稱語句覆蓋率、函數(shù)覆蓋率、分支覆蓋率、MC/DC 等的代碼覆蓋率工具。這些類型的描述可能會(huì)令人困惑,因?yàn)楣?yīng)商正在使用測試方法術(shù)語來描述其代碼覆蓋率工具。這是兩個(gè)不同的概念。分支覆蓋或 MC/DC 等測試方法描述了如何執(zhí)行源代碼。相反,代碼覆蓋率工具確定執(zhí)行了哪些機(jī)器指令。由于一行高級源代碼可以生成多個(gè)機(jī)器指令,因此該工具可以將一行源代碼指示為完全或部分執(zhí)行或根本不執(zhí)行。

MPLAB 代碼覆蓋

率的工作原理

對于初學(xué)者來說,MPLAB 代碼覆蓋率專為小型嵌入式系統(tǒng)而設(shè)計(jì)。它很特別,因?yàn)樗昧酥挥蠱PLAB XC編譯器才能掌握的有關(guān)您項(xiàng)目的知識(shí)。沒有工具比編譯器更了解您的代碼。由于Microchip制造了我們自己的編譯器,因此我們的代碼覆蓋率工具可以利用這些信息。

我們的編譯器知道所需的最小檢測點(diǎn)數(shù)量以及放置它們的位置,以最大程度地減少對代碼大小和性能的影響。我們的編譯器還知道有多少數(shù)據(jù)存儲(chǔ)器可用,并以最佳方式使用它來存儲(chǔ)運(yùn)行時(shí)信息。我們的分析表明,我們的MPLAB代碼覆蓋率工具使用的檢測點(diǎn)是競爭產(chǎn)品的一半到三分之一。而且由于它僅使用單個(gè)位集指令作為標(biāo)記,因此與基于“printf”指令的競爭對手解決方案的比較并不接近。MPLAB 代碼覆蓋率的影響非常小,通常為 《1%,以至于我們找不到無法使用其原始硬件執(zhí)行分析的項(xiàng)目。

MPLAB 代碼覆蓋率具有用于導(dǎo)航結(jié)果的便捷工具。每一行源代碼和匯編指令都被標(biāo)記為完全或部分執(zhí)行或根本不執(zhí)行。為了澄清這個(gè)問題,我們的工具分析了匯編指令級別的覆蓋范圍。因此,覆蓋率信息在匯編的MPLAB X集成開發(fā)環(huán)境(IDE)程序內(nèi)存窗口中本機(jī)顯示,但也被吸收以在源代碼窗口中顯示各種級別的執(zhí)行。支持源代碼和匯編指令代碼之間的快速跳轉(zhuǎn),以快速評估部分覆蓋的代碼。

顯示單個(gè)文件和函數(shù)以及項(xiàng)目級別的代碼覆蓋率。可以輕松打開和關(guān)閉突出顯示,以便于閱讀。儀表板跟蹤代碼覆蓋率進(jìn)度,只需按一下按鈕即可生成 HTML 報(bào)告。最重要的是,MPLAB代碼覆蓋率完全集成到Microchip的MPLAB X IDE中,可在工具之間輕松切換任務(wù),并在可配置的輸出窗口中顯示結(jié)果。

輕松測量嵌入式系統(tǒng)中

的代碼覆蓋率

MPLAB 代碼覆蓋率是市場上最簡單的代碼覆蓋率工具,只需在 MPLAB X IDE 中啟用它,然后構(gòu)建、編程、練習(xí)和讀取您的設(shè)備。

該工具巧妙地使用數(shù)據(jù)存儲(chǔ)器來存儲(chǔ)已解碼并在 IDE 中顯示的覆蓋范圍信息。這個(gè)過程非常獨(dú)特,受美國專利號10402309保護(hù)。它支持Microchip的所有PIC,SAM,AVR和DSPIC產(chǎn)品,適用于MPLAB XC編譯器的免費(fèi)版和專業(yè)版,并可作為工作站許可證提供。

審核編輯:郭婷

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

    關(guān)注

    5122

    文章

    19424

    瀏覽量

    312802
  • 測試系統(tǒng)
    +關(guān)注

    關(guān)注

    6

    文章

    847

    瀏覽量

    62613
  • MPLAB
    +關(guān)注

    關(guān)注

    9

    文章

    220

    瀏覽量

    67409
收藏 0人收藏

    評論

    相關(guān)推薦

    一文詳解Modelsim代碼覆蓋率功能使用

    作者:默宸? Modelsim代碼覆蓋率功能Code coverage,能報(bào)告出statement(語句)、branch(分支)、condition(條件)、expression(表達(dá)
    的頭像 發(fā)表于 12-09 11:45 ?6214次閱讀

    測量嵌入式軟件的代碼覆蓋率

    度還是從功能安全角度。 對于安全可靠的嵌入式設(shè)備,測試是質(zhì)量保證不可或缺的一部分。 安全關(guān)鍵型軟件開發(fā)標(biāo)準(zhǔn)對測試方法和測試覆蓋率設(shè)定了精確要求,這并非沒有道理。 通常,應(yīng)用程序越關(guān)鍵,對代碼
    發(fā)表于 07-14 14:50 ?1421次閱讀
    <b class='flag-5'>測量</b><b class='flag-5'>嵌入式</b>軟件的<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>

    怎么用Vivado做覆蓋率分析

    在做仿真的時(shí)候往往會(huì)去做代碼覆蓋率和功能覆蓋率的分析,來保證仿真是做的比較充分完備的。
    的頭像 發(fā)表于 01-03 12:34 ?2154次閱讀
    怎么用Vivado做<b class='flag-5'>覆蓋率</b>分析

    嵌入式仿真平臺(tái)SkyEye的覆蓋率分析相關(guān)資料下載

    代碼執(zhí)娜行覆蓋情況的功能,來檢測代碼未執(zhí)行覆蓋情況。在覆蓋率分析時(shí)需要分析
    發(fā)表于 12-17 07:27

    重點(diǎn)厘清覆蓋率相關(guān)的概念以及在芯片開發(fā)流程中跟覆蓋率相關(guān)的事項(xiàng)

    全盤考量。而覆蓋率,就是芯片工程,評審體系需要重點(diǎn)參考的一項(xiàng)技術(shù)指標(biāo),但也只是驗(yàn)證相關(guān)的其中一項(xiàng)。目前被業(yè)界廣泛采用的覆蓋率指標(biāo)有功能覆蓋率(Function Coverage)和
    發(fā)表于 09-14 11:57

    Verilog代碼覆蓋率檢查

    Verilog代碼覆蓋率檢查是檢查驗(yàn)證工作是否完全的重要方法,代碼覆蓋率(codecoverge)可以指示Verilog代碼描述的功能有多少
    發(fā)表于 04-29 12:35 ?8651次閱讀

    嵌入式代碼覆蓋率統(tǒng)計(jì)方法和經(jīng)驗(yàn)

    代碼覆蓋率是衡量軟件測試完成情況的指標(biāo),通常基于測試過程已檢查的程序源代碼比例計(jì)算得出。代碼覆蓋率
    的頭像 發(fā)表于 01-06 15:06 ?3337次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>統(tǒng)計(jì)方法和經(jīng)驗(yàn)

    嵌入式代碼覆蓋率如何進(jìn)行統(tǒng)計(jì)有哪些方法和經(jīng)驗(yàn)

    代碼覆蓋率是衡量軟件測試完成情況的指標(biāo),通常基于測試過程已檢查的程序源代碼比例 計(jì)算得出。代碼覆蓋率
    的頭像 發(fā)表于 01-09 11:12 ?3261次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>如何進(jìn)行統(tǒng)計(jì)有哪些方法和經(jīng)驗(yàn)

    統(tǒng)計(jì)嵌入式代碼覆蓋率的方法和經(jīng)驗(yàn)

    代碼覆蓋率是衡量軟件測試完成情況的指標(biāo),通常基于測試過程已檢查的程序源代碼比例計(jì)算得出。代碼覆蓋率
    的頭像 發(fā)表于 03-29 11:58 ?2143次閱讀
    統(tǒng)計(jì)<b class='flag-5'>嵌入式</b><b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>的方法和經(jīng)驗(yàn)

    怎么才能寫出高覆蓋率的Verilog代碼

    芯片前端工程,測試驗(yàn)證的核心理念:以提高覆蓋率為核心。設(shè)計(jì)工程師需要關(guān)心的主要有行覆蓋率(Block),條件覆蓋率(Expression),翻轉(zhuǎn)
    的頭像 發(fā)表于 06-01 10:13 ?2836次閱讀

    覆蓋率的Verilog代碼的編寫技巧

    設(shè)計(jì)工程師需要關(guān)心的主要有行覆蓋率(Block),條件覆蓋率(Expression),翻轉(zhuǎn)覆蓋率(Toggle),狀態(tài)機(jī)覆蓋率。本文從ASIC設(shè)計(jì)的角度上來討論,如何寫出高
    的頭像 發(fā)表于 05-26 17:30 ?4484次閱讀

    如何使用覆蓋率指標(biāo)進(jìn)行更有效的嵌入式軟件測試

      聲明、決策或 MC/DC 覆蓋率等指標(biāo)并不能保證軟件沒有缺陷。如前所述,真正詳盡的測試可能是不可能的,或者至少是不可行的。然而,結(jié)構(gòu)覆蓋率度量可以更好地了解代碼的可靠性和對測試的更大信心。
    的頭像 發(fā)表于 06-29 10:20 ?1716次閱讀

    更好地測量代碼覆蓋率的 9 個(gè)技巧

    測量代碼覆蓋率對于嵌入式系統(tǒng)來說越來越重要,但需要一些經(jīng)驗(yàn)。這是因?yàn)橛幸恍┱系K需要克服,尤其是小目標(biāo)。但是,使用正確的方法和合適的工具,無需
    的頭像 發(fā)表于 07-14 15:58 ?3217次閱讀
    更好地<b class='flag-5'>測量</b><b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>的 9 個(gè)技巧

    代碼覆蓋率工具的重要性

    測試覆蓋率是軟件質(zhì)量的重要指標(biāo),也是軟件維護(hù)的重要組成部分。它通過提供不同承保項(xiàng)目的數(shù)據(jù)來幫助評估測試的有效性。這種洞察力允許通過為未經(jīng)測試的代碼定義新的測試用例來改進(jìn)測試,從而提高代碼質(zhì)量,最終增加
    的頭像 發(fā)表于 12-08 15:13 ?1637次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>工具的重要性

    代碼覆蓋率記錄

    為確保具體的產(chǎn)品(例如,醫(yī)療或航空電子市場)質(zhì)量合格, 通常需要提供語句覆蓋與判定覆蓋認(rèn)證證明。對于各種嵌 入系統(tǒng),規(guī)范要求高度優(yōu)化的代碼
    發(fā)表于 11-03 11:02 ?0次下載
    <b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>記錄
    主站蜘蛛池模板: 五月激情片 | 日韩在线免费看网站 | 久久午夜精品 | 性色在线播放 | 免费在线视频播放 | 亚欧免费视频一区二区三区 | 99视频精品全国免费 | 日韩欧美亚洲综合久久影院d3 | 国产精品福利在线观看免费不卡 | 天堂资源8中文最新版在线 天堂资源地址在线 | 三级黄色录像 | 在线观看免费视频网站色 | 在线电影你懂得 | 国内自拍欧美 | 最新亚洲一区二区三区四区 | se97se成人亚洲网站 | 2018天天干天天射 | 日本拍拍| 欧美成人猛男性色生活 | 黑色丝袜美美女被躁视频 | 四虎永久在线精品 | 日本特黄视频 | 狠狠干狠狠艹 | 四虎影视最新 | 天天射干| 宅男午夜视频在线观看 | 中文天堂 | 男女一进一出抽搐免费视频 | 五月婷婷色播 | 免费人成在线观看网站品爱网日本 | 激情五月婷婷综合网 | 黄视频网站在线观看 | 久久婷婷久久一区二区三区 | xxx69日本hd| 狼狼色丁香久久女婷婷综合 | 二级黄绝大片中国免费视频0 | 欧美性一区二区三区 | 在线观看h视频 | 亚洲第一黄色网 | 美女黄频 | 亚洲国产成人精品久久 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品