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

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

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

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

使用專門的RTOS工具發(fā)現(xiàn)實(shí)時(shí)錯(cuò)誤

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Jean Labrosse ? 2022-06-30 10:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

越來(lái)越多的嵌入式系統(tǒng)依賴使用實(shí)時(shí)操作系統(tǒng) (RTOS) 來(lái):滿足實(shí)時(shí)要求、縮短上市時(shí)間、簡(jiǎn)化開發(fā)、增加代碼可移植性和簡(jiǎn)化開發(fā)。盡管有很多好處,但 RTOS 也有其缺點(diǎn),其中之一是可能引入不正確分配的任務(wù)優(yōu)先級(jí)、堆棧溢出、饑餓、死鎖、優(yōu)先級(jí)反轉(zhuǎn)和其他難以發(fā)現(xiàn)的錯(cuò)誤。

在本文中,我們將研究專門設(shè)計(jì)用于幫助基于 RTOS 的應(yīng)用程序開發(fā)人員發(fā)現(xiàn)其中一些難以捉摸的錯(cuò)誤、識(shí)別問(wèn)題并提供糾正措施的工具。這些工具很容易獲得,但嵌入式開發(fā)人員通常不知道。

什么是實(shí)時(shí)操作系統(tǒng)?

實(shí)時(shí)操作系統(tǒng)(也稱為 RTOS 或?qū)崟r(shí)內(nèi)核)是盡可能高效地管理 CPU(中央處理單元)時(shí)間的軟件。大多數(shù)內(nèi)核都是用 C 語(yǔ)言編寫的,并且需要一小部分用匯編語(yǔ)言編寫的代碼才能使內(nèi)核適應(yīng)不同的 CPU 架構(gòu)。當(dāng)您使用 RTOS 內(nèi)核設(shè)計(jì)應(yīng)用程序(您的代碼)時(shí),您只需將工作拆分為任務(wù),每個(gè)任務(wù)負(fù)責(zé)一部分工作。任務(wù)(也稱為線程)是一個(gè)簡(jiǎn)單的程序,它認(rèn)為自己完全擁有 CPU。在單個(gè) CPU 上,在任何給定時(shí)間只能執(zhí)行一個(gè)任務(wù)。您的應(yīng)用程序代碼還需要根據(jù)任務(wù)重要性以及每個(gè)任務(wù)的堆棧 (RAM) 為每個(gè)任務(wù)分配優(yōu)先級(jí)。一般來(lái)說(shuō),添加低優(yōu)先級(jí)任務(wù)不會(huì)影響系統(tǒng)對(duì)高優(yōu)先級(jí)任務(wù)的響應(yīng)。任務(wù)通常也實(shí)現(xiàn)為無(wú)限循環(huán)。內(nèi)核負(fù)責(zé)任務(wù)的管理。這稱為多任務(wù)處理。多任務(wù)處理是在多個(gè)順序任務(wù)之間調(diào)度和切換 CPU 的過(guò)程。多任務(wù)處理提供了擁有多個(gè) CPU 的錯(cuò)覺(jué),并最大限度地利用了 CPU,如下所示。多任務(wù)處理還有助于創(chuàng)建模塊化應(yīng)用程序。使用實(shí)時(shí)內(nèi)核,應(yīng)用程序更易于設(shè)計(jì)和維護(hù)。多任務(wù)處理提供了擁有多個(gè) CPU 的錯(cuò)覺(jué),并最大限度地利用了 CPU,如下所示。多任務(wù)處理還有助于創(chuàng)建模塊化應(yīng)用程序。使用實(shí)時(shí)內(nèi)核,應(yīng)用程序更易于設(shè)計(jì)和維護(hù)。多任務(wù)處理提供了擁有多個(gè) CPU 的錯(cuò)覺(jué),并最大限度地利用了 CPU,如下所示。多任務(wù)處理還有助于創(chuàng)建模塊化應(yīng)用程序。使用實(shí)時(shí)內(nèi)核,應(yīng)用程序更易于設(shè)計(jì)和維護(hù)。

pYYBAGK9B02AZFU-AAEBYD1r2P8657.png

