[En-Nut-Discussion] Time needed to get packet from RTL onATmega128
Dusan Ferbas
dferbas at dfsoft.cz
Tue Jan 11 14:55:44 CET 2005
Hi Bengt,
my idea is not to reduce number of NOPs. But exchange them with a PE7 test.
We tested 3.5 nicrtl driver - device hangs and due to a watchdog system
restarts. It yields very often (in absolute time units). With our tick
based yielding we still are not able to respond during packet storms but we
remain alive and effortlessly continue to respond.
I am not talking about "my" interrupt. I am talking about
dev/nicrtl.c:NicInterrupt() routine. There is not so much code in it. How
long you think it can take ?
IOCHRDY can save only time in NicGetPacket(). But this can help in ARP
packet recognition.
How can I enable nested interrupt ? Nut/OS no longer supports it.
Thanks
>From: "Bengt Florin" <bengt at florin.se>
>
>Dusan,
>
>I'm sorry to say I never succeeded finding a clever solution to use IOCHRDY.
>The 16 NOP's were inserted by pure experimenting.
>Hook a scope or logic analyzer to IOCHRDY pin.
>Then reduce the amount of NOP's until IOCHRDY is asserted. Then add one.
>The 16 NOP's were tested for running at 16MHz so if you are running at lower
>speeds you could cut some off.
>
>However not much speed is gained in doing this. If your current interrupt
>takes
>50us or 735 cycles at 14.7MHz a cut of 8-10 cycles will not do the job.
>
>If you dare to, you could try enabling nested interrupts in the nic
>interrupt.
>Then the uart interrupt may get a chance to run.
>Things may easily and quickly go bad when doing this, but careful coding
>normally
>sorts it out.
>
>God luck,
>bengt
Dusan
More information about the En-Nut-Discussion
mailing list