色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

專用工具為調試基于RTOS的系統設計

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Jean Labrosse ? 2022-06-30 10:04 ? 次閱讀

死鎖:

死鎖(又名致命擁抱)是一種情況,其中(至少)兩個任務都在不知不覺中等待另一個擁有的資源。死鎖可能不會立即發生,因為很大程度上取決于兩個任務何時需要彼此的資源。如下圖所示,μC/Probe 的內核感知屏幕有一列顯示每個任務執行的頻率(即任務由 RTOS 切換的頻率)。您可以通過監視此列來檢測死鎖,并注意您期望運行的任何任務是否實際上正在運行。換句話說,如果計數停止(μC/Probe 在 CPU 運行時更新這些計數器),那么您可能檢測到死鎖。但是,對于這種情況,您還會注意到至少有兩個任務停止計數。您可能不需要使用像 μC/Probe 這樣的工具來檢測死鎖,因為在任何情況下,您都應該注意應用程序中這些任務的鎖定行為。但是,該工具使其更加明顯。

poYBAGK9BMCAOxzlAAIkf9udrEY752.png

您可以通過以下方式避免死鎖:

總是獲取所有需要的資源,總是以相同的順序獲取它們并以相反的順序釋放它們。

在 RTOS API 調用上使用超時以避免永遠等待資源可用。確保檢查來自 RTOS API 的返回錯誤代碼,以確保您對所需資源的請求確實成功。

饑餓:

當高優先級任務消耗所有 CPU 的帶寬時,就會發生饑餓,為低優先級任務留下很少或沒有 CPU 時間。饑餓的影響的特點是響應能力和產品功能的下降,例如嵌入式目標的顯示更新緩慢、通信堆棧中的數據包丟失、操作員界面遲緩等。除了解決這些問題之外,您幾乎無能為力至:

優化占用大部分 CPU 帶寬的代碼。

提高 CPU 的時鐘速度。由于其他系統考慮,這很少是一種選擇。

選擇另一個 CPU。這也很少是一種選擇,尤其是在開發周期的后期。

pYYBAGK9BMiARRRcAAPKnYNbEXI309.png

監控任務和 ISR 執行時間

了解任務和 ISR 的執行時間對于幫助基于 RTOS 的系統分析(例如速率單調分析 (RMA))通常很有用。具體來說,通過這些信息,您可以確定是否所有時間緊迫的任務都可以按時完成,并幫助您為任務分配優先級。不幸的是,這些信息只有在系統設計和運行后才真正準確和可用。換句話說,代碼的實際執行時間通常要在實際目標上執行時才能準確知道。然而,一旦可用,任務和 ISR 執行時間對于確認系統設計期間所做的假設非常有用。

SystemView 提供任務和 ISR 的最小/最大執行時間,如下面的屏幕截圖所示。

pYYBAGK9BNSASUkoAAMPHJBNBk8284.png

1 -上下文窗格中 的Max Run Time列顯示所有任務和 ISR 的最大執行時間。在SysTick(即tick ISR)的情況下,最長的執行時間是0.5488 ms。我們可以通過搜索事件 #4016155 來確定何時(及時)發生了這個較長的執行時間。您只需從 Go 菜單中選擇 Go to event 。.. 并鍵入 4016155,然后按 Enter。

2 - 事件窗口顯示這對應于 ISR 出口。事實上,這是有道理的,因為只有在 ISR 退出時才知道 ISR 的最大執行時間。

3 - 雙擊事件窗口中顯示事件 #4016155 的行會強制時間軸窗口顯示該事件。可以看出,SysTick 的執行時間比其他執行時間要寬。

在大多數情況下,您不需要找到(及時)任務或 ISR 的最大執行時間發生在哪里,尤其是當您僅將該信息用于 RMA 時。但是,在某些情況下,您可能需要找出執行時間比預期或預期長得多的原因。不幸的是,SystemView 可能無法提供關于發生這種情況的原因的額外線索。您可能希望在此處使用代碼執行跟蹤工具(例如 Segger 的 J-Trace)并檢查 ISR 在事件 #4016155 之前執行的代碼。

測量用戶代碼的執行時間