大多數(shù)商業(yè) RTOS 都是搶占式的,這意味著內(nèi)核始終運(yùn)行最重要的可立即運(yùn)行的任務(wù)。搶占式內(nèi)核也是事件驅(qū)動(dòng)的,這意味著任務(wù)被設(shè)計(jì)為等待事件發(fā)生才能執(zhí)行。如果任務(wù)等待的事件沒(méi)有發(fā)生,內(nèi)核運(yùn)行其他任務(wù)。等待任務(wù)消耗零 CPU 時(shí)間。發(fā)送信號(hào)和等待事件是通過(guò)內(nèi)核應(yīng)用程序編程接口 (API) 調(diào)用完成的。內(nèi)核允許您避免輪詢循環(huán),這會(huì)浪費(fèi) CPU 的時(shí)間。以下是如何實(shí)現(xiàn)典型任務(wù)的示例:

poYBAGK9B1WAf5u5AAC3kTgRW_U317.png

內(nèi)核為程序員提供了許多有用的服務(wù),例如多任務(wù)處理、中斷管理、任務(wù)間通信和信令、資源管理、時(shí)間管理、內(nèi)存分區(qū)管理等等。RTOS 可用于只有少量任務(wù)的簡(jiǎn)單應(yīng)用程序,但它是需要復(fù)雜且耗時(shí)的通信堆棧的應(yīng)用程序的必備工具,例如 TCP/IP、USB(主機(jī)和/或設(shè)備) )、CAN藍(lán)牙、Zigbee 等。當(dāng)應(yīng)用程序需要文件系統(tǒng)來(lái)存儲(chǔ)和檢索數(shù)據(jù)以及產(chǎn)品配備某種圖形顯示(黑白、灰度或彩色)時(shí),強(qiáng)烈建議使用 RTOS。

內(nèi)置調(diào)試端口

ARM Cortex.-M 處理器配備了內(nèi)置于每個(gè)芯片上的特殊且非常強(qiáng)大的調(diào)試硬件。CoreSight 提供非侵入式功能,允許工具在不停止 CPU 的情況下監(jiān)視和控制實(shí)時(shí)系統(tǒng),例如:

動(dòng)態(tài)內(nèi)存/外設(shè)訪問(wèn)(讀取和寫入)

指令跟蹤(要求芯片還包括一個(gè)執(zhí)行跟蹤宏單元,ETM)

數(shù)據(jù)追蹤

使用分析計(jì)數(shù)器進(jìn)行分析

下圖顯示了 CoreSight 調(diào)試端口、CPU 和內(nèi)存/外設(shè)之間關(guān)系的簡(jiǎn)化框圖。

poYBAGK9B1yAYuXmAAJ0T2PUqic459.png

用于測(cè)試/調(diào)試實(shí)時(shí)系統(tǒng)的工具

下圖顯示了 CoreSight 如何連接到您的開發(fā)環(huán)境:

poYBAGK9B2iAWNSSAAIz0v3vR28368.png

1 - 嵌入式開發(fā)人員經(jīng)常使用集成開發(fā)環(huán)境 (IDE),其中包括代碼編輯器、編譯器、匯編器、鏈接器、調(diào)試器和可能的其他工具。

IDE 中內(nèi)置的調(diào)試器只提供最基本的必需品:下載代碼、啟動(dòng)/停止、設(shè)置斷點(diǎn)和其他一些簡(jiǎn)單功能。一些調(diào)試器更進(jìn)一步,允許您在目標(biāo)運(yùn)行時(shí)顯示和更改變量(也稱為 Live Watch),但功能僅限于數(shù)值。包含內(nèi)置 RTOS 感知功能的調(diào)試器也很常見(jiàn),但通常需要您暫停應(yīng)用程序以檢查 RTOS 的狀態(tài)(對(duì)于調(diào)試實(shí)時(shí)系統(tǒng)不太實(shí)用)。

2 - 當(dāng)您準(zhǔn)備好調(diào)試應(yīng)用程序時(shí),通過(guò) Debugger Probe(例如 Segger J-Link )將代碼下載到目標(biāo)。

3 - J-Link 連接到 CoreSight 調(diào)試端口,能夠啟動(dòng)/停止 CPU、下載代碼、對(duì)板載 Flash 進(jìn)行編程等。即使目標(biāo)正在執(zhí)行代碼,J-Link 也可以根據(jù)需要直接讀取和寫入內(nèi)存。

4 - Micrium 的 μC/Probe是一個(gè)獨(dú)立的、與 CPU 供應(yīng)商無(wú)關(guān)的、基于 Windows 的應(yīng)用程序,可讀取工具鏈生成的 ELF 文件。ELF 文件包含下載到目標(biāo)的代碼以及所有全局可訪問(wèn)變量的名稱、它們的數(shù)據(jù)類型以及它們?cè)谀繕?biāo)內(nèi)存中的物理內(nèi)存位置。

