如何用JLINK ULINK JTAG 查看 KEIL /MDK 某条指令执行时间

写作原因:老大让我测试一下 写flash 时间 ,担心因为写flash 时间过长,而且频繁写保存实时数据,在正在写flash时串口中断又接收命令不断更改数据 又受到影响;


方法一:

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

以ULink2为例:

 

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

 

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

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

  (我用的是芯片型号: stm32f100CB  它的系统时钟为24MHZ)



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

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

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

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





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

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



转自 http://blog.csdn.net/yx_l128125/article/details/16884345

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值