整理:黃工
素材來(lái)源:最后一個(gè)Bug
程序的何測(cè)運(yùn)行時(shí)間,對(duì)一個(gè)系統(tǒng)比較重要。量程有的序運(yùn)行地方要求精確延時(shí)Nus,有的何測(cè)地方要求程序運(yùn)行時(shí)間不能超過(guò)Nus。
所以,量程今天給大家分享一些常見(jiàn)測(cè)量程序(任務(wù))運(yùn)行時(shí)間的序運(yùn)行方法。
比如說(shuō)我們真實(shí)世界與數(shù)字世界的窗口-AD采樣芯片,我們都需要通過(guò)感知外界的一些反饋來(lái)對(duì)我們的系統(tǒng)做出正確的決策,那么AD芯片的轉(zhuǎn)化速度就成了決定該反饋的速度,進(jìn)而影響著我們的系統(tǒng)。
再比如,我們要運(yùn)行一段算法,我們都期待越快越好,但這段算法會(huì)牽涉?zhèn)鞲衅鞯牟杉幚怼D敲催@其中要綜合考慮傳感器采集的最大速率等問(wèn)題。
所以,我們?cè)陧?xiàng)目研發(fā)初期就要考慮一些地方程序運(yùn)行的時(shí)間問(wèn)題。下面為大家總結(jié)日常的測(cè)量方法,供大家學(xué)習(xí)參考。
TEST_IO_LOW();
//被測(cè)量代碼start
//······
//被測(cè)量代碼end
TEST_IO_HIGH();
3、內(nèi)部定時(shí)器法
該方法與上面的捕獲IO方法是類(lèi)似的,在嵌入式系統(tǒng)中經(jīng)常會(huì)遇到時(shí)間戳的使用,同時(shí)還能獲得CPU的利用率,其實(shí)方法都是一樣的,系統(tǒng)中會(huì)開(kāi)啟一個(gè)核心定時(shí)器,該定時(shí)器一般不會(huì)受到外部的干擾等,通過(guò)該定時(shí)器在任務(wù)的開(kāi)頭和結(jié)尾分別安插標(biāo)志,從而獲得這段時(shí)間內(nèi)的定時(shí)器計(jì)數(shù),從而計(jì)算出程序運(yùn)行時(shí)間。
該方法在我們的小型或者資源不足的芯片上使用得不多,因?yàn)槲覀兒苌儆卸嘤嗟亩〞r(shí)器來(lái)進(jìn)行額外的處理,同時(shí)由于定時(shí)器處理需要一定的時(shí)間,以及一些額外的計(jì)算等都會(huì)導(dǎo)致測(cè)量時(shí)間上的誤差,如果該誤差在能夠接受的范圍還是可以采用該方法的。
4.仿真器法
目前許多芯片的調(diào)試仿真器都會(huì)具備測(cè)量仿真程序的多方面性能的功能,比如說(shuō)KEIL或者CCS集成開(kāi)發(fā)環(huán)境也都基本支持測(cè)量程序運(yùn)行時(shí)間的,一般都是測(cè)量斷點(diǎn)之間的程序所運(yùn)行時(shí)間,用戶需要在開(kāi)發(fā)環(huán)境中進(jìn)行芯片當(dāng)前的晶振、主頻等等方面參數(shù)的設(shè)置以后基本能夠獲得一個(gè)運(yùn)行時(shí)間結(jié)果。
聲明:本文來(lái)源最后一個(gè)Bug,僅代表作者觀點(diǎn),不代表本公眾號(hào)對(duì)該觀點(diǎn)贊同或支持,版權(quán)歸原作者所有。
猜你喜歡
先漲薪后付費(fèi) | 只為結(jié)果付費(fèi)的人工智能高薪培養(yǎng)計(jì)劃
翻到幾年前的代碼,我驚了。
幾款優(yōu)秀的 Windows 虛擬串口模擬器
?最 后?? ?
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!