OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 23240|回复: 21

原子哥,在MDK软件中怎么查看执行某条语句所用的时间啊

[复制链接]

19

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2011-9-19
在线时间
8 小时
发表于 2011-12-8 13:48:17 | 显示全部楼层 |阅读模式

 我在延时的时候是用for嵌套循环做的,但是不知道延时的时间大约是多少,所在想在调试的时候在软件里面看看,然后再更一下,但是不知道怎么查看用多少,所以请教一下
比如我用8M的晶振,APB1和APB2都设置成8M,然后这样来延时:
void FORDelay_ms(u16 nTimes)
{
 u16 i,j;
 for(i=0;i<nTimes;i++)
 {
  for(j=0;j<1000;j++);
 }
}
执行这一句的时候程序需要延时多少时间呢?
FORDelay_ms(5);

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-12-8 15:03:41 | 显示全部楼层
回复【楼主位】baiydcwy:
---------------------------------
软件仿真即可查看。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2011-9-19
在线时间
8 小时
 楼主| 发表于 2011-12-16 09:18:10 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我就是用的软件仿真,但是不知道在软件仿真里面怎么操作,不知道原子哥可否详细的讲一下呢,呵呵,用那个软件仿真搞了半天也没搞出来
回复 支持 反对

使用道具 举报

98

主题

253

帖子

1

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2011-12-16
在线时间
59 小时
发表于 2011-12-16 10:04:12 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
本人用示波器做过详细的测试,发现软件仿真时间根本不对!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-12-16 10:44:32 | 显示全部楼层
 回复【4楼】kexuexyz:
---------------------------------
那只能慢慢的测试了,改一个值看一下,呵呵.比较麻烦.建议使用我们的usmart配合调试,能很快找到需要设定的值.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2011-9-19
在线时间
8 小时
 楼主| 发表于 2011-12-16 11:15:21 | 显示全部楼层
usmart是个什么东西呃,呵呵
回复 支持 反对

使用道具 举报

98

主题

253

帖子

1

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2011-12-16
在线时间
59 小时
发表于 2011-12-16 11:18:05 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
usmart是什么?我用Jlink断点调试,在MDK中观察sec的值,发现时间也不对,跟示波器实际测量的时间不一样。。。。纳闷
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-12-16 11:45:50 | 显示全部楼层
回复【6楼】baiydcwy:
---------------------------------
论坛搜索usmart.或者见开发板的扩展例程.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2012-5-24
在线时间
0 小时
发表于 2012-5-24 12:03:54 | 显示全部楼层
  为了保证在MDK中读取正确的程序运行时间,必须对仿真器的跟踪项进行设置。
  以J-Link为例。
  在工程的“Options for Target...”目标选项界面中,选择标签“Debug”,进行调试设置界面,选择使用“Cortex-M3JTAG”作为仿真器,然后点击右侧的“Settings”按键,进入J-Link设置界面。
  点击标签“Trace”进入跟踪设置界面,将“Core Clock:”右侧的编辑区输入你的CPU的频率,例如你的实际CPU运行频率为72MHz。
  “Core Clock:”的值决定MDK以什么频率来计算指令周期,因为“Core Clock:”的默认值为10MHz,因此如果不修改这个值的话,MDK计算每条指令的运行时间是按10MHz频率来计算的。只有修改为实际使用的频率值,才能得到正确的指令周期。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-5-24 12:39:56 | 显示全部楼层
楼上的方法靠谱...
学习了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-8-1
在线时间
1 小时
发表于 2013-8-3 16:05:05 | 显示全部楼层
回复【9楼】redlake:
---------------------------------
然后应该怎么查看某一条语句的运行时间啊?
回复 支持 反对

使用道具 举报

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
发表于 2014-4-22 14:05:57 | 显示全部楼层
受教啦,8L
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-5-8
在线时间
0 小时
发表于 2014-7-2 13:06:02 | 显示全部楼层
回复【4楼】kexuexyz:
---------------------------------
回复 支持 反对

使用道具 举报

13

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2014-4-9
在线时间
9 小时
发表于 2014-8-6 14:59:27 | 显示全部楼层
回复【11楼】fall:
---------------------------------
你分别设两个断点,运行的时候进入第一个断点的时候在KEIL右下记看到已经运行时间,再运行进入第二个断点看已经运行时间,两个时间差就是某条指令的运行时间。我有个dsp初始化函数运行了6秒多钟,开始没仿真上位机软件老配合不了,仿真后做延时就正常了。
大海啊,全是水; 骏马啊,四条腿。
回复 支持 反对

使用道具 举报

14

主题

225

帖子

3

精华

高级会员

Rank: 4

积分
623
金钱
623
注册时间
2014-7-8
在线时间
26 小时
发表于 2014-12-4 21:08:41 | 显示全部楼层
回复【9楼】redlake:
---------------------------------
回复 支持 反对

使用道具 举报

14

主题

225

帖子

3

精华

高级会员

Rank: 4

积分
623
金钱
623
注册时间
2014-7-8
在线时间
26 小时
发表于 2014-12-4 21:11:19 | 显示全部楼层
试了楼上方法确实靠谱,我的设成72M刚刚好,注意不是晶振的频率
回复 支持 反对

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2014-12-4 21:15:21 | 显示全部楼层
回复【9楼】redlake:
---------------------------------
知道 IAR 有这功能吗?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-4-13
在线时间
5 小时
发表于 2015-1-4 23:30:38 | 显示全部楼层
确实有用,谢谢8楼和13楼
回复 支持 反对

使用道具 举报

7

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-3-11
在线时间
0 小时
发表于 2015-2-10 14:21:15 | 显示全部楼层
 回复【9楼】 redlake :
---------------------------------
我按照你说的做了,但是每次仿真都出现下面这个错误。



我不修改Trace中的Trace Setting的值的时候仿真就是正常的。原值默认为10Mhz,当前系统时钟设置的是72Mhz,我把10MHz改为72MHz的时候就出现上面那个框框。
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2012-7-20
在线时间
9 小时
发表于 2015-4-18 23:51:18 | 显示全部楼层
回复【9楼】redlake:
---------------------------------
请问一下,我如果不是用仿真器仿真,而是用软件仿真,那么如果系统运行时的频率是72MHZ,我应该如何设置Target选项卡里面的XTAL值,这里的XTAL
我应该设置为8MHZ呢?还是72MHZ?我外部晶振确实用的8MHZ,只是系统晶振是72MHZ,这里的XTAL我如何设置为好?
回复 支持 反对

使用道具 举报

17

主题

342

帖子

0

精华

高级会员

Rank: 4

积分
544
金钱
544
注册时间
2014-4-24
在线时间
20 小时
发表于 2015-5-22 14:52:37 | 显示全部楼层
回复【20楼】winter1970:
---------------------------------
同有疑问。
回复 支持 反对

使用道具 举报

8

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2012-7-20
在线时间
9 小时
发表于 2015-5-26 14:48:27 | 显示全部楼层
回复【21楼】STM32VBT6:
---------------------------------
如果是72MHZ,那么XTAL应该为8MHZ
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 00:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表