利用IAR Timeline工具测试delay函数执行时间

利用IAR Timeline工具测试delay函数执行时间”要把大象放冰箱,总共分几步”,呵呵,写到本篇博客的时候突然想起小品宋丹丹说的那句经典台词了(俺们东北人儿对本山大叔的作品真是滚瓜烂熟了,搞的舍友还时不时跟我学上一学),哈哈,所以就索性给题目也加上了“几步”的说法,把复杂的事情简单化,也起到吸引人眼球的作用(当然本篇也是有实料的,进来的不会让你失望的,呵呵)。咳咳,至于到底是几步,是不是传说中的“三步”来,哈哈,那还得下面分解。。。  

大家好,又见面了,我是你们的朋友全栈君。

 “要把大象放冰箱,总共分几步”,呵呵,写到本篇博客的时候突然想起小品宋丹丹说的那句经典台词了(俺们东北人儿对本山大叔的作品真是滚瓜烂熟了,搞的舍友还时不时跟我学上一学),哈哈,所以就索性给题目也加上了“几步”的说法,把复杂的事情简单化,也起到吸引人眼球的作用(当然本篇也是有实料的,进来的不会让你失望的,呵呵)。咳咳,至于到底是几步,是不是传说中的“三步”来,哈哈,那还得下面分解。。。

    对于我们程序猿这一类人来说,delay函数貌似是我们最熟悉不过的了。当然,随着我们编程经验的逐渐提高,像这种纯软件方式的延时函数是不提倡使用的,毕竟它一直霸占着CPU总线,不过在我们初入门的时候delay函数还是随处可见的,神马各种学习板开发板的demo例程里,模拟IIC,SPI等总线、时序驱动某些外设等等,delay函数成为了我们初入嵌入式软件编程大门所见到的第一类延时函数了(起码对我而言是这样的,所以觉着特亲切),但是想如果精确地知道delay的时间就是个麻烦事了。当然其中方法有很多,今儿我就说一招,不过限于用Jlink在IAR环境下的调试,MCU仍然以Kinetis为例了。

    Timeline,可能有些人会觉着有些陌生,其实它是IAR自带的调试组件之一,可以帮助开发者在调试程序的时候跟踪内部程序调用情况,这里一句两句也说不清楚,等下面上图之后就会一目了然了,那还等什么,上“硬菜”吧,也让我们看看到底分几步,呵呵:

第一步:在程序中编写好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选项卡选择如下图

利用IAR Timeline工具测试delay函数执行时间

利用IAR Timeline工具测试delay函数执行时间

第三步:点击调试,进入调试界面,分别点击view->Breakpoint,J-Link->Timeline,调出这两个调试窗口,然后右键testPoint,选择如下图:

利用IAR Timeline工具测试delay函数执行时间

利用IAR Timeline工具测试delay函数执行时间

第四步:准备工作已经就绪,下面就开始测试delay函数的延时时间了。点击全速运行,它第一次可能会停留在启动代码的清零段(这个正常,因为testpoint被我设置成全局变量,在启动的时候会在清零段里去初始化它),继续多次点击全速运行(七八次即可),然后观察Timeline的Call Stack行,效果如下:

利用IAR Timeline工具测试delay函数执行时间

第五步:我们通过Timeline窗口查到了delay函数的执行周期,在前面我们又设定了CPU的频率(96MHz),所以可以算出来delay执行的时间T = 1190*1/96 us = 12.40us。呵呵,比装大象费点事,总共分五步了,哈哈~

这里只是当做一个小技巧分享给大家了,可能绝大多数人用不到了,不过这里是给大家打开了一个思路,timeline的功能很多,更多好用好玩的功能就留给大家去开发了。其实现在随着搞嵌入式的年头增加,越来越意识到一个问题,那就是调试手段在我们开发系统中的重要作用,真的在以前或者说还是个新手的时候觉着调试是个麻烦而又没有多大作用的过程,但是到现在发现如果利用好调试工具的话绝对会让我们的开发事半功倍的,况且现在的片子内部自带的调试模块功能越来越强大,外部的调试工具功能也是越来越全面,这些都是附加值(通俗点说,那就是咱花钱买过来的),我们岂能浪费了,不用白不用,白用谁不用嘛,嘿嘿~

今儿到这儿了,烧壶水去,未完待续~

来自jicheng0622的博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143711.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 转–《煮酒探西游》吴闲云

    转–《煮酒探西游》吴闲云煮酒探西游吴闲云目录(1)唐僧的父母之谜(2)《西游记》中最大的秘密(3)殷小姐为什么要绣球招亲(4)唐僧的亲爹究竟是谁(5)小姐为什么要弃婴江中(6)唐僧复仇(7)观音菩萨的黑帐(8)唐僧的相貌之谜(9)唐僧为什么要取经(10)唐太宗地府还魂(11)真经究竟有什么作用(12)取经难,传经更难(13)观音菩萨是一个什么样的人

    2022年6月6日
    45
  • 常见漏洞扫描工具_web漏洞扫描工具有哪些

    常见漏洞扫描工具_web漏洞扫描工具有哪些漏洞扫描漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。漏洞扫描器包括网络漏扫、主机漏扫、数据库漏扫等不同种类。常用漏洞扫描工具:一、Nessus百度百科:Nessus是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus作为扫描该机构电脑系统的软件。提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。不同于传统的漏洞扫描软件,Nessus可同时在本机或

    2022年9月13日
    3
  • 无显示屏 配置树莓派教程[通俗易懂]

    无显示屏 配置树莓派教程[通俗易懂]<无显示屏>配置树莓派教程0.相关链接#SDCardFormatter官网下载链接https://www.sdcard.org/downloads/formatter/eula_windows/index.html#Win32DiskImager下载链接https://sourceforge.net/projects/win32diskimager/#树莓派…

    2022年8月31日
    8
  • goland 激活码 2021[在线序列号]

    goland 激活码 2021[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    46
  • 机器学习之模型评估

    '没有测量,就没有科学'这是科学家门捷列夫的名言。在计算机科学特别是机器学习领域中,对模型的评估同样至关重要,只有选择与问题相匹配的评估方法,才能快速地发现模型选择或训练过程中出现的问

    2021年12月30日
    66
  • 访问流量限制api已用完_jwt认证实现单点登录原理

    访问流量限制api已用完_jwt认证实现单点登录原理一步步实现对API的访问限制(节流)

    2022年4月20日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号