| File | Date | Author | Commit |
|---|---|---|---|
| .settings | 2014-02-13 |
|
[049c1c] - kompilovatelne konfigurace "bke" i "sm2_mu_rev_d |
| nut | 2017-10-18 |
|
[c25ffa] FIX: podminka pro nastaveni Fullduplex (DF) |
| tools | 2014-02-18 |
|
[035207] - zpristupnena pamet pro perierie (nyni si ji m... |
| .cproject | 2014-02-21 |
|
[76a7d2] - rozsahle zmeny ve strukture (oprava jmen soub... |
| .project | 2014-02-21 |
|
[76a7d2] - rozsahle zmeny ve strukture (oprava jmen soub... |
| LICENSE.md | 2018-02-05 |
|
[701f1c] Update LICENSE.md |
| README.md | 2018-02-05 |
|
[89f0a1] Create README.md |
| _how_to_start.txt | 2014-02-17 |
|
[daf456] - readme |
| _revision.txt | 2014-02-12 |
|
[faf6ad] kopie nut_bke |
| nutconf.exe | 2014-02-12 |
|
[a381b8] vraceni stareho konfiguratoru, novy blbne |
| simple - Load and Run.launch | 2014-02-12 |
|
[faf6ad] kopie nut_bke |
| simple - Run.launch | 2014-02-12 |
|
[faf6ad] kopie nut_bke |
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, %srNutEnterCritical, point C
move.w %sr, %d0
move.w %d0, %d2
ori.l #0x700, %d0
move.w %d0, %srNutExitCritical, point D
move.w %d1, %sr