硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3157|回复: 11
收起左侧

[有问必答] 为什么这么强大的keil居然没有跑表的功能?

[复制链接]

11

主题

30

回帖

63

积分

初级会员

积分
63
发表于 2018-2-12 22:56:24 | 显示全部楼层 |阅读模式
在硬件仿真时用PIC和其他单片机时想看看一段代码执行了多少指令及多少时间,那是相当的便捷。keil mdk里怎么连这个基本的功能都没有呢(至少我还没有在jlink调试时发现)? 一般测试一段delay都是用IO反转后示波器监测来看实际延时时间的,可是没有示波器的时候怎么办? 大家都是怎么看执行时间的呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-2-13 00:14:45 | 显示全部楼层
这个功能叫Trace,山寨JLINK不行的,需要用正规的J-Trace(非JLINK),价格比较贵,需要1万多,功能相当强劲,你在MDK的help文档里面检索Instruction Trace就会找到很多介绍

QQ截图20180213001320.png
回复

使用道具 举报

11

主题

30

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2018-2-13 18:34:36 | 显示全部楼层
eric2013 发表于 2018-2-13 00:14
这个功能叫Trace,山寨JLINK不行的,需要用正规的J-Trace(非JLINK),价格比较贵,需要1万多,功能相当强 ...

1W多的国内电工用不起的说, 有没有其他经济的方法呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-2-14 00:06:58 | 显示全部楼层
ZXB 发表于 2018-2-13 18:34
1W多的国内电工用不起的说, 有没有其他经济的方法呢?

bsp_timer.C有个时间测量函数,单位毫秒。如果你要测试的函数执行时间低于1ms,执行1000次求平均即可。
回复

使用道具 举报

335

主题

2037

回帖

3047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3047
发表于 2018-3-5 14:03:15 | 显示全部楼层
有这个功能,debug界面的左边就有cpu
回复

使用道具 举报

335

主题

2037

回帖

3047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3047
发表于 2018-3-5 14:03:49 | 显示全部楼层
本帖最后由 caicaptain2 于 2018-3-5 14:13 编辑

debug界面就有,界面左边就是的,cpu执行的时间和指令个数。 那个sec就是秒。
Snipaste_2018-03-05_14-08-29.png

如果需要这个时间准确,需要在trace界面中设定时钟频率。我这个虽然是灰色的,但是也是有作用的。
Snipaste_2018-03-05_14-10-53.png



回复

使用道具 举报

15

主题

38

回帖

83

积分

初级会员

积分
83
发表于 2018-3-6 09:01:32 | 显示全部楼层
5L正解
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2018-3-6 09:18:56 来自手机 | 显示全部楼层
caicaptain2 发表于 2018-3-5 14:03
debug界面就有,界面左边就是的,cpu执行的时间和指令个数。 那个sec就是秒。



灰色不行的,没用,我们用的渣渣link只有itm功能。你这个必须使能才行。要使能并配置ports 0,这个时间功能只能作为娱乐,误差很大。
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2018-3-6 09:21:52 来自手机 | 显示全部楼层
刘志伟 发表于 2018-3-6 09:01
5L正解

这还正解。。。
回复

使用道具 举报

11

主题

30

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2018-4-19 23:38:45 | 显示全部楼层
trace从来就不让设置
回复

使用道具 举报

11

主题

30

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2018-4-19 23:40:57 | 显示全部楼层
有一个办法就是看SysTick的寄存器的值,两断点值相减可以求出计数值从而得到执行时间。就是麻烦了点
回复

使用道具 举报

335

主题

2037

回帖

3047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3047
发表于 2018-4-23 16:17:36 | 显示全部楼层
byccc 发表于 2018-3-6 09:18
灰色不行的,没用,我们用的渣渣link只有itm功能。你这个必须使能才行。要使能并配置ports 0,这个时间功 ...

我实验过,确实可用。
你先勾选enable,然后就可以改晶振数值,然后再取消勾勾,然后debug界面的时间就正确了。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-11 18:46 , Processed in 0.326177 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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