5 - μC/Probe 允許用戶在運(yùn)行時(shí)(即實(shí)時(shí))顯示或更改連接的嵌入式目標(biāo)上幾乎任何變量或內(nèi)存位置(包括 I/O 端口)的值。用戶只需從儀表、數(shù)字指示器、表格、圖形、虛擬 LED、條形圖、滑塊、開關(guān)、按鈕和其他組件的庫(kù)中填充 μC/Probe 的圖形環(huán)境,并將其中的每一個(gè)與變量或內(nèi)存位置相關(guān)聯(lián)嵌入式設(shè)備。μC/Probe 不需要您檢測(cè)目標(biāo)代碼以在運(yùn)行時(shí)顯示或更改變量。通過(guò)在 μC/Probe 的屏幕上添加虛擬滑塊或開關(guān),您可以輕松更改運(yùn)行系統(tǒng)的參數(shù)(例如濾波器系數(shù)和 PID 回路增益)或驅(qū)動(dòng)設(shè)備和測(cè)試 I/O 端口。

6 - μC/Probe 向 J-Link 發(fā)送請(qǐng)求以讀取或?qū)懭雰?nèi)存。

7 - J-Link 請(qǐng)求被轉(zhuǎn)換為 CoreSight 命令以獲取變量值并將其以圖形方式顯示在 μC/Probe 的屏幕上。

8 -另一個(gè)用于測(cè)試/調(diào)試實(shí)時(shí)嵌入式系統(tǒng)的非常有用的工具是 SEGGER 的 SystemView 。此工具通常與 RTOS 結(jié)合使用,并在時(shí)間線上顯示任務(wù)和 ISR 的執(zhí)行配置文件,以便您可以查看每個(gè)任務(wù)執(zhí)行所需的時(shí)間(最小/平均/最大),任務(wù)何時(shí)準(zhǔn)備好運(yùn)行,當(dāng)每個(gè)任務(wù)實(shí)際開始執(zhí)行時(shí),當(dāng) ISR 執(zhí)行時(shí)等等。SystemView 可以幫助您發(fā)現(xiàn)可能多年未被注意到的錯(cuò)誤。但是,SystemView 要求您將代碼添加到記錄 RTOS 事件和 ISR 的目標(biāo)(由 SEGGER 免費(fèi)提供)。SystemView 還消耗少量 RAM 來(lái)緩沖這些事件。

9 - J-Link 允許多個(gè)進(jìn)程同時(shí)訪問(wèn) CoreSight,因此您可以同時(shí)使用所有三個(gè)工具。

