欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

使用Percepio Tracealyzer等RTOS跟蹤工具可以找到并分析調(diào)試嵌入式軟件時的錯誤

5RJg_mcuworld ? 來源:未知 ? 作者:李倩 ? 2018-09-12 16:43 ? 次閱讀

眾所周知,單獨的源代碼并不給出基于RTOS的固件實際行為的全貌表現(xiàn)。實時行為還取決于許多其他因素,如任務(wù)和中斷的定時,輸入和實時操作系統(tǒng)的配置。

Tracealyzer提供了前所未有的洞察基于RTOS的軟件的運行世界功能,從而改善開發(fā)效率,減少上市時間,及更好的軟件質(zhì)量。使用Tracealyzer,可以記錄RTOS及應(yīng)用的實時行為,并具有強大的可視化功能,提供前所未有的洞察運行時狀態(tài)的能力。這有助于加速基于RTOS的軟件開發(fā)、驗證和調(diào)試。

Tracealyzer支持FreeRTOS,uC/OS-III,VxWorks以及Linux的跟蹤。

近日,由《嵌入式系統(tǒng)編程》雜志的前任主編兼行業(yè)資深人士邁克爾?巴爾(Michael Barr)撰寫的三本關(guān)于軟件漏洞主題的書籍,不僅列出了錯誤,還提出了避免它們的設(shè)計模式。

良好的設(shè)計模式是非常寶貴的,但無論如何錯誤總是難以避免的。在調(diào)試嵌入式軟件時,使用Percepio Tracealyzer等RTOS跟蹤工具可以找到并分析這些錯誤中的至少五個。

1、抖動

如果軟件系統(tǒng)中有一項需要定期執(zhí)行的任務(wù),例如每10毫秒讀取一次模數(shù)轉(zhuǎn)換器,那么它就擁有一個對隨機延遲敏感的系統(tǒng) - 也稱為抖動。如果10 ms間隔降低到10±2 ms,則計算精度會相應(yīng)降低。

為了最大限度地減少抖動,邁克爾?巴爾指出需要微調(diào)任務(wù)優(yōu)先級,并可能使用定時器中斷來處理最敏感的代碼。Tracealyzer在定位系統(tǒng)中的抖動方面非常有用。

2、優(yōu)先級分配不正確

設(shè)置合適的任務(wù)優(yōu)先級對于基于RTOS的系統(tǒng)的性能和可靠性至關(guān)重要,因為采用過高優(yōu)先級運行的任務(wù)可能會導(dǎo)致其他任務(wù)中出現(xiàn)無法接受的延遲。

邁克爾?巴爾指出,速率單調(diào)分析(RMA)是一種在具有固定優(yōu)先級和搶占式調(diào)度的系統(tǒng)中分配任務(wù)優(yōu)先級的正式方法。但是,這需要有足夠的有關(guān)任務(wù)行為的信息,并且任務(wù)的行為符合此分析方法的假設(shè)。

找到在所有情況下都能正常工作的任務(wù)優(yōu)先級的正確組合可能非常困難,除非有一個良好的跟蹤工具來顯示RTOS中正在發(fā)生的事情。 Tracealyzer允許檢查執(zhí)行時間,執(zhí)行模式以及任務(wù)的最終響應(yīng)時間。這使開發(fā)者可以評估和優(yōu)化其優(yōu)先級分配,以實現(xiàn)更快的響應(yīng)時間和更可靠的行為。

3、優(yōu)先級反轉(zhuǎn)

具有固定優(yōu)先級調(diào)度程序的RTOS的核心思想是,應(yīng)該在具有較低優(yōu)先級的任務(wù)之前安排高優(yōu)先級任務(wù),但是當兩個或多個任務(wù)需要協(xié)調(diào)其工作與全局數(shù)據(jù)區(qū)等共享資源或外圍設(shè)備時,可能會導(dǎo)致系統(tǒng)出錯。

其中一個可能出錯的事情就是優(yōu)先級反轉(zhuǎn)(priority inversion),低優(yōu)先級任務(wù)無意中阻止了具有更高優(yōu)先級的任務(wù)。 如果你意識到這個陷阱,這也很容易地避免。 但是,如果發(fā)現(xiàn)系統(tǒng)的響應(yīng)性偶爾會出現(xiàn)延遲,則可能是因為優(yōu)先級反轉(zhuǎn)。 使用Tracealyzer,可以通過繪制任務(wù)的響應(yīng)時間來發(fā)現(xiàn)此類延遲。 要查看此圖中任何極端值的原因,只需雙擊以顯示相應(yīng)的任務(wù)執(zhí)行跟蹤。

