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.

C6657有多少个可用的定时器

Other Parts Discussed in Thread: SYSBIOS

用CCS创建了一个简单的SYS/BIOS测试程序,使用Timer64创建定时器。先调用Timer_getNumTimers,一共有16个可用定时器,再通过Timer_getStatus查询所有定时器,只有id为2,3的定时器状态为FREE,其它定时器状态都是INUSE,为什么只有2个定时器可用?查看定时器寄存器,这些显示在用的定时器应该也没有人使用。请教一下,是什么地方设置不正确?

  • 参考以下帖子看一下是否有帮助。
    e2e.ti.com/.../266171
  • 你好,按照文章中的建议试过了,仍然不行,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)文档里没有找到,这是哪个文档里的描述?什么是本地定时器?

  • 从 bios_6_75_02_00/docs/cdoc/index.html给出的timer mapping table来看,timer4~7是不支持的。

  • 它这里应该不是这个意思,这里只是表示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(&params);
    params.eventId = eventId;
    params.arg = 28;
    params.enableInt = TRUE;
    Hwi_create(8, &CpIntc_dispatch, &params, &eb);

     


  • 我已经咨询了相关工程师,正在等待回复。
  • 我自己尝试了一下,8个定时器都是可以用的。自己写了一个中断程序,Timer4到Timer7都可以正常工作。
    我猜想Timer0到Timer3,因为是Primary中断,实现起来方便,所以SYS/BIOS支持。TI的同事能否给个官方的说法?