www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 玩轉(zhuǎn)單片機(jī)與嵌入式
[導(dǎo)讀]▼點(diǎn)擊下方名片,關(guān)注公眾號▼歡迎關(guān)注【玩轉(zhuǎn)單片機(jī)與嵌入式】公眾號,回復(fù)關(guān)鍵字獲取更多免費(fèi)資料?;貜?fù)【STM32】,獲取STM32相關(guān)設(shè)計(jì)和視頻教程回復(fù)【PCB】,獲取PCB設(shè)計(jì)相關(guān)的資料回復(fù)【硬件知識】、【硬件設(shè)計(jì)】,獲取硬件開發(fā)工程必備手冊回復(fù)【經(jīng)典電路】,獲取5000個經(jīng)典電...

點(diǎn)擊下方名片,關(guān)注公眾號

歡迎關(guān)注【玩轉(zhuǎn)單片機(jī)與嵌入式】公眾號,回復(fù)關(guān)鍵字獲取更多免費(fèi)資料。

回復(fù)【STM32】,獲取STM32相關(guān)設(shè)計(jì)和視頻教程

回復(fù)【PCB】,獲取PCB設(shè)計(jì)相關(guān)的資料

回復(fù)【硬件知識】、【硬件設(shè)計(jì)】,獲取硬件開發(fā)工程必備手冊

回復(fù)【經(jīng)典電路】,獲取5000個經(jīng)典電路

回復(fù)【論文】,獲取畢業(yè)設(shè)計(jì)、電子競賽、學(xué)術(shù)專業(yè)等相關(guān)論文資料

回復(fù)【電容】,獲取電容、元器件選型相關(guān)的內(nèi)容;

回復(fù)【阻抗匹配】,獲取電磁兼容性、阻抗匹配相關(guān)的資料

回復(fù)【資料】,獲取全部電子設(shè)計(jì)、單片機(jī)開發(fā)相關(guān)的資料

回復(fù)【終端電阻】,獲取CAN終端電阻相關(guān)的資料

回復(fù)【單片機(jī)】,獲取單片機(jī)全套視頻教程和參考設(shè)計(jì)


…………

歡迎關(guān)注【玩轉(zhuǎn)單片機(jī)與嵌入式】公眾號。本公眾號會以連載的形式推出一系列關(guān)于STM32學(xué)習(xí)的教程,歡迎關(guān)注。








程序的運(yùn)行時間,對一個系統(tǒng)比較重要。有的地方要求精確延時Nus,有的地方要求程序運(yùn)行時間不能超過Nus。


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


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

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

再比如,我們要運(yùn)行一段算法,我們都期待越快越好,但這段算法會牽涉?zhèn)鞲衅鞯牟杉幚?。那么這其中要綜合考慮傳感器采集的最大速率等問題。


所以,我們在項(xiàng)目研發(fā)初期就要考慮一些地方程序運(yùn)行的時間問題。下面為大家總結(jié)日常的測量方法,供大家學(xué)習(xí)參考。


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

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


該方法在我們的小型或者資源不足的芯片上使用得不多,因?yàn)槲覀兒苌儆卸嘤嗟亩〞r器來進(jìn)行額外的處理,同時由于定時器處理需要一定的時間,以及一些額外的計(jì)算等都會導(dǎo)致測量時間上的誤差,如果該誤差在能夠接受的范圍還是可以采用該方法的。


4.仿真器法

目前許多芯片的調(diào)試仿真器都會具備測量仿真程序的多方面性能的功能,比如說KEIL或者CCS集成開發(fā)環(huán)境也都基本支持測量程序運(yùn)行時間的,一般都是測量斷點(diǎn)之間的程序所運(yùn)行時間,用戶需要在開發(fā)環(huán)境中進(jìn)行芯片當(dāng)前的晶振、主頻等等方面參數(shù)的設(shè)置以后基本能夠獲得一個運(yùn)行時間結(jié)果。


聲明:本文來源最后一個Bug,僅代表作者觀點(diǎn),不代表本公眾號對該觀點(diǎn)贊同或支持,版權(quán)歸原作者所有。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