【喂到嘴邊了的模塊】超級(jí)嵌入式系統(tǒng)“性能/時(shí)間”工具箱
掃描二維碼
隨時(shí)隨地手機(jī)看文章
【開篇就白給?】
對(duì)大家熟悉的Cortex-M處理起來(lái)說(shuō),無(wú)論是強(qiáng)調(diào)極致資源和低功耗的Cortex-M0、還是頻率達(dá)到上GHz且能與某些應(yīng)用處理器掰一掰手腕的Cortex-M7,都不會(huì)缺席了SysTick的身影。
正因?yàn)镾ysTick是官方欽定的“不可或缺”的“基礎(chǔ)設(shè)施”,無(wú)論是RTOS系統(tǒng)還是裸機(jī)應(yīng)用,幾乎所有的嵌入式固件都會(huì)用到它。在這一背景下,如果我告訴你,有一個(gè)基于C語(yǔ)言的模塊,提供以下功能:
-
精確測(cè)量系統(tǒng)性能
-
精確測(cè)量函數(shù)執(zhí)行時(shí)間
-
精確測(cè)量中斷響應(yīng)延遲
-
提供精確到us級(jí)的阻塞或非阻塞的延時(shí)服務(wù)
-
改善偽隨機(jī)數(shù)的隨機(jī)數(shù)特性
-
提供系統(tǒng)時(shí)間戳
-
……
使用了SysTick卻不會(huì)占用SysTick;
或者說(shuō)提供以上功能的同時(shí),用戶的原有的SysTick應(yīng)用(比如RTOS調(diào)度器或是普通的應(yīng)用延時(shí))絲毫不會(huì)受到影響;
再直白點(diǎn)說(shuō):以上功能都是白送的,每個(gè)Cortex-M處理器都能立即享有,且不受到芯片型號(hào)的影響,
你是不是要直呼:“真就白給?”
是的!作為一個(gè)在Github上開源的C語(yǔ)言模塊,它真就白給!
【請(qǐng)張嘴……啊~】
perf_counter版本一路進(jìn)化,從加入對(duì)GCC、IAR的支持、通過(guò)Library簡(jiǎn)化用戶部署以來(lái),從版本1.6.1開始更是把模塊的部署做到了極致的簡(jiǎn)化:
這次,你只要從下面的鏈接“一次性”的下載 CMSIS-Pack,就可以在MDK環(huán)境中實(shí)現(xiàn)傻瓜式的部署:
https://raw.githubusercontent.com/GorgonMeducer/perf_counter/CMSIS-Pack/cmsis-pack/GorgonMeducer.perf_counter.1.9.9.pack
也可以向公眾號(hào)發(fā)送 perf_counter 進(jìn)行下載。
下載后,雙擊pack文件進(jìn)行無(wú)腦安裝:
在確認(rèn)了開原許可Apache 2.0的條款后,一路Next,直到單擊Finish,完成整個(gè)安裝過(guò)程:
一般來(lái)說(shuō),部署會(huì)非常順利,但如果出現(xiàn)了安裝錯(cuò)誤,比如下面這種:
則很可能是您所使用的MDK版本太低導(dǎo)致的——是時(shí)候更新下MDK啦。關(guān)注【裸機(jī)思維】公眾號(hào)后發(fā)送關(guān)鍵字"MDK",即可獲得最新的MDK網(wǎng)盤鏈接。
當(dāng)我們想在任何已有工程中部署perf_counter時(shí),只需要單擊MDK工具欄上如下圖所示的圖標(biāo):
打開RTE配置窗口:
我們會(huì)注意到,在列表的末端出現(xiàn)了一個(gè)Utilities條目,依次展開后勾選Performance下的perf_counter——默認(rèn)情況下系統(tǒng)會(huì)自動(dòng)選擇以庫(kù)的形式來(lái)實(shí)現(xiàn)模塊的部署——這也是我吐血推薦的方式,因?yàn)樗∪チ瞬槐匾木幾g麻煩。
單擊OK按鈕后,我們會(huì)發(fā)現(xiàn)Utilities已經(jīng)被加入到了工程管理器中,而perf_counter.lib也已經(jīng)成功的部署到了目標(biāo)工程中:
看過(guò)我