有很多方法可以測量代碼執行時間。一種方法是使用具有跟蹤功能的調試探針。您只需運行代碼、查看跟蹤、計算增量時間(通常是手動)并將 CPU 周期轉換為微秒。不幸的是,跟蹤為您提供了一個執行實例,您可能需要進一步查看跟蹤捕獲以找到最壞情況下的執行時間。這可能是一個乏味的過程。另一種方法是檢測您的代碼并在代碼的不同位置拍攝可用的自由運行計數器的快照,并計算快照讀數之間的差異。這實際上在嵌入式計算設計[7]上發表的一篇論文中有所描述對于 Cortex-M MCU,但該概念同樣適用于其他目標。該論文提供了 API 來測量經過的時間。您只需將要測量的代碼包裝如下:

elapsed_time_start(n);

// 測量代碼

elapsed_time_stop(n);

其中“n”指定“n”個 bin(0 到 n-1)之一,其中最小和最大執行時間保存如下:

elapsed_time_tbl[n].min

elapsed_time_tbl[n].max

在 Cortex-M 的情況下,執行時間以 CPU 時鐘頻率單位保存。

如下圖所示,您可以使用 Micrium 的 μC/Probe 輕松顯示以微秒為單位的結果。μC/Probe 允許對數字進行縮放,在這種情況下,需要根據所用評估板的 CPU 時鐘頻率進行調整。

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzVjZDlkYzU1MWMzYTQucG5nJnZlcnNpb249MDAwMCZzaWc9YjI3ZDQzYTI3YWE3NjkxMDJiOGExMmZiYTNlOWE4NzU253D

概括

IDE 中內置的調試器通常不足以調試基于 RTOS 的實時系統。

幸運的是,有專門為調試基于 RTOS 的系統而設計的專用工具,但開發人員通常不知道這些工具。這些工具之一是 Segger 的 SystemView ,它在時間線上顯示 ISR 和任務,并收集運行時統計信息,例如最小和最大執行時間、ISR 和任務之間的關系、CPU 負載等等。

另一個可以補充 SystemView 的工具是 Micrium 的 μC/Probe ,它是一種通用工具,允許開發人員在不干擾 CPU 的情況下可視化和更改正在運行的嵌入式目標的行為。μC/Probe 在裸機或基于 RTOS 的應用中同樣適用。對于基于 RTOS 的應用程序,μC/Probe 包括非侵入式實時內核感知以及 TCP/IP 堆棧感知。兩種類型的工具(SystemView 和 μC/Probe)都應該在早期和整個開發周期中使用,以提供有關嵌入式目標運行時行為的反饋。

審核編輯:郭婷

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

    關注

    5082

    文章

    19104

    瀏覽量

    304803
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211578
  • RTOS
    +關注

    關注

    22

    文章

    811

    瀏覽量

    119593
