加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

STM32_在线调试查看硬件程序运行时间的两种方法

(2018-04-03 22:53:48)
标签:

stm32运行时间

程序运行时间

分类: STM32

方法一:

为了保证在MDK中读取正确的程序运行时间,必须对仿真器的跟踪项进行设置。 

以ULink2为例(如果使用的是J-LINK下载器或者ST-link下载器 原理一样,可做类比):

 

(1)在工程的“ Option  for Target ..”目标选项界面中,选择标签“Debug”,进行调试设置界面,选择使用“Cortex-M3-ULIK2”作为仿真器,然后点击右侧的“Settings”按键,进入ULINK设置界面。

 http://s12/mw690/002ydbfVzy7jpsrPwzp6b&690


(2)点击标签“Trace”进入跟踪设置界面,将“Core  Clock:”右侧的编辑区输入你的CPU的频率,例如你的实际CPU运行频率为72MHz,那么你就必须输入72Mhz。 

(3)“Core  Clock”的值决定MDK以什么频率来计算指令周期,因为“Core  Clock”的默认值为10MHz,因此如果不修改这个值的话,MDK计算每条指令的运行时间是按10MHz频率来计算的。只有修改为实际使用的频率值,才能得到正确的指令周期。

  (我用的是芯片型号: stm32f100CB  它的系统时钟为24MHZ,所以这里填写24Mhz,大部分的stm32F10x系列都能通过PLL跑到72Mhz,这里可以自行修改)

http://s2/mw690/002ydbfVzy7jpsuoGAhd1&690


(4)点击kei 调式功能,可在Keil调试界面的左边栏,看到Proect Workspace下的Internal 看到sec即是时间,执行断点调试,即可计算时间了。

开始 执行写flash 前: 注意时间为Internal ->sec :2.13051933

 执行完flash 写命令后,注意时间为Internal ->sec :2.15888279

比较一下前后差值: 即为写flash的时间:0.02836346s= 28.3546ms !!!

http://s9/mw690/002ydbfVzy7jpsxR6je68&690


方法二:通过示波器查看;(我用JTAG 没有实时跟踪语句执行时间,可以用这种方法)

在测试语句先后加上 置位某一管脚 电平的方法 ,通过设置断点,示波器捕捉 高电平 的持续时间---如下图 代码部分

http://s1/mw690/002ydbfVzy7jpsAaQta10&690

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有