審核編輯:郭婷

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

    關(guān)注

    5198

    文章

    20413

    瀏覽量

    333467
  • 濾波器
    +關(guān)注

    關(guān)注

    162

    文章

    8403

    瀏覽量

    185591
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    828

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

    對(duì)許多嵌入式項(xiàng)目來(lái)說(shuō),系統(tǒng)設(shè)計(jì)師都傾向于選擇實(shí)時(shí)操作系統(tǒng)(RTOS)。但RTOS總是必要的嗎? 答案是取決于具體的應(yīng)用,因此了解我們要達(dá)到什么目標(biāo)是決定RTOS是必要的還是花瓶的關(guān)鍵
    發(fā)表于 12-23 06:34

    選擇RTOS的要點(diǎn)

    對(duì)于許多嵌入式項(xiàng)目來(lái)說(shuō),在采用非實(shí)時(shí)操作系統(tǒng)(non-RTOS)的任何場(chǎng)合,也都可采用RTOS。但是,要找到一款具有完全相同應(yīng)用編程接口(API)的匹配RTOS就相當(dāng)困難了。因此,許多
    發(fā)表于 12-12 08:00

    RTOS Crash 問(wèn)題全維度分析與解決指南

    (ISR)執(zhí)行時(shí)間超限3. ISR中修改共享資源未關(guān)中斷/用原子操作 實(shí)時(shí)性超時(shí)、數(shù)據(jù)競(jìng)態(tài)導(dǎo)致邏輯錯(cuò)誤、HardFault(ISR棧溢出) 所有RTOS:ISR優(yōu)先級(jí)需低于
    發(fā)表于 12-08 03:56

    如何選擇合適的實(shí)時(shí)操作系統(tǒng)

    選擇合適的實(shí)時(shí)操作系統(tǒng)(RTOS,Real-Time Operating System)可能會(huì)影響你在不同行業(yè)的職業(yè)發(fā)展路徑。
    的頭像 發(fā)表于 09-09 14:47 ?1048次閱讀

    使用RTOS的SDK,調(diào)整rtsmart-menuconfig出現(xiàn)編譯錯(cuò)誤怎么解決?

    部分錯(cuò)誤日志: ……Make librtsp_pusher done.Make MPP middleware libraries done.4cf2f76fatal: 沒(méi)有發(fā)現(xiàn)名稱,無(wú)法描述任何東西
    發(fā)表于 07-22 07:59

    請(qǐng)問(wèn)編譯純rtos到底是選擇Linux+rtos的sdk編譯only rtos還是直接使用rtos sdk?

    編譯純rtos到底是選擇Linux+rtos的sdk編譯only rtos還是直接使用rtos sdk?
    發(fā)表于 07-11 07:22

    IAR平臺(tái)現(xiàn)已提供對(duì)Zephyr RTOS的量產(chǎn)級(jí)支持

    IAR宣布,其嵌入式開發(fā)平臺(tái)正式推出對(duì)Zephyr RTOS的量產(chǎn)級(jí)支持。該支持自IAR的Arm開發(fā)工具鏈v9.70起全面提供。
    的頭像 發(fā)表于 07-09 15:43 ?554次閱讀

    Lauterbach TRACE32開發(fā)工具現(xiàn)在支持PX5 RTOS

    Lauterbach TRACE32開發(fā)工具現(xiàn)在支持PX5 RTOS。這里TRACE32工具支持包括對(duì)PX5 RTOS內(nèi)部結(jié)構(gòu)和數(shù)據(jù)的訪問(wèn),使開發(fā)人員能夠更深入地了解其應(yīng)用程序的行為方
    的頭像 發(fā)表于 06-12 16:38 ?1025次閱讀

    零延遲響應(yīng):安卓工控機(jī)如何用實(shí)時(shí)操作系統(tǒng)(RTOS)賦能工業(yè)控制

    在工業(yè)4.0時(shí)代,工業(yè)控制系統(tǒng)對(duì)實(shí)時(shí)性的要求已突破毫秒級(jí)門檻,傳統(tǒng)操作系統(tǒng)因任務(wù)調(diào)度延遲、中斷響應(yīng)不確定性等問(wèn)題,難以滿足精密運(yùn)動(dòng)控制、閉環(huán)反饋調(diào)節(jié)等場(chǎng)景需求。安卓工控機(jī)通過(guò)集成RTOS實(shí)時(shí)
    的頭像 發(fā)表于 06-09 15:49 ?1174次閱讀

    揭秘LuatOS:實(shí)時(shí)操作系統(tǒng)RTOS核心庫(kù)的關(guān)鍵技術(shù)剖析!

    電機(jī)控制、傳感器采集等實(shí)時(shí)數(shù)據(jù)處理場(chǎng)景。 在LuatOS開發(fā)中, 用于實(shí)時(shí)操作系統(tǒng)(RTOS)相關(guān)功能的核心庫(kù) ——提供了定時(shí)器管理、系統(tǒng)控制、內(nèi)存監(jiān)控、路徑配置等底層操作接口,為物聯(lián)網(wǎng)設(shè)備提供可靠的
    的頭像 發(fā)表于 05-21 16:02 ?648次閱讀
    揭秘LuatOS:<b class='flag-5'>實(shí)時(shí)</b>操作系統(tǒng)<b class='flag-5'>RTOS</b>核心庫(kù)的關(guān)鍵技術(shù)剖析!

    如何在Eclipse ThreadX RTOS中集成SystemView

    SEGGER實(shí)時(shí)軟件分析工具SystemView已經(jīng)在ThreadX v6.4.2上進(jìn)行了測(cè)試。SystemView從v3.60c版本支持Eclipse ThreadX(Azure RTOS),用戶
    的頭像 發(fā)表于 05-06 17:11 ?1428次閱讀

    為您的 Raspberry Pi 項(xiàng)目選擇正確的實(shí)時(shí)操作系統(tǒng)(RTOS

    選擇合適的操作系統(tǒng)對(duì)于項(xiàng)目的成功至關(guān)重要。了解如何在RaspberryPi上使用RTOS,并看看你有哪些選擇吧!從OS到RTOSRaspberryPi是由RaspberryPi基金會(huì)推出的一系列
    的頭像 發(fā)表于 03-25 09:40 ?1236次閱讀
    為您的 Raspberry Pi 項(xiàng)目選擇正確的<b class='flag-5'>實(shí)時(shí)</b>操作系統(tǒng)(<b class='flag-5'>RTOS</b>)

    詳解RTOS中的Hook函數(shù)

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