ts-7000
[Top] [All Lists]

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

To: "" <>
Subject: Re: [ts-7000] Re: Avoiding task preemption by Linux kernel
From: Walter Marvin <>
Date: Sun, 14 Aug 2011 14:05:00 -0700 (PDT)


there are several possible things that might work, but most of them disturb something else


From: al <>
To:
Sent: Sunday, August 14, 2011 3:17 PM
Subject: [ts-7000] Re: Avoiding task preemption by Linux kernel

 
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.
> >>
> >>
> >>
> >>
> >>
> >
>





__._,_.___


Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: =Email Delivery: Digest | m("yahoogroups.com?subject","ts-7000-fullfeatured");=Change Delivery Format: Fully Featured">Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | =Unsubscribe

__,_._,___
<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