99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

嵌入式性能指標竟藏著這些秘密,你了解幾個?

這次給大家分享關于嵌入式中性能指標的一些知識。嵌入式軟件性能指標是衡量嵌入式系統性能優劣的重要依據。

各行業,比較通用的嵌入式軟件性能指標有哪些?

嵌入式軟件的性能指標通常圍繞實時性和資源效率展開。以下是最重要的幾點指標:

一、實時性

實時性指的不是“快”,而是“準時”——硬實時系統允許速度慢,但必須守時。

這個指標直接影響到系統的交互性,這個指標航空航天、工業自動化等領域至關重要。

例如,在自動駕駛系統中,車輛對突發狀況的響應時間必須足夠短,以確保安全駕駛。一般來說,關鍵任務的響應時間需要控制在毫秒級甚至微秒級。

1、實時性檢測工具

(1)Percepio View

Percepio View 是一款基于 Percepio Tracealyzer 的免費追蹤工具,用作 FreeRTOS 應用程序的監控,便于調試和驗證。

https://www.freertos.org/Documentation/03-Libraries/02-FreeRTOS-plus/05-FreeRTOS_plus_Trace/01-Percepio_View

Percepio View 可以與傳統調試器(如ST-Link、J-Link)結合使用,通過任務和 ISR 實時執行情況 可視化的方式對調試器加以補充。

這些任務包括 FreeRTOS API 調用和您自己的“用戶事件”。 它不需要任何特殊的追蹤硬件。

(2)SEGGER SystemView

SEGGER SystemView是一個實時記錄和可視化工具,用于分析和描述嵌入式系統的行為。

它提供了對運行時行為的深入了解,超越了傳統調試器的功能。

SystemView 可免費用于非商業用途,且功能不受限制。

https://www.segger.com/products/development-tools/systemview/

SystemView非常適合具有多線程和中斷的復雜系統,它可以幫助開發人員確保他們的系統按預期執行,識別低效率,并發現意外的交互或資源沖突。

通過調試接口記錄來自嵌入式系統的監控數據,SystemView詳細地可視化任務、中斷和軟件定時器的執行情況。

二、資源使用效率

這個指標主要衡量系統硬件資源(如 CPU、內存)的使用情況。

通過監測資源利用率,可以了解軟件對硬件資源的需求和占用程度,避免資源過度占用或浪費。

例如,如果 CPU 利用率長期過高,可能導致系統響應變慢甚至崩潰;內存利用率過高則可能引發內存泄漏等問題。

CPU使用率定義為CPU在某個時間段內用于執行計算任務的時間占總時間的比例。具體來說,CPU使用率 = 1 - 空閑時間/總CPU時間

合理的資源利用率可以使系統在有限的硬件資源下穩定運行,并為未來的功能擴展預留一定的資源空間。

1、CPU 使用分析工具

(1)SEGGER SystemView

SEGGER SystemView配合 J-Link,捕獲任務切換和中斷事件,分析 CPU 占用熱點,支持 FreeRTOS、Zephyr 等 RTOS。

(2)FreeRTOS 運行時統計功能(內置)

https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/08-Run-time-statistics

在FreeRTOS中通過 config GENERATE_RUN_TIME_STATS配置啟用,統計每個任務的 CPU 占用率及執行時間。

無需額外工具,直接集成在 FreeRTOS 中,適合快速定位高負載任務。

(3)perf(Linux 內置工具)

perf是一個基于Linux內核的性能事件子系統,可以收集各種性能數據,如CPU使用率、內存訪問、函數調用等。

使用命令:

perf record -e cpu-clock -g ./embedded_app  # 記錄 CPU 事件
perf report  # 生成熱點函數分析報告

2、 內存使用分析工具

(1)heap-monitoring

heap-monitoring是SEGGER SystemView中的應用程序中的動態存儲監控工具。

在應用程序使用C或C++堆、多個自定義堆或RTOS提供的內存池對象,可以使用heap-monitoring跟蹤這些對象的使用情況,分析它們的使用模式,評估堆上的負載、識別潛在的內存泄漏、跟蹤內存峰值使用情況等的格式顯示收集到的信息。

使用方式:

使用SEGGER_SYSVIEW_HeapDefine定義一次堆的特征。

并使用SEGGER_SYSVIEW_HeapAllocSEGGER_SYSVIEW_HeapFree監視它的使用情況。

(2)FreeRTOS 堆棧溢出檢測(內置)

在FreeRTOS中通過 config CHECK_FOR_STACK_OVERFLOW 配置檢測任務堆棧溢出。

實時監控任務棧使用,防止內存越界導致的系統崩潰。

(3)Valgrind