收藏 人收藏

    評論

    相關推薦

    Kali Linux常用工具介紹

    Kali Linux 虛擬機中自帶了大量滲透測試工具,涵蓋了信息收集、漏洞利用、口令破解、漏洞掃描等多個方面。 以下是按分類簡要介紹一部分常用工具的使用方法: 使用方法只能當做參考,**詳細
    的頭像 發表于 11-11 09:29 ?455次閱讀

    TCP&UDP調試工具

    TCP&UDP調試工具
    發表于 10-30 10:41 ?1次下載

    MODBUS調試工具(modscan32)

    MODBUS調試工具(modscan32)
    發表于 10-24 10:39 ?0次下載

    SEGGERJ-Link和Flasher提供Device Provisioner工具

    日前,SEGGER宣布其Flasher系列編程器以及J-Link和J-Trace系列調試跟蹤工具提供Device Provisioner工具
    的頭像 發表于 10-22 15:12 ?390次閱讀

    freertos和rtos區別是什么

    FreeRTOS 和 RTOS(實時操作系統)是兩個不同的概念,但它們之間有緊密的聯系。FreeRTOS 是一個特定的開源實時操作系統,而 RTOS 是實時操作
    的頭像 發表于 09-02 14:18 ?1166次閱讀

    RTOS的特性和類型

    實時操作系統RTOS)是一種可運行實時計算應用程序的軟件平臺,用于處理具有明確時間約束的事件和數據。與通用操作系統(GPOS)不同,RTOS必須在有限的硬件資源上調度應用程序之間的處
    的頭像 發表于 08-20 11:29 ?570次閱讀

    簡單認識RTOS實時操作系統

    RTOS(Real Time Operating System,實時操作系統)是一種專門設計用于在嚴格時間限制內處理任務的操作系統。它以其高實時性、多任務處理能力和資源管理能力在工業自動化、醫療設備、航空航天、汽車電子等眾多領域
    的頭像 發表于 08-20 11:20 ?2690次閱讀

    使用cmsis-dap燒錄器對芯片cy8c4148azi-s455進行燒錄,一直失敗的原因?

    我使用的燒錄器是通用型的cmsis-dap燒錄器,可以對6系芯片進行燒寫,但是這個芯片為什么一直出錯,是工具必須專用工具么?
    發表于 07-24 06:07

    遠程抄表及能耗管理系統

    準確性和質量,更為環保節能戰略的制訂提供了強大的專用工具。2.功能特點2.1實時監控系統遠程抄表系統能實時獲取能源應用情況,不論是電力工程、水、氣或是供熱,都可以具體
    的頭像 發表于 06-15 15:00 ?309次閱讀
    遠程抄表及能耗管理<b class='flag-5'>系統</b>

    制藥行業新突破:CANOpen轉PROFINET網關配置案例解析

    流程:首先安裝CanOpen轉Profinet網關的配置軟件,該軟件專用工具,確保了設備參數的正確設置與修改。隨后,需導入EDS(設備描述文件)至配置軟件中。E
    的頭像 發表于 05-14 11:47 ?530次閱讀
    制藥行業新突破:CANOpen轉PROFINET網關配置案例解析

    請問CMSIS-RTOS怎么調試

    如果用的是MDK的RTX組件,調試倒是很簡單,問題是用CUBEMX生成的CMSIS-RTOS就不知道有什么好辦法調試了。 各位有什么好的方法
    發表于 05-14 06:40

    HarmonyOS開發案例:【生活健康app之編寫通用工具類】(5)

    本節將介紹日志打印、時間換算等通用工具類的編寫和使用,工具類可以簡化應用代碼編寫和業務流程處理。
    的頭像 發表于 05-11 09:58 ?528次閱讀
    HarmonyOS開發案例:【生活健康app之編寫通<b class='flag-5'>用工具</b>類】(5)

    如何正確安裝精密M8航空插頭3芯

    德索工程師說道在開始安裝之前,需要準備一些專用工具和原材料,如電源插頭、屏蔽電纜、助焊膏、醫用鑷子、錫線、剝線鉗、電鉻鐵、熱縮管、熱風焊槍等。此外,還需要確保工作環境干凈、整潔,避免灰塵和雜質進入連接器內部。
    的頭像 發表于 04-08 10:52 ?1148次閱讀
    如何正確安裝精密M8航空插頭3芯

    什么是CAN總線調試工具調試的內容主要包括哪幾個方面?

    CAN總線調試工具是用于對CAN總線進行調試和故障排除的設備或軟件工具,它們具有高速數據捕獲能力、數據過濾和觸發功能,以及用于解析和顯示CAN幀的軟件界面。
    的頭像 發表于 04-03 11:23 ?1038次閱讀

    全志R128系統RTOS使用說明

    重置 CPU,查看輸出。 這里可以看到 M33 核心運行頻率 192MHz,DSP 運行頻率 400MHz,C906 運行頻率 480MHz 系統調試命令help code"
    發表于 01-05 10:22
    主站蜘蛛池模板: 伊人久久大香线蕉影院95| 蜜桃传媒一区二区亚洲AV| 国产99精品视频一区二区三区| 99re在这里只有精品| 在线视频免费观看| 亚洲色噜噜狠狠网站| 亚洲高清国产拍精品影院| 午夜影视不充值观看| 丝袜美腿美女被狂躁在线观看| 日本欧美高清一区二区视频| 欧美性狂猛AAAAAA| 欧美性猛交XXXX乱大交极品| 欧美视频精品一区二区三区| 欧美激情视频一区二区| 男人J进入女人P免费狂躁| 狂躁美女BBBBBB视频| 乱码午夜-极品国产内射| 伦理片 a在线线版韩国| 狼群影院视频在线观看WWW| 曼谷av女郎| 欧美日韩无套内射另类| 日本19xxxx撤尿| 十8禁用B站在线看漫画| 羞羞影院午夜男女爽爽影院网站| 午夜影院一区二区三区| 亚洲免费va在线观看| 一抽一出BGM免费50分动漫| 曰批国产精品视频免费观看| 真实国产乱子伦精品一区二区三区| 最近中文字幕2019免费版| AV无码九九久久| 大香伊人中文字幕精品| 国产日韩高清一区二区三区| 精品国产福利一区二区在线| 老司机午夜影院试看区| 欧美片第1页 综合| 少爷不要别揉了高H| 亚洲蜜芽在线观看精品一区| 757一本到午夜宫| 粗壮挺进邻居人妻无码| 国产一卡在线观看完整版|