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.

SYS/BIOS Clock Module Skips Firing Periodically

Other Parts Discussed in Thread: TMS320C28346

I have encountered an issue while using the SYS/BIOS clock module and wonder if anybody else has seen it and/or fixed it.

I am doing some development on a TMS320C28346 using SYS/BIOS and CCS Version: 4.2.4.

I have configured the Clock module of SYS/BIOS for a 1000us clock tick and I set up a clock to fire every 5 ticks which means it should go off at about 200Hz.

This is a barebones app right now, so no possibility of other HWI or SWI pre-emption messing things up.

I'm toggling one of my GPIOs to let me know when the clock goes off and reading it off an O-Scope so I'm pretty certain my measurement is correct.

Unfortunately, I'm seeing that at a frequency of about 1Hz the Clock simply doesn't fire.  It skips it and then drops back into a normal routine of firing.

I've adjusted the clock tick values (trying anything from 100 to 5000) and also adjusted the clock ticks required to fire the Clock.  As I've experimented more it seems that it's not necessarily a 1Hz glitch, so much as a problem that occurs every 200 (or so) times the Clock fires.

Has anybody encountered this?  This isn't a show-stopper for me, but more of a real pain that I'll have to work around.

  • Frank,

    Which version of SYS/BIOS are you using?

    Is this a custom board or is this happening on one of TI development boards?

    Todd

  • I'm using 6.32.2.39.

    I'm using the Dev Kit.  Definitely not a custom board.

    Would my System_printf statements cause this issue?  It was my understanding that those calls had been optimized to minimize impact.  I removed them and I'm not seeing the symptoms anymore (right this second anyway).

  • Thanks. System is a front-end to a system provider. We have a two system providers: SysMin and SysStd.

    If you are using SysStd and calling System_printf, the target is actually being halted and CCS reads the output and then restarts the target. So this will definitely impact your interrupts frequency! You can look in the .cfg for the following:

    var SysStd   = xdc.useModule('xdc.runtime.SysStd');
    System.SupportProxy = SysStd;

    If you have this, change it to

    var SysMin   = xdc.useModule('xdc.runtime.SysMin');
    System.SupportProxy = SysMin;

    Here is a discussion of SysMin vs SysStd (under the Configuring the System Module section): http://rtsc.eclipse.org/docs-tip/Overview_of_xdc.runtime/Example_1

    SYS/BIOS has a Log module also. This is a much more optimized way to leave bread trails. You can use ROV or CCS to display the data.

    Todd