用CCS创建了一个简单的SYS/BIOS测试程序,使用Timer64创建定时器。先调用Timer_getNumTimers,一共有16个可用定时器,再通过Timer_getStatus查询所有定时器,只有id为2,3的定时器状态为FREE,其它定时器状态都是INUSE,为什么只有2个定时器可用?查看定时器寄存器,这些显示在用的定时器应该也没有人使用。请教一下,是什么地方设置不正确?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
用CCS创建了一个简单的SYS/BIOS测试程序,使用Timer64创建定时器。先调用Timer_getNumTimers,一共有16个可用定时器,再通过Timer_getStatus查询所有定时器,只有id为2,3的定时器状态为FREE,其它定时器状态都是INUSE,为什么只有2个定时器可用?查看定时器寄存器,这些显示在用的定时器应该也没有人使用。请教一下,是什么地方设置不正确?
你好,按照文章中的建议试过了,仍然不行,CFG配置:
ti_sysbios_timers_timer64_Timer.defaultHalf = ti_sysbios_timers_timer64_Timer.Half_DEFAULT;
ti_sysbios_timers_timer64_Timer.timerSettings[4].ownerCoreId = 0;
Clock.timerId = 4;
编译时出错提示:
Description Resource Path Location Type
ti.sysbios.timers.timer64.Timer.Instance#0 : Timer 4 is already in use or reserved (check availMask/availMaskHigh)。
另外这个帖子中讲的“Timers 0-3 are local timers and Timers 4-7 are shared”,我在《sprugv5a.pdf》(KeyStone Architecture Timer64p)文档里没有找到,这是哪个文档里的描述?什么是本地定时器?
它这里应该不是这个意思,这里只是表示4到7定时器不能通过统一地址直接访问,8个定时器是肯定的。
下面这段话也讲了0、1定时器分别是CORE0和CORE1的专属定时器,但你给的链接说2,3是本地定器就不知道是什么意思了。
你好 我现在也遇到这个问题了 我用的6657
sysbios程序在核0 cfg配置文件中clock用的是timer0 如果clock用是timer1 4 5 6 7就会编译提示Timer x is already in use or reserved (check availMask)
使用timer2 timer3可以产生定时中断
当我把核0的程序移植到核1 原本以为timer1专用在核1 结果timer1还是用不了
我的程序中有如下这样的的中断映射 如果cfg配置文件中clock选用timer0,timer2 timer3可以产生定时中断 但如下映射的中断8进不了中断服务
当我把cfg配置文件中clock选用timer2 只保留一个timer3 这时timer3可以产生定时中断 中断8可以进中断服务
情况就是这样!
感觉sysbios中对timer有什么限制!!!不能全用!!! 有没有可能修改这种限制 在哪里修改???
CpIntc_mapSysIntToHostInt(0, SYS_INT_MCBSP0_XINT, 28);
CpIntc_dispatchPlug(SYS_INT_MCBSP0_XINT, &McBSP0ISR_TX, SYS_INT_MCBSP0_XINT, TRUE);
CpIntc_enableHostInt(0, 8);
eventId = CpIntc_getEventId(28);
Hwi_Params_init(¶ms);
params.eventId = eventId;
params.arg = 28;
params.enableInt = TRUE;
Hwi_create(8, &CpIntc_dispatch, ¶ms, &eb);