4、死鎖

死鎖是兩個或多個任務(wù)之間的循環(huán)依賴。 例如,如果任務(wù)1已經(jīng)獲得A,并且被阻止等待B,而任務(wù)2先前已獲得B,并且被阻止等待A,則這兩個任務(wù)都不會被喚醒。 盡管沒有更高優(yōu)先級的任務(wù)正在運行,但是當多個任務(wù)突然停止執(zhí)行時,可能是出現(xiàn)死鎖問題的明確跡象。 同樣,死鎖的檢測是Tracealyzer可以展示的內(nèi)容。

如果希望避免死鎖,首先要注意的是,只有當任務(wù)試圖同時持有兩個資源時才會發(fā)生死鎖。 因此:構(gòu)建代碼時,使任何任務(wù)在同一時間都不會持有多個共享資源,這樣不會產(chǎn)生死鎖。

5、內(nèi)存泄漏

通常不建議在嵌入式軟件中進行動態(tài)內(nèi)存分配,但有時會出于各種原因(對或錯)進行動態(tài)內(nèi)存分配。問題在于,如果使用它,則必須確保一旦內(nèi)存塊不再使用時,就釋放每個已分配的內(nèi)存塊。如果在某些情況下遺漏了這一點,就會出現(xiàn)內(nèi)存泄漏,并最終耗盡內(nèi)存。請記?。杭词乖陧椖恐薪箘討B(tài)內(nèi)存分配,也可能有第三方軟件庫或外部開發(fā)團隊在不知情的情況下使用動態(tài)內(nèi)存分配。

如果內(nèi)存泄漏只是偶爾發(fā)生,那么它就特別危險,因為在功能測試期間很容易錯過“緩慢”的內(nèi)存泄漏,但在部署單元一段時間后,可能會導(dǎo)致嚴重錯誤。考慮到許多嵌入式系統(tǒng)的長期運行特性,以及一些安全關(guān)鍵系統(tǒng)可能存在的致命或嚴重故障,內(nèi)存泄漏是絕對不希望在軟件中出現(xiàn)的一個錯誤。

Tracealyzer可以監(jiān)視RTOS對動態(tài)內(nèi)存分配的調(diào)用,并可以突出顯示可疑的內(nèi)存泄漏。

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

    關(guān)注

    4

    文章

    242

    瀏覽量

    26759
  • RTOS
    +關(guān)注

    關(guān)注

    22

    文章

    820

    瀏覽量

    119920

