91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何處理RTOS系統(tǒng)中的時序問題

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Dr. Johan Kraft ? 2022-06-29 14:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

毫無疑問,當(dāng)您開始在開發(fā)中使用實時操作系統(tǒng) (RTOS) 時,會有一條學(xué)習(xí)曲線。您將在更高的抽象級別上工作,使用或多或少的并行任務(wù)而不僅僅是子例程,并且您將需要考慮您的任務(wù)應(yīng)如何共享數(shù)據(jù)和處理器時間。您需要為這些任務(wù)分配運行時優(yōu)先級,最好的解決方案是什么并不是很明顯。最后但同樣重要的是,您需要學(xué)習(xí)如何使用 RTOS 本身,例如用于控制任務(wù)和在它們之間進行通信的配置和 API 函數(shù)。

一旦你掌握了所有這些并且你正在編寫你的代碼,就到了下一個學(xué)習(xí)曲線的時候了——你現(xiàn)在也必須學(xué)習(xí)如何調(diào)試你的代碼。

調(diào)試 RTOS 系統(tǒng)(通常使用搶占式多任務(wù)處理)與調(diào)試您自己編寫所有代碼的單線程“超級循環(huán)”系統(tǒng)有幾個不同的原因,但我想說兩個主要原因是

由于多個任務(wù)交互并競爭共享資源,軟件行為可能會受到軟件時序和 RTOS 調(diào)度行為的影響,而在源代碼中是不可見的。

您不再直接控制程序流程——任務(wù)切換可能隨時隨地發(fā)生。

這些問題真的沒有辦法解決。您將不得不處理它們,因為您必須信任操作系統(tǒng)來安排您的任務(wù)和管理計時器。一些任務(wù)切換可能是可預(yù)測的,因此是已知的,但通常您不知道它們會在程序流的哪個位置發(fā)生。隨著系統(tǒng)中任務(wù)/線程數(shù)量的增加,組合的數(shù)量也在增加——可能存在大量可能的執(zhí)行場景,具有不同的時間和執(zhí)行順序,其中大多數(shù)都可以正常工作。但是,您的一位客戶報告了“噩夢錯誤”,只有在條件合適時才會出現(xiàn),您無法重現(xiàn)。

下面的邊欄列出了一些典型癥狀,如果您有與 RTOS 相關(guān)的時序錯誤,您可能會看到這些癥狀。請注意,其中許多問題通常具有一定程度的隨機性;問題有時會出現(xiàn),但并非總是如此。

依賴于時間的錯誤很難重現(xiàn)或發(fā)現(xiàn),尤其是因為大多數(shù)調(diào)試工具對多任務(wù)問題的支持很少。在我看來,大多數(shù)工具仍然專注于靜態(tài)停止系統(tǒng),而不是動態(tài)軟件行為。相比之下,許多系統(tǒng)具有實時要求,并且無法停止調(diào)試。

RTOS 相關(guān)時序錯誤的一些典型癥狀

任務(wù)可以單獨工作,但不能作為一個完整的系統(tǒng)

性能緩慢

系統(tǒng)鎖定,或有時停止響應(yīng)

系統(tǒng)看起來很脆弱——微小的變化會導(dǎo)致奇怪的錯誤

輸出時序的隨機變化

有時數(shù)據(jù)損壞或輸出錯誤

隨機崩潰/硬故障

除了尋找癥狀之外,您當(dāng)然應(yīng)該使用您擁有的任何工具以及它們提供的工具來檢查您的 RTOS 和應(yīng)用程序是否存在錯誤和不當(dāng)行為。例如,您的 IDE 可能支持在調(diào)試期間輕松檢查 RTOS 對象(有時通過插件),甚至可以分析任務(wù)的堆棧使用情況。RTOS 可以讓您在較高級別測量 CPU 使用率,讓您了解每個任務(wù)平均需要多少 CPU 時間。一些調(diào)試器可以在系統(tǒng)執(zhí)行時實時呈現(xiàn)變量(“實時監(jiān)視”),盡管這可能不適合快速變化的變量。

如果您想查看應(yīng)用程序和 RTOS 內(nèi)部實際發(fā)生的事情的可靠時間線,您需要能夠在事件發(fā)生時記錄事情的 RTOS 感知跟蹤,以及可以幫助您理解跟蹤信息的工具。

