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.

DSP Bios, CLK_START routine not being called.

Hello,

I just wanted to ask under what circumstances will the CLK_START routine under BIOS_Startup not be called, and, therefore, will not initialize the timers.

The reason I am asking is that my Bios is not calling the CLK_Start routine although I have the Clock Manager configured for a timer (Timer 1), and have the default PRD - Periodic function manager set  Using the CLK Manager to drive the PRD in the *.tcf file.  This has initialized the timers on our previous platforms (DM648, DM6467), but is not initializing on my current platform.  First time with this Bios version.

Setup:  DSP Bios V 5.41.09.34 running on a DM6437 EVM Board... PSP not being used, just purely a DSP Bios Application with mini-drivers.

Thanks,

 

  • Hi,

    You might want to call CLK_start() (and PRD_start() if you're using it), somewhere just before or after the start of DSP/BIOS. I have just before the end of main() a CLK_stop() to ensure it doesn't activate the periodic timers until some time later when I want them to, where I do a CLK_start() which works. Do not forget the ISRs for the dispatcher which treat the periodic timers (if any periodic timers are being used).

    Cheers, M

  • Thanks for the feedback.  Yes, I have put the Timer Initialization Routines into a 'User_init' function that gets called before Bios starts up (including enabling the C64x+ interrupt for the timer which the bios, for some reason, never sets either).  In doing that, the PRD functions and places where Bios needs the timers work.

    The routines to handle the timers in Bios do work for the DM648 DSP, so I was just wondering what is wrong with the Timer initialization for the DM6437?

    Thanks,

     

  • What version of BIOS are you using?   I seem to recall a bug where the check box in the below dialog wasn't checked for the 6437 config.  Make sure that this check box is checked.


    -Karl-

  • Thanks Karl.

    Sorry I took so long to respond, but I only just now got the notification that this thread had further feedback.

    I double-checked my .tcf file and it shows the same as your graphic includes, except that I am using the Timer in 32-bit chained mode.  Does this make a difference?

    I'm using Bios-v5.41.09.34.  The Bios is still not calling the BIOS Clk Init routine.

    Any ideas?

    Thanks,

     

  • Using the timer in 32-bit chained mode should be perfectly okay.  If you're configuration is the same as the above screen shot except for the 32-bit chained mode, I would expect this to work.  If you are using Timer1, the base address of this Timer is: 0x01C21800.  You should be able to put this into a memory window and see the Timer ticking if its correctly configured.

    One suggestion would be to make sure that the Timers is power enabled.  The timers on DM6437 need to be power enabled first.  BIOS contains a routine called  CLK_enableTimer() which power enables the Timer for this device.  Can you make sure its getting called by putting a breakpoint in the function?

    FYI:  In BIOS_startup, it directly programs up the Timer registers.  It doesn't call CLK_start() routine.

    Judah