嵌入式开发者社区

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

作者: importantlife    时间: 2016-8-29 10:47
标题: 定时器问题
我用的是omapl138开发板。当我运行ad7606_dsp的demo程序的时候,同时在arm端运行watchdog程序,发现一旦打开watchdog设备文件后,dsp端的计时器就停止工作了。dsp端的配置文件是部分内容是这样的; ^  O6 I% M3 d% e+ v! U; ]$ K  W
/* configure SysBios to use the lower half of Timer 1 */
4 g4 h$ J) i# k% D4 {8 |. \var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');$ `4 r  e2 N7 b. j- q
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+ G- _# F* k) F0 }' g& }Timer.timerSettings[1].master = true;5 M( i: W/ N4 v3 V
Timer.defaultHalf = Timer.Half_LOWER;
( M/ Q! _2 `2 M& D2 SClock.timerId = 1;
3 u5 i0 H- F' L! uClock.tickPeriod = 5; //5us9 W* w% |0 E5 h+ [& z2 m% S6 |9 w2 Y
arm端的watchdog程序和dsp端的计时器发生冲突了么?他们是共用了一个计时器么?这个cpu上一共几个定时器,怎么使用才能避免冲突呢?1 M. p  [$ `1 S
我将Clock.timerId 分别改成0 、2 、3,结果发现只有改成3的时候才可以,为什么呢?还有,我在使用Clock_create()的时候,我并没有
& p+ @0 w6 p0 o2 ^. V' Y指定使用哪个timer,难道是默认的使用Clock.timeId指定的timer吗?这样一来不就只能在DSP中使用同一个timer了?我要是想同时使用其他的timer该怎么办呢?8 p  [" P+ S" }; {, O4 O2 @9 s
大神们!
作者: 希望缄默    时间: 2016-8-29 17:16
CPU 支持四个: |. u3 F' l( @/ c" f3 {
ARM Linux) o- _8 y: ^6 T8 |3 w( c
定时器 0 为系统提供时间基准% r4 A$ L4 X$ f) F/ n1 f
定时器 1 看门狗定时器
- _8 o; n/ w& _; O- {$ ^) P) ]DSP SYS/BIOS
5 m5 Q& a" F7 |+ |Clock.timerId 为系统提供时间基准, `. ], D" u( T! ^% P' P2 Q
如果定时器 2 不能用可能是被占用了
( t8 Y( T4 C- X, b1 |9 A
( d2 o% m+ T- |定时器都是 64位的 可以拆成两个 32位使用
作者: importantlife    时间: 2016-8-30 09:13
是不是timer2为dsp系统提供时间基准?因为一旦使用timer2,dsp的sys/bios系统就启动不了了
作者: 希望缄默    时间: 2016-8-30 13:43
importantlife 发表于 2016-8-30 09:138 x5 d3 N% a0 G/ }- f
是不是timer2为dsp系统提供时间基准?因为一旦使用timer2,dsp的sys/bios系统就启动不了了 ...
* S( S* E0 h( T/ |
Clock.timerId = 1; 这个配的就是系统使用的




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