打印

TI库自带的延时函数 (DSP28x_usDelay)

[复制链接]
6120|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
free_稀饭|  楼主 | 2016-9-21 20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位朋友,大家好:
    在此,我想请教一下 关于TI库自带的延时函数(DSP28x_usDelay)问题:

    当把程序加载到RAM中,现象正常;可当把程序加载到Flash中时,发现有较大的延迟现象

    看了DSP281x_usDelay文件的代码,发现该函数已分配到ramfuncs段(该延时函数将在RAM中运行),那为何当把程序下载到Flash时
还会出现如此大的延迟呢?

    其次,各位在调试程序时,一般是用自己编写的延时函数还是TI库中的延时函数?
    若是采用自己编写的延时函数,那该如何确定该函数的延时时间呢?是通过观察CCS中的Clock工具吗?


相关帖子

沙发
airwill| | 2016-9-23 14:21 | 只看该作者
因为是在 RAM 里运行, 应该差别不大, 当然前面调用和返回的过程是需要时间的

使用特权

评论回复
板凳
free_稀饭|  楼主 | 2016-9-23 14:47 | 只看该作者
本帖最后由 free_稀饭 于 2016-9-23 14:50 编辑
airwill 发表于 2016-9-23 14:21
因为是在 RAM 里运行, 应该差别不大, 当然前面调用和返回的过程是需要时间的 ...

版主,您好:
言外之意,DSP28x_usDelay这个延时函数在Flash运行与在RAM运行是一样的,因为就算把DSP28x_usDelay加载到Flash,该函数也是被分配到RAM中执行  (是这样理解的吗?)

那,对于一些芯片的操作,延时函数都是用自己编写的简单函数吗?那又该如何确定延时时间呢?

使用特权

评论回复
地板
airwill| | 2016-9-23 18:17 | 只看该作者
如果看了 DSP28x_usDelay内部是实现, 用汇编写的, 里面已经是最简单的了.
ramfuncs 函数会加载到 RAM 里运行的

使用特权

评论回复
5
free_稀饭|  楼主 | 2016-9-23 20:34 | 只看该作者
airwill 发表于 2016-9-23 18:17
如果看了 DSP28x_usDelay内部是实现, 用汇编写的, 里面已经是最简单的了.
ramfuncs 函数会加载到 RAM 里运 ...

谢谢版主的解答:
我把程序下载到RAM调试时正常,可当把程序下载到Flash就会出现较大的延迟现象;
经过测试,是DSP28x_usDelay延时函数的问题(DSP28x_usDelay已分配到ramfuncs )
我想问一下,为何在Flash中不能用DSP28x_usDelay延时函数呢

使用特权

评论回复
6
airwill| | 2016-9-23 21:31 | 只看该作者
是不是设置问题, 会不会这个 ramfuncs 段没有进入 SRAM 中, 可以调试器跟踪一下, 看看这个 DSP28x_usDelay 是不是在 RAM 中

使用特权

评论回复
7
free_稀饭|  楼主 | 2016-9-23 21:41 | 只看该作者
airwill 发表于 2016-9-23 21:31
是不是设置问题, 会不会这个 ramfuncs 段没有进入 SRAM 中, 可以调试器跟踪一下, 看看这个 DSP28x_usDelay  ...

谢谢,版主:
那我再调试一下试试看,若有问题再向您请教

使用特权

评论回复
8
free_稀饭|  楼主 | 2016-9-24 16:19 | 只看该作者
airwill 发表于 2016-9-23 18:17
如果看了 DSP28x_usDelay内部是实现, 用汇编写的, 里面已经是最简单的了.
ramfuncs 函数会加载到 RAM 里运 ...

版主,你好:
经过调试,推测原因应该是中断执行时间过长的问题(程序下载到Flash)
当我屏蔽掉中断的大部分代码块时,发现延迟现象好了很多

使用特权

评论回复
9
airwill| | 2016-9-24 17:19 | 只看该作者
哦, 原来是频繁而长时间的中断服务程序导致的.
这也是指令延时的缺点所在

使用特权

评论回复
10
Stannis| | 2016-9-29 21:01 | 只看该作者
中断里放个标志控制,在主函数里处理

使用特权

评论回复
11
free_稀饭|  楼主 | 2016-9-30 16:17 | 只看该作者
Stannis 发表于 2016-9-29 21:01
中断里放个标志控制,在主函数里处理

谢谢;已这样处理
再请问一下,在实时性要求较高的场合(如 电机控制),是选择使用自己编写的延时函数,还是会用
TI的DSP28x_usDelay延时 呢

使用特权

评论回复
评论
youxiaoyu666 2019-12-27 10:41 回复TA
我也在做电机控制,请问您最后用的是自己写的延时函数还是TI官网上的函数? 谢谢! 
12
condition| | 2019-12-27 16:08 | 只看该作者
没有详细研究过这个,一起学习一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

76

帖子

1

粉丝