打印

俺在德仪社区的帖子没人回--关于CLA中断响应延迟时间的问题

[复制链接]
3625|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dontium|  楼主 | 2013-12-23 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于CLA中断响应延迟时间的问题(F28035)
在用C28中断,用CLA处理,C28的中断响应时间在WIKI上看到了,但没有发现CLA的响应时间。在这里也没有搜索到,所以烦请解答。

如,C28 CPU内部产生ADCINT标志寄存器,触发CLA TASK,在进入CLA执行第一个语句时,此时延时(距ADCINT标志寄存器产生时)多少个时钟?

相关帖子

沙发
dirtwillfly| | 2013-12-23 20:37 | 只看该作者
好像他们的作息时间和咱们不一样

使用特权

评论回复
板凳
dirtwillfly| | 2013-12-23 21:28 | 只看该作者
不是太明白楼主的意思。
CLA支持8个任务。Task1的优先级最高,Task8的优先级最低。可以独立运行和执行一个任务,与主CPU无关。一次只能服务一个任务,没有任务嵌套。
触发CLA TASK,在进入CLA执行第一个语句时的延时,要考虑CLA是否忙,若忙,要考虑高优先级任务的执行时间。

如果 CLA空闲(当前没有任务正在运行),已经被标识出来(MIFR)且已使能(MIER)的最高优先级中断将启动。整个流程如下:
相应 RUN寄存器中的位被置位(MIRUN),标志位(MIFR)被清除;
CLA开始从相应中断向量(MVECTx)指定的位置开始执行。MVECT 是基于起始
程序存储器单元的一个偏移量;
CLA执行指令,直至找到 MSTOP 指令,表明任务结束;
清除 MIRUN 位;
向 PIE 提交任务特定的中断。告知主 CPU任务已经结束;
CLA返回到空闲状态。

使用特权

评论回复
地板
dontium|  楼主 | 2013-12-24 14:34 | 只看该作者
dirtwillfly 发表于 2013-12-23 21:28
不是太明白楼主的意思。
CLA支持8个任务。Task1的优先级最高,Task8的优先级最低。可以独立运行和执行一个 ...

俺的意思是:

起点:ADCINT(用它来触发CLA TASK)
终点:TASK开始执行(执行第一条语句时)

问题:起点到终点的时间(时钟数)

使用特权

评论回复
5
dontium|  楼主 | 2013-12-24 14:36 | 只看该作者
dirtwillfly 发表于 2013-12-23 20:37
好像他们的作息时间和咱们不一样

不是刚发的

使用特权

评论回复
6
dirtwillfly| | 2013-12-24 20:22 | 只看该作者
dontium 发表于 2013-12-24 14:34
俺的意思是:

起点:ADCINT(用它来触发CLA TASK)

这个还真没研究过:L

使用特权

评论回复
7
dirtwillfly| | 2013-12-25 21:41 | 只看该作者
dontium 发表于 2013-12-24 14:34
俺的意思是:

起点:ADCINT(用它来触发CLA TASK)

或许编译之后可以看看汇编代码的情况,能看出响应ADC中断的延迟时间

使用特权

评论回复
8
dontium|  楼主 | 2014-1-1 20:45 | 只看该作者
dirtwillfly 发表于 2013-12-25 21:41
或许编译之后可以看看汇编代码的情况,能看出响应ADC中断的延迟时间

谢谢你顶帖。

在看CLA的文档及例程时,发现在进入CLA TASK后,如是处理ADC结果,TI的例程是(ADC中断)先处理几个其它问题后,等ADC结果出来了再取其值。

这样看,CLA中断应该是立即执行的,并没有和CPU中断那样有潜伏期问题。

但这并非官方的观点。具体是什么情况,只有官方解释。

使用特权

评论回复
9
盖志敏| | 2014-1-1 21:20 | 只看该作者

使用特权

评论回复
10
xxxxcm| | 2014-1-2 16:05 | 只看该作者
我最近也在折腾CLA跑程序的时间问题
CLA用不了IO,所以以前的测时间方法不能用了。
用TI论坛上的CPU定时器去测试,一个PI算法要18us。之前用主cpu中断去跑,也就1.5us。
不知道该怎么测?
楼上们有没有好的方法啊?
跪求

使用特权

评论回复
11
dontium|  楼主 | 2014-1-2 17:36 | 只看该作者
本帖最后由 dontium 于 2014-1-2 17:39 编辑
xxxxcm 发表于 2014-1-2 16:05
我最近也在折腾CLA跑程序的时间问题
CLA用不了IO,所以以前的测时间方法不能用了。
用TI论坛上的CPU定时器 ...

我没有作具体的测试时间,只是查指令占用的周期数。

用到18US,用一千条指令,时间有些长啊。

用CPU的运算,应该比CLA差一些的。它的指令没有CLA好用,特别是并行指令很多。

使用特权

评论回复
12
xxxxcm| | 2014-1-2 18:21 | 只看该作者
dontium 发表于 2014-1-2 17:36
我没有作具体的测试时间,只是查指令占用的周期数。

用到18US,用一千条指令,时间有些长啊。

我用的是CCS5.5,自带CLA_C编译器。
PI算法是用C写的。即便如此,我觉得也不可能有上千条指令。
所以我怀疑我的测试方法不对,但是又找不到一个好的测试手段,哎。
另外,楼上,指令的周期数怎么查呢?

使用特权

评论回复
13
dontium|  楼主 | 2014-1-2 22:09 | 只看该作者
xxxxcm 发表于 2014-1-2 18:21
我用的是CCS5.5,自带CLA_C编译器。
PI算法是用C写的。即便如此,我觉得也不可能有上千条指令。
所以我怀 ...

CLA有C编译器了?哈哈,看来我是落后了。

PID算法,我用汇编,也只不过一二百条指令。少的百条以内。

我是数指令数量及指令所执行的周期数来判断执行时间的。

使用特权

评论回复
14
xxxxcm| | 2014-1-3 07:29 | 只看该作者
dontium 发表于 2014-1-2 22:09
CLA有C编译器了?哈哈,看来我是落后了。

PID算法,我用汇编,也只不过一二百条指令。少的百条以内。

恩。CCS4以上的都有的。需要CCS里面设置下。
但是那样算,不知道准不准的。
而且要对汇编指令的执行周期很熟才能算的准。
那样心里没底啊。

使用特权

评论回复
15
dontium|  楼主 | 2014-1-9 00:19 | 只看该作者
xxxxcm 发表于 2014-1-3 07:29
恩。CCS4以上的都有的。需要CCS里面设置下。
但是那样算,不知道准不准的。
而且要对汇编指令的执行周期 ...

CLA也只那几条指令,很容易掌握的。用汇编出来的程序执行效率还是很高的。我看了我的PID部分的宏,只有十个周期就完成了。

我搞F28027时觉得C这语言编译后的指令很多,就学了C28的汇编,这样对精确控制时序关系非常有用。


使用特权

评论回复
16
xuan309170083| | 2014-1-9 10:26 | 只看该作者
发在社区的帖子很多时候没什么人理,而且社区的人气也不是很高,建议你直接 给TI 的技术支持发邮件,这种方式他们的回复和负责度是非常好滴!

使用特权

评论回复
17
原野牧歌| | 2014-1-28 01:39 | 只看该作者
学习了,关注这个问题,工业控制,关注时间周期问题……

使用特权

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

本版积分规则

个人签名:官向官来民向民,穷人向的是穷人

151

主题

1172

帖子

10

粉丝