[En-Nut-Discussion] [Bulk] Re: Nut OS reliable on AT91SAM7X Evaluation Board?
Ulrich Prinz
uprinz2 at netscape.net
Thu Nov 19 00:37:03 CET 2009
Hi!
Marcus Jansson schrieb:
> Ulrich Prinz wrote:
>>> Marcus Jansson schrieb:
>>>> I'd like to implement PDC/DMA for the network and the SPI channels.
>>> This can be done, the SPI seem to have a long list of errata associated with the PDC, though.
>>>
>> Yes, I saw it and I don't like it :) But what should I do, I'd like to
>> get out optimal performance...
>
> All I see is an opportunity clever workarounds.
Yea, read the part today and was not so upset as I feared. There are
only a few erratas about SPI and PDC and mostly problems with CS1 or
different timing setups ( SPI timer and CPOL). In my system, CS1 is not
used for any device and CPOL is the same for all devices. So there
should be no problem. It is some more work to detect these situations
that possibly crash in a general Nut/OS version. If you write an open
source driver, it should be more comfortable... or have #warning or lots
of comments...
>
>>>> If supported, I'd like to implement it for a background memcpy too.
>>> I can not see how this can be done with the PDC ...hand optimized LDM/STM block copy ... existing
>>> slow memcpy()... increasing performance in internal RAM?
>>>
>> Yeah ... optimization ... CPU driven memcpy ... many different tasks...
>> It's another strategy... DSP ... DMA ... modify the content ... chain
> > ... pipe ... totally different ... 12MBit ... polling mode No!...
>
> Yes, that should be possible. I wasnt thinking out of the box.
> These pipes btwn ETH-unit and SPI are totally different.
> The CPU will mostly wait for DMA to be finished! Lots of power left for other
> things to do. Very good.
Yes if it works, it can be a great speed improvement. But it is
difficult to implement in an 'intelligent' way, as Ole stated in this
thread. Setting up 10 PDC registers doesn't make sense if you need to
transfer to bytes only :)
Best regards, Ulrich
More information about the En-Nut-Discussion
mailing list