[ixp1200] Timer in IXP1200EB

Scott C. Karlin scott at CS.Princeton.EDU
Mon Nov 18 13:15:38 EST 2002


Hi Sandeep,

This is an OS-independent answer to your question.  I am not
familiar enough with VxWorks to know which timers or interrupts
it claims for itself.  Such conflicts could very well be the
cause of your problem.

Here's a sketch of what you need to do to use the timers:
  (1) decide if you want to use FIQ or IRQ interrupts.
  (2) load the address of your ISR at the correct vector location.
  (3) Make sure you have an IRQ stack set up
  (4) Choose a timer  (e.g., Timer 1)
  (5) Load the initial value into the timer
         *((volatile u32 *) 0x42000300) = 0xFFFFFFFF;
  (6) Enable the timer to generate IRQ interrupts
         *((volatile u32 *) 0x42000188) = 0x00000010;
  (7) Enable interrupts in the StrongARM core
         asm volatile("mrs  %0, cpsr" : "=r" (cpsr));
         cpsr &= ~0x80;
         asm volatile("msr  cpsr, %0" : : "r" (cpsr));

Anyway, this is the basic idea.

Scott


  
On Fri, Sep 27, 2002 at 07:41:55PM -0700, Sandeep P wrote:
> Hello All,
>           Has anybody tried to program the timer in IXP1200? I currently
> have VxWorks running on it. I am trying to use Timer 4 for my application,
> but control is not reaching my ISR. I believe I have done everything as
> mentioned in the programmer's guide. I have enabled the IXP1200_IRQSTATUS,
> but it still doesnt work. Can anybody tell me what step I could be missing.
> 
> Thanks,
> Sandeep.



More information about the ixp1200 mailing list