ts-7000
[Top] [All Lists]

[ts-7000] Re: Avoiding task preemption by Linux kernel

To:
Subject: [ts-7000] Re: Avoiding task preemption by Linux kernel
From: "al" <>
Date: Sun, 14 Aug 2011 19:17:50 -0000
Your 10 mSec period interrupt source is the Linux system clock 'tick'.
If the SPI IO window of 20 mSec is not frequently used, you could look into 
writing a simple Linux kernel application or driver that masks all interrupts 
during that window.  Simply masking interrupts does not solve your problem 
because there will likely be interrupts from the FPGA that are related to the 
SPI bus: the link from the ARM processor to the outside world is only through 
the FPGA and the only link from the ARM to the FPGA is a high-speed SPI bus 
link.  Masking out all interrupts essentially disables the Linux kernel, and 
requires you to handle all SPI-related interrupts.

If the 20 mSec SPI IO window is expected frequently, Linux or any other 
operating system based solution is not the way to do it.  The correct way is to 
use a dedicated IO processor.  You could rewrite the 7550 BusyBox loader to 
load an application which does nothing but SPI communication.  Or use a cheaper 
PIC-based IO processor.

Or live with the periodic interrupts.  I routinely read and write 72-bit 
SPI-based registers with no problems, despite the clock interrupts.  A also set 
up 72 chained 8-bit DACs in a single SPI output operation using our 7500.  It 
works well despite Linux preemption.

Look at your requirements.  Is it mandatory that the SPI IO operation be 
uninterrupted?  If so, Linux is not the way to go.

HTH

--- In  "J. Langley" <> wrote:
>
> 
> 
> Clark Dunson <> wrote:
> 
> >I am also interested, thanks.
> >Does anybody know whether compiling the main interrupt to use a  
> >slower speed,
> >and/or using nice or renice to set the scheduling priority like -19,  
> >or -20 will make
> >much of a difference?
> >
> >On Aug 12, 2011, at 4:17 PM, Walter Marvin wrote:
> >
> >>
> >> you can't avoid technologic has a user space semaphore that they  
> >> test and force a tack switch if required the only way to avoid it  
> >> is to down all technologic servers
> >>
> >> From: tourindorian <>
> >> To: 
> >> Sent: Friday, August 12, 2011 9:04 AM
> >> Subject: [ts-7000] Avoiding task preemption by Linux kernel
> >>
> >>
> >> Hi,
> >>
> >> I'm developing an application (C code) on the TS7550 board, using  
> >> Linux 2.6. I got an issue trying to use continuously the SPI bus  
> >> for 20ms.
> >> Every 10ms, the communication is interrupted during about 0.5ms. I  
> >> guess the Kernel scheduler interrupts the process.
> >>
> >> Do you have any idea to fix it? Could I change the tick rate of the  
> >> scheduler so that it is about 50 or 100ms instead of 10ms? Could I  
> >> prevent the Kernel from preempting the task during that critical  
> >> section?
> >>
> >> Any idea would be useful :-)
> >>
> >> Many thanks,
> >>
> >> Dorian.
> >>
> >>
> >>
> >>
> >> 
> >
>




------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU