嵌入式开发者社区

标题: 定时器问题 [打印本页]

作者: importantlife    时间: 2016-8-29 10:47
标题: 定时器问题
我用的是omapl138开发板。当我运行ad7606_dsp的demo程序的时候,同时在arm端运行watchdog程序,发现一旦打开watchdog设备文件后,dsp端的计时器就停止工作了。dsp端的配置文件是部分内容是这样的/ j( n2 E! P1 Z' P, @% e. Q8 ~
/* configure SysBios to use the lower half of Timer 1 */0 Q" S% D; I& R7 s; g% Y9 I
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
. Y1 L7 \+ _3 c) c4 J. X* Yvar Clock = xdc.useModule('ti.sysbios.knl.Clock');( i+ D/ c, S0 i
Timer.timerSettings[1].master = true;
) ]7 {8 v7 |) X9 Q, B/ }1 STimer.defaultHalf = Timer.Half_LOWER;7 Q: G8 [( t8 Q6 U/ n, d
Clock.timerId = 1;: C9 j/ r* r( ^
Clock.tickPeriod = 5; //5us& \/ W; c: @5 G- }
arm端的watchdog程序和dsp端的计时器发生冲突了么?他们是共用了一个计时器么?这个cpu上一共几个定时器,怎么使用才能避免冲突呢?" L7 B( y5 z" y
我将Clock.timerId 分别改成0 、2 、3,结果发现只有改成3的时候才可以,为什么呢?还有,我在使用Clock_create()的时候,我并没有: b8 U, [& I% Y, b8 M% l, l0 L7 G- R1 f
指定使用哪个timer,难道是默认的使用Clock.timeId指定的timer吗?这样一来不就只能在DSP中使用同一个timer了?我要是想同时使用其他的timer该怎么办呢?  |* G- V7 q4 `
大神们!
作者: 希望缄默    时间: 2016-8-29 17:16
CPU 支持四个! }- ]+ S& E1 _2 P, `
ARM Linux$ i. Y( \+ j$ M1 P4 W% I
定时器 0 为系统提供时间基准
* A* E) ]+ G# g) J7 V定时器 1 看门狗定时器
3 C. f. E0 b; m. s4 T5 ?DSP SYS/BIOS
/ m$ R$ q$ a) V7 WClock.timerId 为系统提供时间基准
! k+ ]1 ^0 y& _" t5 i如果定时器 2 不能用可能是被占用了8 w' n0 _; \6 J- o1 j- X
$ c" X" w% O" h# o, _$ H
定时器都是 64位的 可以拆成两个 32位使用
作者: importantlife    时间: 2016-8-30 09:13
是不是timer2为dsp系统提供时间基准?因为一旦使用timer2,dsp的sys/bios系统就启动不了了
作者: 希望缄默    时间: 2016-8-30 13:43
importantlife 发表于 2016-8-30 09:13* Z  P6 D. m( L- {# X2 T* N0 N7 {
是不是timer2为dsp系统提供时间基准?因为一旦使用timer2,dsp的sys/bios系统就启动不了了 ...
2 }7 I" M/ P( Z5 X; s% h5 e# a
Clock.timerId = 1; 这个配的就是系统使用的




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4