審核編輯:郭婷

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

    關(guān)注

    68

    文章

    11289

    瀏覽量

    225290
  • RTOS
    +關(guān)注

    關(guān)注

    25

    文章

    866

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    請問沒有用到的I/0如何處理?

    沒有用到的I/0如何處理?
    發(fā)表于 01-12 06:29

    如何在Zephyr RTOS實現(xiàn)延時和計時函數(shù)

    在實時操作系統(tǒng)RTOS,時間管理是核心功能之一。無論是任務(wù)調(diào)度、超時控制,還是周期性事件,延時和計時機制都扮演著至關(guān)重要的角色。Zephyr RTOS作為一個輕量級、模塊化的開源
    的頭像 發(fā)表于 12-26 10:32 ?5584次閱讀
    如何在Zephyr <b class='flag-5'>RTOS</b><b class='flag-5'>中</b>實現(xiàn)延時和計時函數(shù)

    RTOS在嵌入式開發(fā)的作用

    嵌入式系統(tǒng),有很多方式實現(xiàn)任務(wù)調(diào)度。功能有限的小系統(tǒng),無限循環(huán)足夠?qū)崿F(xiàn)系統(tǒng)功能。當(dāng)軟件設(shè)計變得龐大且復(fù)雜時,設(shè)計師應(yīng)該考慮使用
    發(fā)表于 12-26 07:53

    使用RTOS時需要注意的幾點內(nèi)容分享

    處理器速度總是有幫助的,多內(nèi)核平臺也能改善響應(yīng)速度。對開發(fā)人員來說,竅門在于把系統(tǒng)需求與硬件和軟件匹配起來,然后才是RTOS在嵌入式應(yīng)用的重要性。 一個
    發(fā)表于 12-23 06:34

    選擇RTOS的要點

    的響應(yīng)要求。更快的處理器速度總是有幫助的,多內(nèi)核平臺也能改善響應(yīng)速度。對開發(fā)人員來說,竅門在于把系統(tǒng)需求與硬件和軟件匹配起來,然后才是RTOS在嵌入式應(yīng)用的重要性。 一個
    發(fā)表于 12-12 08:00

    如何在 RTOS 處理微控制器的低功耗特性

    基于 RTOS 的低功耗設(shè)計思路。 越來越多的嵌入式產(chǎn)品基于 RTOS 作為軟件平臺, 有些產(chǎn)品對低功耗的要求也越來越高, 本文討論一下如何在 RTOS
    發(fā)表于 12-12 07:07

    RTOS Crash 問題全維度分析與解決指南

    的xQueueSendFromISR、RT-Thread的rt_sem_release); 阻塞邏輯移到任務(wù),中斷僅發(fā)送信號量/消息通知任務(wù)處理。 四、RTOS Crash預(yù)防規(guī)范 資源配置 : 任務(wù)
    發(fā)表于 12-08 03:56

    大語言模型如何處理上下文窗口中的輸入

    本博客介紹了五個基本概念,闡述了大語言模型如何處理上下文窗口中的輸入。通過明確的例子和實踐獲得的見解,本文介紹了多個與上下文窗口有關(guān)的基本概念,如詞元化、序列長度和注意力等。
    的頭像 發(fā)表于 12-03 13:48 ?624次閱讀
    大語言模型如<b class='flag-5'>何處理</b>上下文窗口中的輸入

    Stduio使用wifi模塊出錯如何處理

    外設(shè)為潘多拉IOT開發(fā)板,使用Stduio配置了wifi框架,但是代碼里在配置wifi模式時,沒有找到wlan0這個設(shè)備,wifi整個功能也用不了,請問應(yīng)該如何處理。使用正點原子資料包里的rtthread測試demo,wifi工作正常,wifi模塊硬件沒有問題。
    發(fā)表于 10-10 08:18

    在M480系列,GPIO配置為準(zhǔn)雙向模組時,如何處理功耗過大?

    在M480系列,GPIO配置為準(zhǔn)雙向模組時,用戶應(yīng)該如何處理功耗過大?
    發(fā)表于 08-28 08:05

    靜力水準(zhǔn)儀在測量過程遇到誤差如何處理?

    靜力水準(zhǔn)儀在測量過程遇到誤差如何處理?靜力水準(zhǔn)儀在工程沉降監(jiān)測中出現(xiàn)數(shù)據(jù)偏差時,需采取系統(tǒng)處理措施。根據(jù)實際工況,誤差主要源于環(huán)境干擾、設(shè)備狀態(tài)、安裝缺陷及操作不當(dāng)四類因素,需針對
    的頭像 發(fā)表于 08-14 13:01 ?906次閱讀
    靜力水準(zhǔn)儀在測量過程<b class='flag-5'>中</b>遇到誤差如<b class='flag-5'>何處理</b>?

    固定式測斜儀在測量過程遇到誤差如何處理?

    在巖土工程與結(jié)構(gòu)物安全監(jiān)測,固定式測斜儀是捕捉位移變化的核心設(shè)備。然而,實際應(yīng)用可能因環(huán)境、操作或設(shè)備因素導(dǎo)致測量誤差。很多人想要了解固定式測斜儀在測量過程遇到誤差如何處理?下面
    的頭像 發(fā)表于 06-13 12:10 ?685次閱讀
    固定式測斜儀在測量過程<b class='flag-5'>中</b>遇到誤差如<b class='flag-5'>何處理</b>?

    Pico示波器在電源時序測試的應(yīng)用

    在航天電子系統(tǒng)研發(fā),電源模塊時序一致性是保障設(shè)備穩(wěn)定運行的核心指標(biāo)。
    的頭像 發(fā)表于 05-15 15:55 ?985次閱讀
    Pico示波器在電源<b class='flag-5'>時序</b>測試<b class='flag-5'>中</b>的應(yīng)用

    RTOS如何在FX3工作?

    大家好, 我正在使用 FX3 進行一個項目。 我想知道 RTOS 調(diào)度是如何工作的。 我知道調(diào)用“CyU3PKernelEntry();”后 RTOS 就會開始工作。 如果我只注冊一個應(yīng)用程序線程。 我的線程什么時候執(zhí)行? 是否有其他
    發(fā)表于 05-06 13:20

    詳解RTOS的Hook函數(shù)

    Hook函數(shù)是RTOS的一個關(guān)鍵特性,通過該函數(shù),用戶可以增強對任務(wù)管理的控制,定義系統(tǒng)行為。
    的頭像 發(fā)表于 03-24 16:14 ?1102次閱讀