Valgrind是一款用于內存調試、內存泄漏檢測以及性能分析的軟件開發工具。

往期文章:工具 | Valgrind仿真調試工具的使用

Valgrind工具包包含多個工具:

其中Valgrind Massif工具是堆棧分析器。堆棧分析器,它能測量程序在堆棧中使用了多少內存,告訴我們堆塊,堆管理塊和棧的大小。

Valgrind Massif能幫助我們減少內存的使用,在帶有虛擬內存的現代系統中,它還能夠加速我們程序的運行,減少程序停留在交換區中的幾率。

Valgrind由內核(core)以及基于內核的其他調試工具組成。

其基于仿真方式對程序進行調試,它先于應用程序獲取實際處理器的控制權,并在實際處理器的基礎上仿真一個虛擬處理器,并使應用程序運行于這個虛擬處理器之上,從而對應用程序的運行進行監視。

應用程序并不知道該處理器是虛擬的還是實際的,已經編譯成二進制代碼的應用程序并不用重新進行編譯,Valgrind 直接解釋二進制代碼使得應用程序基于它運行,從而能夠檢查內存操作時可能出現的錯誤。

所以在Valgrind下運行的程序運行速度要慢得多,而且使用的內存要多得多。因此,最好在性能好的機器上使用Valgrind,并且是在開發調試階段使用。

三、代碼執行效率

代碼執行效率直接影響系統的 可靠性、實時性、功耗 和 成本

  • 圖像處理算法中,綜合考慮資源利用平衡,改用查表法進行效率提升。
  • 通信協議解析中,減少冗余字符串操作函數調用次數。

1、代碼執行效率檢測工具

(1)gprof

GNU gprof,這是一個經典的性能分析工具,集成在GCC中,只需添加編譯選項即可使用,適用于Linux/MPU 或交叉編譯環境(如 ARM Cortex-A 系列),定位算法或邏輯瓶頸。

https://ftp.gnu.org/old-gnu/Manuals/gprof-2.9.1/html_mono/gprof.html

它能夠顯示每個函數的調用次數和執行時間,幫助定位熱點代碼。對于嵌入式開發,可以在交叉編譯環境中使用。

編譯代碼時啟用分析

gcc -pg -o my_app my_code.c

生成分析報告

gprof my_app gmon.out > report.txt

四、其他指標

  • 可靠性:嵌入式系統,尤其是應用于關鍵領域(如醫療設備、交通控制等)的軟件,可靠性是至關重要的指標。軟件需要具備容錯能力、錯誤恢復能力和穩定性,以應對各種可能出現的異常情況,確保系統持續、穩定地運行。
  • 功耗:低功耗設計可以延長設備的使用時間,減少充電頻率,提高用戶體驗。同時,對于大規模部署的物聯網設備,降低功耗還可以降低運營成本和對環境的影。
  • 可預測性:確保所有任務在任意負載下均滿足截止時間(硬實時系統的核心)。
  • 通信吞吐量:在涉及網絡或總線(如CAN、Ethernet)的系統中,數據吞吐和延遲是關鍵。
  • 工具鏈影響:編譯器優化級別、調試代碼(如斷言)對性能的影響需在發布版本中評估。
聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 2
關注 28
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 9久9久女女热精品视频在线观看 | 国产一区二区三区高清在线观看 | 久久九九热 | 欧美xxxxxx片免费播放软件 | 3344成人免费高清免费视频 | 色综合精品视频 | 国产稚嫩高中生呻吟激情在线视频 | 大地资源在线观看免费高清官网 | 99视频在线精品免费观看2 | 成人影院免费942cm | 草莓福利社区在线 | h网站久久久| 成人性生交大片100部 | 久久久亚洲精品一区二区三区 | 国产又色又爽又黄又免费软件 | 狠狠干狠狠操视频 | 免费三级国产 | 亚洲国产精品乱码一区二区三区 | 18禁无遮挡免费视频网站 | 亚洲午夜精品一区二区三区 | 亚洲国产精品成人无码区 | 日韩熟女精品一区二区三区 | 日韩精品在线免费视频 | 黄色小说av| 国产一级强片在线观看av | 无码人妻精品中文字幕 | 久久精久久 | AA级女人大片免费视频 | av无码国产精品色午夜 | 国99精品无码一区二区三区 | 色很久综合 | 日韩欧美久久久久久久999按摩 | 亚洲精品一区二区网址 | 1024久久| 久久成人免费精品网站 | 久久精点视频 | 精品一区精品二区 | 97久久人人爽人人爽人人片 | 加勒比无码一区二区三区 | 国产欧美一级 | 久久久6精品成人午夜51777 |