[En-Nut-Discussion] Timing on AVR32

Daniel Fiedler (Ethernut) ethernut at fitus.de
Mon May 21 22:13:47 CEST 2012


Hi,

does anyone has some ideas?

System runs perfectly last days. But boot (time until main() is called) is greater than 15s.

Kind regards
Daniel

-----Ursprüngliche Nachricht-----
Von: en-nut-discussion-bounces at egnite.de [mailto:en-nut-discussion-bounces at egnite.de] Im Auftrag von Ethernut
Gesendet: Donnerstag, 17. Mai 2012 08:26
An: Ethernut User Chat (English)
Betreff: Re: [En-Nut-Discussion] Timing on AVR32

Hi Thiago,

I have tested these change last night. Up to now i don't have problems with the momory/ram. 
Opposing in my short tests tonight it seams that http-server and the other Parts of my App runs more safe.

> What do you mean it takes 20s to boot? To start firing your timer or 
> to actually reach main() first line? (Actually NutMain since main is a 
> preprocessor macro in NutOS)

I mean it takes the Time to reach first line of the main function of my App.

I have seen, that before the main() is reached, the LEDs on the RJ45 connector lights randomly. But a stable physical network connection is not setup. I assume Nut/os want to boot, but is interrupted maybe by something like a watchdog.

Von meinem iPhone gesendet

Am 17.05.2012 um 03:50 schrieb Thiago A. Corrêa <thiago.correa at gmail.com>:

> Hi Daniel,
> 
> On Wed, May 16, 2012 at 8:22 PM, Daniel Fiedler (Ethernut) 
> <ethernut at fitus.de> wrote:
>> void NutRegisterTimer(void (*handler) (void *)) {
>>    /* Set compare value for the specified tick frequency. */
>> //    Set_system_register(AVR32_COMPARE, NutGetCpuClock() / NUT_TICK_FREQ + Get_system_register(AVR32_COUNT));
>>        Set_system_register(AVR32_COMPARE, NutGetCpuClock() / 
>> NUT_TICK_FREQ );
>> 
>>    sig_sysCompare.ir_handler = handler;
>> 
>>    register_interrupt(SystemCompareIrqEntry, AVR32_CORE_COMPARE_IRQ, 
>> AVR32_INTC_INT0); }
>> 
>> I changed line 4 in line 5. Now system seems to run at the correct speed.
>> But Nut/os needs about 15-20s for boot/init.
>> 
>> Could someone explain this function?
>> 
> 
> If memory serves well, NutGetCpuClock() / NUT_TICK_FREQ was supposed 
> to be the clock cycles in 1ms. The COUNT register increments 
> regardless of pipeline stalls. So, after the equivalent of 1ms cycles, 
> the COMPARE IRQ would fire calling the handler callback.
> 
> This is explained in section 2.6 of the "Technical Reference Manual".
> 
> What do you mean it takes 20s to boot? To start firing your timer or 
> to actually reach main() first line? (Actually NutMain since main is a 
> preprocessor macro in NutOS)
> 
> Kind Regards,
>    Thiago A. Correa
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
_______________________________________________
http://lists.egnite.de/mailman/listinfo/en-nut-discussion




More information about the En-Nut-Discussion mailing list