日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

运行时间_如何测量嵌入式软件运行时间?

發布時間:2025/4/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 运行时间_如何测量嵌入式软件运行时间? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整理:黃工

素材來源:最后一個Bug

程序的運行時間,對一個系統比較重要。有的地方要求精確延時Nus,有的地方要求程序運行時間不能超過Nus。

所以,今天給大家分享一些常見測量程序(任務)運行時間的方法。

0、為什么需要測定程序運行時間?軟件的時效性決定著系統的快速性,這一句話的前提是在不考慮硬件的限制。不過對于我們大部分項目而言,而是真正限制系統反應速度的還是硬件資源等。

比如說我們真實世界與數字世界的窗口-AD采樣芯片,我們都需要通過感知外界的一些反饋來對我們的系統做出正確的決策,那么AD芯片的轉化速度就成了決定該反饋的速度,進而影響著我們的系統。

再比如,我們要運行一段算法,我們都期待越快越好,但這段算法會牽涉傳感器的采集處理。那么這其中要綜合考慮傳感器采集的最大速率等問題。

所以,我們在項目研發初期就要考慮一些地方程序運行的時間問題。下面為大家總結日常的測量方法,供大家學習參考。

1、IO翻轉示波器測量法該方法簡單方便,在測量的起始位置,設置IO為一種狀態(低);在測量的結束位置,設置IO為另一個狀態(高)。TEST_IO_LOW();//被測量代碼start//······//被測量代碼endTEST_IO_HIGH();這種測量方法要考慮添加的IO語句會占用一定時間(具體與你處理器能力有關),比如72M的STM32F1,一個IO翻轉,應該在幾十ns。2、捕獲IO測量法該方法其實和示波器法類似,都屬于外部測量方法,不過該方法的好處是能夠彌補任務運行時間變化較大導致示波器測量顯示難以辨識最長時間的問題。大體實現思路我們可以把IO翻轉信號看成一個脈沖寬度來進行測量,只需要通過編程在用另外一款盡量高端的或者是主頻更高的芯片通過捕獲功能結合定時器進行時間記錄即可,這樣我們既可以獲得程序運行的時間,還可以通過編程的思路,進行一段長時間內的脈寬的最大值、平均值等來更好的表征程序運行的狀況。該方法的缺點該辦法的精度等得由外部芯片來決定,不過對于大部分應用是滿足的。

3、內部定時器法

該方法與上面的捕獲IO方法是類似的,在嵌入式系統中經常會遇到時間戳的使用,同時還能獲得CPU的利用率,其實方法都是一樣的,系統中會開啟一個核心定時器,該定時器一般不會受到外部的干擾等,通過該定時器在任務的開頭和結尾分別安插標志,從而獲得這段時間內的定時器計數,從而計算出程序運行時間。

該方法在我們的小型或者資源不足的芯片上使用得不多,因為我們很少有多余的定時器來進行額外的處理,同時由于定時器處理需要一定的時間,以及一些額外的計算等都會導致測量時間上的誤差,如果該誤差在能夠接受的范圍還是可以采用該方法的。

4.仿真器法

目前許多芯片的調試仿真器都會具備測量仿真程序的多方面性能的功能,比如說KEIL或者CCS集成開發環境也都基本支持測量程序運行時間的,一般都是測量斷點之間的程序所運行時間,用戶需要在開發環境中進行芯片當前的晶振、主頻等等方面參數的設置以后基本能夠獲得一個運行時間結果。

1.美國再出狠手!這家中國創業公司被下禁令:技術無法轉回國,IPO 計劃擱淺

2.TIOBE 3 月編程語言排行榜:Java 大漲,Delphi 輝煌不再!

3.默默無聞的嵌入式技術,其實一直在創新中求發展

4.震驚!FPGA運算單元可支持高算力浮點

5.6 個步驟,搞定 AI 車牌識別器!(附詳細分析)

6.WiFi芯片出現Kr00k漏洞

免責聲明:本文系網絡轉載,版權歸原作者所有。如涉及作品版權問題,請與我們聯系,我們將根據您提供的版權證明材料確認版權并支付稿酬或者刪除內容。

總結

以上是生活随笔為你收集整理的运行时间_如何测量嵌入式软件运行时间?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。