找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12481|回復: 0
收起左側

幾步學會利用IAR Timeline工具測試delay函數執(zhí)行時間

[復制鏈接]
ID:82781 發(fā)表于 2015-6-24 17:06 | 顯示全部樓層 |閱讀模式
    "要把大象放冰箱,總共分幾步",呵呵,寫到本篇博客的時候突然想起小品宋丹丹說的那句經典臺詞了(俺們東北人兒對本山大叔的作品真是滾瓜爛熟了,搞的舍友還時不時跟我學上一學),哈哈,所以就索性給題目也加上了“幾步”的說法,把復雜的事情簡單化,也起到吸引人眼球的作用(當然本篇也是有實料的,進來的不會讓你失望的,呵呵)?瓤,至于到底是幾步,是不是傳說中的“三步”來,哈哈,那還得下面分解。。。
            對于我們程序猿這一類人來說,delay函數貌似是我們最熟悉不過的了。當然,隨著我們編程經驗的逐漸提高,像這種純軟件方式的延時函數是不提倡使用的,畢竟它一直霸占著CPU總線,不過在我們初入門的時候delay函數還是隨處可見的,神馬各種學習板開發(fā)板的demo例程里,模擬IIC,SPI等總線、時序驅動某些外設等等,delay函數成為了我們初入嵌入式軟件編程大門所見到的第一類延時函數了(起碼對我而言是這樣的,所以覺著特親切),但是想如果精確地知道delay的時間就是個麻煩事了。當然其中方法有很多,今兒我就說一招,不過限于用Jlink在IAR環(huán)境下的調試,MCU仍然以Kinetis為例了。
            Timeline,可能有些人會覺著有些陌生,其實它是IAR自帶的調試組件之一,可以幫助開發(fā)者在調試程序的時候跟蹤內部程序調用情況,這里一句兩句也說不清楚,等下面上圖之后就會一目了然了,那還等什么,上“硬菜”吧,也讓我們看看到底分幾步,呵呵:
        第一步:在程序中編寫好delay函數,及在main函數里的調用,如下:
        /*************delay函數定義*************/
        uint8 testPoint;  //定義測試點,用來設置斷點
        void delay(void)
        {
          uint8 i=0;

          while((i++)!=200);
        }
        /*************delay函數的調用*************/
        ... ...
          while(1)
          {   
              testPoint = 0;
              delay();
          }
        第二步:設置調試工具為J-Link/J-Trace,然后在J-Link/J-Trace選項卡選擇如下圖
       
       
        第三步:點擊調試,進入調試界面,分別點擊view->Breakpoint,J-Link->Timeline,調出這兩個調試窗口,然后右鍵testPoint,選擇如下圖:
       
       
        第四步:準備工作已經就緒,下面就開始測試delay函數的延時時間了。點擊全速運行,它第一次可能會停留在啟動代碼的清零段(這個正常,因為testpoint被我設置成全局變量,在啟動的時候會在清零段里去初始化它),繼續(xù)多次點擊全速運行(七八次即可),然后觀察Timeline的Call Stack行,效果如下:
       
        第五步:我們通過Timeline窗口查到了delay函數的執(zhí)行周期,在前面我們又設定了CPU的頻率(96MHz),所以可以算出來delay執(zhí)行的時間T = 1190*1/96 us = 12.40us。呵呵,比裝大象費點事,總共分五步了,哈哈~
        這里只是當做一個小技巧分享給大家了,可能絕大多數人用不到了,不過這里是給大家打開了一個思路,timeline的功能很多,更多好用好玩的功能就留給大家去開發(fā)了。其實現在隨著搞嵌入式的年頭增加,越來越意識到一個問題,那就是調試手段在我們開發(fā)系統(tǒng)中的重要作用,真的在以前或者說還是個新手的時候覺著調試是個麻煩而又沒有多大作用的過程,但是到現在發(fā)現如果利用好調試工具的話絕對會讓我們的開發(fā)事半功倍的,況且現在的片子內部自帶的調試模塊功能越來越強大,外部的調試工具功能也是越來越全面,這些都是附加值(通俗點說,那就是咱花錢買過來的),我們豈能浪費了,不用白不用,白用誰不用嘛,嘿嘿~

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表