原文標題:在調(diào)試嵌入式軟件時,使用跟蹤工具可以找到一些典型錯誤!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Tracealyzer 技術(shù)分享

    為什么要使用Tracealyzer???1.在使用FreeRTOS的系統(tǒng)進行開發(fā)的時候,在多任務(wù)開發(fā)的時候,多時序紊亂,導(dǎo)致系統(tǒng)異常Tracealyzer是一個很好的嵌入式OS時序分析
    發(fā)表于 01-04 21:10

    教你快遞入門-Tracealyzer跟蹤記錄庫移植

    PercepioTracealyzer是一個強大的工具,可以在運行時跟蹤和可視化分析RTOS系統(tǒng)。超過30種視圖,對系統(tǒng)的實時行為提供了驚人
    發(fā)表于 07-31 14:08

    淺談基于RTOS系統(tǒng)開發(fā)調(diào)試的難題

    調(diào)試器(J-Link)或者串口通信接口,實時的將數(shù)據(jù)傳輸?shù)絇C端的分析軟件,實現(xiàn)長時間的實時跟蹤
    發(fā)表于 04-28 13:28

    使用Tracealyzer跟蹤FreeRTOS內(nèi)核

    模式,可以跟蹤單個任務(wù)和特定內(nèi)核函數(shù)的內(nèi)存分配和內(nèi)存共享,使用這個工具,可以很方便的找到內(nèi)存錯誤
    發(fā)表于 12-01 14:57

    如何使用Tracealyzer流模式跟蹤ThreadX?

    TracealyzerPercepio 公司開發(fā)的一款用于RTOS嵌入式軟件系統(tǒng)的可視化跟蹤
    發(fā)表于 09-23 13:25

    使用PercepioTracealyzer和DevAlert實現(xiàn)FreeRTOS的可觀察性!

    Percepio是著名的Tracealyzer背后的公司。Tracealyzer是一款桌面應(yīng)用程序,方便嵌入式工程師通過追蹤直觀地診斷軟件
    發(fā)表于 05-18 13:41

    UltraSoC與Percepio結(jié)盟為實時系統(tǒng)提供第一個完整的嵌入式分析平臺

    領(lǐng)先的嵌入式分析技術(shù)供應(yīng)商UltraSoC與領(lǐng)先的實時操作系統(tǒng)軟件跟蹤工具專業(yè)廠商Percepio
    發(fā)表于 02-09 15:25 ?278次閱讀
    UltraSoC與<b class='flag-5'>Percepio</b>結(jié)盟為實時系統(tǒng)提供第一個完整的<b class='flag-5'>嵌入式</b><b class='flag-5'>分析</b>平臺

    UltraSoC聯(lián)手Percepio 嵌入式調(diào)試工具實時交流和分享重要信息

    領(lǐng)先的嵌入式分析技術(shù)供應(yīng)商UltraSoC與領(lǐng)先的實時操作系統(tǒng)軟件跟蹤工具專業(yè)廠商Percepio
    發(fā)表于 12-19 16:30 ?918次閱讀

    哪些工具可以可以發(fā)現(xiàn)基于RTOS的程序錯誤?

    、饑餓、死鎖、優(yōu)先級反轉(zhuǎn)bug。 一些專門設(shè)計的工具可以幫助基于RTOS的程序開發(fā)人員發(fā)現(xiàn)一些難以發(fā)現(xiàn)的錯誤。
    的頭像 發(fā)表于 04-12 10:46 ?1994次閱讀
    哪些<b class='flag-5'>工具</b><b class='flag-5'>可以</b><b class='flag-5'>可以</b>發(fā)現(xiàn)基于<b class='flag-5'>RTOS</b>的程序<b class='flag-5'>錯誤</b>?

    基于RTOS嵌入式系統(tǒng)軟件的設(shè)計講解

    基于RTOS嵌入式系統(tǒng)軟件的設(shè)計講解(樹莓派嵌入式開發(fā)板)-該文檔為基于RTOS嵌入式系統(tǒng)
    發(fā)表于 07-30 10:03 ?8次下載
    基于<b class='flag-5'>RTOS</b>的<b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>軟件</b>的設(shè)計講解

    如何使用Tracealyzer的流模式來跟蹤ThreadX應(yīng)用

    TracealyzerPercepio 公司開發(fā)的一款用于RTOS嵌入式軟件系統(tǒng)的可視化跟蹤
    的頭像 發(fā)表于 09-16 11:14 ?1500次閱讀

    如何通過Tracealyzer導(dǎo)出的跟蹤數(shù)據(jù)對任務(wù)進行分析?

    TracealyzerPercepio 公司開發(fā)的一款用于RTOS的可視化跟蹤工具, 目前Tracea
    的頭像 發(fā)表于 02-06 14:13 ?1173次閱讀

    使用PercepioTracealyzer和DevAlert實現(xiàn)FreeRTOS的可觀察性

    執(zhí)行過程中解釋系統(tǒng)狀態(tài)。在對意外行為進行故障排除時,使用FreeRTOS分析基于微控制器的應(yīng)用程序的追蹤可以節(jié)省嵌入式工程師大量時間和精力。如需將此工具與FreeRTOS應(yīng)用程序一起使
    的頭像 發(fā)表于 05-16 14:17 ?1968次閱讀
    使用<b class='flag-5'>Percepio</b>的<b class='flag-5'>Tracealyzer</b>和DevAlert實現(xiàn)FreeRTOS的可觀察性

    Percepio Tracealyzer 4.9版本改善Linux用戶體驗

    嵌入式邊緣系統(tǒng)工具解決方案的領(lǐng)先供應(yīng)商Percepio AB宣布提供Tracealyzer4.9版本——這是其嵌入式
    的頭像 發(fā)表于 10-22 14:08 ?406次閱讀

    Tracealyzer如何簡化調(diào)試

    如果沒有專為多線程代碼設(shè)計的有效調(diào)試分析工具,開發(fā)基于Zephyr的軟件可能更具有挑戰(zhàn)性。Percepio
    的頭像 發(fā)表于 02-11 11:11 ?70次閱讀
    <b class='flag-5'>Tracealyzer</b>如何簡化<b class='flag-5'>調(diào)試</b>