[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [DDL-ML] HaBa-Patch



Torsten Vogt wrote:
> 
> Hallo Harald und andere, die das interessiert,
> 
> ich schaue mir gerade Deine Änderungen am erddcd an.
> Bevor ich die einbaue einige Rückfragen:
> 
> (1) Änderungen in waitUARTempty()
> 
>      Offenbar versuchst Du die Anzahl der Bytes zu ermitteln,
>      die noch im Puffer des UART stehen. Vor jedem Check wird
>      eine gewisse Zeit gewartet. Erst wenn nichts mehr im Puffer
>      steht wird die Schleife verlassen. Soweit so gut. Das hat die
>      Funktion doch sowieso schon gemacht. Warum ist die Funktion jetzt
>      "besser"? Anderes Problem: nanosleep() macht im Softrealtimemode
>      des Kernels ein busy-waiting. So richtig genau ist es auch dann
>      noch  nicht. Ist nicht zu erwarten, dass die Prozessorlast
>      zu stark steigt? Hast Du das schon mal überprüft?
> 
> (2) RingIndicator-Check, Kurzschlussprüfung
> 
>      Kam der Vorschlag von Dir? Offenbar wurde hier was am Code
>      verändert. Ist das richtig? (Kommentar fehlt an dieser Stelle
>      leider). Diese Änderung ist nicht ganz unproblematisch, da
>      ja auch HW davon betroffen ist. D.h. würde man den erddcd
>      einfach ändern, müssten einige Anwender den Lötkolben anwärmen.
>      Oder hab ich da was übersehen?
> 
> (3) zusätzliche Kommandozeilenparameter. Ok, kann ich übernehmen.
> 
> Ich denke, das waren Deine Änderungen am erddcd. Hab ich was vergessen?
> 
> Torsten
> 
> --
> Torsten Vogt, Diplom Wirtschaftsinformatiker
> SW-Entwicklung, IT-Beratung, Schulung, WWW-Anwendungen und E-Commerce
> Tel: 06322/948736       Fax: 06322/948737      Mail: vogt@vogt-it.com
> WWW: http://www.vogt-it.com

Hallo DDLer,

waitUARTempty() hat bei mir immer schon Probleme gemacht ich hatte
deswegen auch
einen durch Test ermittelten usleep(3000); zusätzlich eingebaut. Es mag
wohl
auch daran liegen, dass die Boardkonstruktion mit integrierten 16550
Serialkontroller
unterschiedlich sein mag. wenn ich keinen usleep() einbaue, dann zieht
der erddcd Dämon
extrem viel Power und läßt sogar den Mauszeiger einfrieren, außerdem
funktioniert das 
Märklin Motorola-Protokoll dann überhaupt nicht, das NMRA Protocoll aber
schon.

Die Harald Barth - Modifikation funktioniert für Märklin auch nur, wenn 
im Märklin-Zweig der gleiche usleep(3000) eingebaut wird.

Auf das NMRA - Protokoll hat der usleep() keinen Einfluß, wenn man
einmal von
der hohen Last des erddcd dann absieht.

Damit jemand Rückschlüsse über meine Umgebung ziehen kann:

S.u.S.E Linux 7.2


PIII / 600 Mhz
RAM  512 MB
Board Asus P3C2000
Adaptec 2940 U2W 
mehrere IBM SCSI Platten
Ethernet 
Soundblaster PCI
WinTV

Konrad  Selbstbaubooster

Spur1 Eisenbahnhardware:
Märklin Spur1 Starterset,
Märklin BR 56

Glanzstück: Dingler BR 10 mit ESU Loksounddecoder

Wenn usleep(3000) eingebaut ist, dann läuft alles, auch Weichenmotore.

MfG. Berthold Benning