Menu

Tree [89f0a1] master /
 History

HTTPS access


File Date Author Commit
 .settings 2014-02-13 shindy shindy [049c1c] - kompilovatelne konfigurace "bke" i "sm2_mu_rev_d
 nut 2017-10-18 vpekarek vpekarek [c25ffa] FIX: podminka pro nastaveni Fullduplex (DF)
 tools 2014-02-18 shindy shindy [035207] - zpristupnena pamet pro perierie (nyni si ji m...
 .cproject 2014-02-21 shindy shindy [76a7d2] - rozsahle zmeny ve strukture (oprava jmen soub...
 .project 2014-02-21 shindy shindy [76a7d2] - rozsahle zmeny ve strukture (oprava jmen soub...
 LICENSE.md 2018-02-05 Dusan Ferbas Dusan Ferbas [701f1c] Update LICENSE.md
 README.md 2018-02-05 Dusan Ferbas Dusan Ferbas [89f0a1] Create README.md
 _how_to_start.txt 2014-02-17 shindy shindy [daf456] - readme
 _revision.txt 2014-02-12 shindy shindy [faf6ad] kopie nut_bke
 nutconf.exe 2014-02-12 shindy shindy [a381b8] vraceni stareho konfiguratoru, novy blbne
 simple - Load and Run.launch 2014-02-12 shindy shindy [faf6ad] kopie nut_bke
 simple - Run.launch 2014-02-12 shindy shindy [faf6ad] kopie nut_bke

Read Me

This is a Nut/OS repository, which started with Nut/OS v5.0.5.

We fixed serious things at PPP implementation - proper process terminating,
where we modified at which context (thread) some actions are processed.
We also fixed a possibility to reenter a closed session and added a keep alive request sending
to keep a connection with no data transfer established.
Even such a connection is closed by some providers, e.g. O2.

We also added a NutUseCritical macro,
which was finally the only way, how to deal with our GCC compiler for m68k.
Without this, there was a really hard issue at NutThreadResume,
which sometimes resulted in probably lost condition flags due to interrupts.
Construction

    NutEnterCritical();
    ...
    NutExitCritical();
    if (cnt) {
        NutEnterCritical();
        ...
        NutExitCritical();

was compiled for some code optimizations as below.
The problem is, if status word (condition flags) changes between point B and C.
These changes are lost, because they are overwritten at point D.
This was really very hard to find and after this was fixed, several "problems" were fixed.

I tried many ways, how to stay without NutUseCritical, but I was unable to find any.

NutEnterCritical, point A

move.w %sr, %d0
move.w %d0, %d1
ori.l #0x700, %d0
move.w %d0, %sr

NutExitCritical, point B
move.w %d1, %sr

NutEnterCritical, point C
move.w %sr, %d0
move.w %d0, %d2
ori.l #0x700, %d0
move.w %d0, %sr

NutExitCritical, point D
move.w %d1, %sr

MongoDB Logo MongoDB