在keil中編程時,寫了一行代碼,然后就想知道,執行這句C代碼需要多長時間。
時鍾周期在這就不解釋了,頻率的倒數。
指令周期,個人理解就是cpu執行一條匯編指令所需要的時間。
我們知道cm3使用的三級流水線,那么到底一條指令的執行需要多少個時鍾周期。下面通過keil軟件仿真,來計算一個指令所需的時鍾周期。
使用STM32F103RC,。配置其主時鍾HCLK為72mhz測試代碼如下:
然后開始仿真
編譯通過后,點擊dbg按鈕,調出如下窗口:
並且設置以上的斷點,開始單步調試。並記錄時間,
單步調試
這樣便可以計算出執行 MVOS r1,#0x04 所用的時間視為29.20833-29.19444=0.1389us。使用這種方式便可以測試出每條指令所使用的時間。便有了下面的表。
但是,我測試BL.W指令所需要的是8T0,不知道是什么原因,其他指令都是正確的
ARM官方給出的指令周期是
STM32有三級流水線,指令周期不定的,arm給出的是1.25MIPS/Mhz,一個平均執行速度。
個人理解就是1Mhz的頻率,每秒鍾可以執行1.25M指令。72M,那么就是72*1.25。
而這個最大的應用是通過單周期指令去測試系統時鍾是否配置的正確。
————————————————————————————————————————————————————————————————
原文鏈接:https://blog.csdn.net/qq_41092963/article/details/82759097