Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » U2164C20 testen » Themenansicht

Autor Thread - Seiten: -1-
000
07.06.2006, 09:09 Uhr
Olli

Avatar von Olli

Hallo,

ich bekomme bei meinem P8000 hin und wieder Segmentation faults was auf Speicherfehler hindeuten kann (gesetzt den Fall das im Kernel nichts schief laeuft). Der Hardwaretest des Systems findet beim DRAM keinen Fehler. Ich weiss nicht wie genau der Test ist und ob alle ICs durchgetestet werden. Hat einer eine Idee wie man die Chips ohne sie auszuloeten einzeln pruefen kann? (Das waeren dann naemlich 4 * 36 Stueck)
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
07.06.2006, 13:35 Uhr
Hans

Avatar von Hans

Hallo Olli,

ich würde denken, dass man das nur mit einem eigenen (möglicherweise Assembler) Programm hinbekommt bei dem man nach einander jede Speicherzelle ausließt, den Inhalt wegspeichert, danach mit Null beschreibt wieder zurück ließt und vergleicht ob Null ist, danach mit FF beschreibt und wieder zurückließt und vergleicht. eventuell auch noch mit 55 und AA wiederholen. danach den original Zelleninhalt wieder zurückschreibt und bei Fehler bei den Vergleichen eine Meldung mit Adresse und Fehler ausgibt. Danach geht das mit der nächsten Zelle wieder von vorn los. Das Programm läßt man dann mehrmals über alle Zellen laufen und merkt dann, ob eine Fehlerhäufigkeit mit der Betriebsdauer ansteigt oder ob der Fehler woanders zu suchen ist.
Ich muß allerdings dazu schreiben, dass ich zwar für 8-Bit-Rechner füher so etwas schon programmiert habe, Bei 16 Bit Rechnern habe ich allerdings nie Assembler programmiert und weis deshalb nicht, ob es genau so einfach geht. Aber vielleicht geht es sogar mit "C".
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
07.06.2006, 17:33 Uhr
Rüdiger
Administrator



Zitat:
Hans schrieb
ich würde denken, dass man das nur mit einem eigenen (möglicherweise Assembler) Programm hinbekommt bei dem man nach einander jede Speicherzelle ausließt, den Inhalt wegspeichert, danach mit Null beschreibt wieder zurück ließt und vergleicht ob Null ist, danach mit FF beschreibt und wieder zurückließt und vergleicht.

Das wird so nicht gehen.
Unter UNIX läuft ein Speicherschutz, da kannst Du nicht einfach im Speicherbereich des Betriebssystems rumschreiben.
Man müsste den Speichertest machen, wenn kein UNIX geladen ist aber das ist außerordentlich aufwendig.

Die beste Methode wäre, Ollis RAM-Karten in einem anderen, als fehlerfrei bekannten Rechner zu betreiben und schauen, ob die Meldungen dann dort auch kommen.
--
Kernel panic: Out of swap space.

Dieser Beitrag wurde am 07.06.2006 um 18:11 Uhr von Rüdiger editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
07.06.2006, 18:01 Uhr
Olli

Avatar von Olli

nunja, man koennte unter unix in C ein bischen mit malloc() speicher allokieren werte reinschreiben, rauslesen usw. Man weiss dann halt nur nicht auf welcher Bank er sich gerade befindet. Man koennte aber mit einem 5. Modul halt nach dem Ausschlussverfahren vorgehen. Meine ersten Versuche mit malloc() haben mich aber nur soweit gebracht das ich mit einem malloc() Aufruf nicht mehr als 128k Speicher allokiert bekomme (bei mehr meckert der Assembler - integer to large) - ich muss das nochmal versuchen - halt mehrmals mittels malloc() Speicher allokieren bis man 1MB hat (n paar KB davon werden dann wohl eh im Swap sein, da ja nicht alle 1MB dem userspace zur Verfuegung stehen).

RAM Test in ASM gibts ja schon in Form des "Eigentest" Programmes, nur steige ich bei ASM halt nicht durch....
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000

Dieser Beitrag wurde am 07.06.2006 um 18:02 Uhr von Olli editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
07.06.2006, 18:18 Uhr
Rüdiger
Administrator



Zitat:
Olli schrieb
nunja, man koennte unter unix in C ein bischen mit malloc() speicher allokieren werte reinschreiben, rauslesen

Du kannst aber generell nur das allokieren, was nicht schon durch andere Prozesse belegt ist.
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
07.06.2006, 18:56 Uhr
Enrico
Default Group and Edit


Olli, Du könntest mir ja die Karte auch noch schicken.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
07.06.2006, 19:01 Uhr
Olli

Avatar von Olli


Zitat:
Rüdiger schrieb
Du kannst aber generell nur das allokieren, was nicht schon durch andere Prozesse belegt ist.

Da sind gewisse Unschaerfen vorhanden. Das stimmt. Mir ist bisher ca. beim Bootprozess entweder mal fsck oder irgendein "sync" segfaulted.
Im single User Mode sollte man den meisten freien Speicher erwischen. Und wenn andere userland Prozesse segfaulten, dann sollte der Speicher frei sein...
Schade das es keine tools zur Anzeige des freien Speichers wie vmstat o.a. gibt. sowas wie "top" erwarte ich ja nicht mal
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
07.06.2006, 20:20 Uhr
Enrico
Default Group and Edit



Zitat:
Olli schrieb

Zitat:
Rüdiger schrieb
Du kannst aber generell nur das allokieren, was nicht schon durch andere Prozesse belegt ist.

Da sind gewisse Unschaerfen vorhanden. Das stimmt. Mir ist bisher ca. beim Bootprozess entweder mal fsck oder irgendein "sync" segfaulted.
Im single User Mode sollte man den meisten freien Speicher erwischen. Und wenn andere userland Prozesse segfaulten, dann sollte der Speicher frei sein...
Schade das es keine tools zur Anzeige des freien Speichers wie vmstat o.a. gibt. sowas wie "top" erwarte ich ja nicht mal

Selbst ist der Mann!
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
07.06.2006, 20:55 Uhr
Olli

Avatar von Olli

das mit C hat sich gegessen. Mehr als 48K bekomme ich ohne vorher was wieder frei zu machen nicht allokiert (habs in 16K Bloecken versucht und die dann immer char fuer char gefuellt und verglichen).
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
07.06.2006, 21:01 Uhr
Hans

Avatar von Hans


Zitat:
Rüdiger schrieb
Das wird so nicht gehen.
Unter UNIX läuft ein Speicherschutz, da kannst Du nicht einfach im Speicherbereich des Betriebssystems rumschreiben.
Man müsste den Speichertest machen, wenn kein UNIX geladen ist aber das ist außerordentlich aufwendig.

Ich dachte ja auch eher an UDOS oder OS/M als Betriebssystem. allerdings kenn ich mich denen noch weniger aus.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
07.06.2006, 22:57 Uhr
Rüdiger
Administrator



Zitat:
Hans schrieb
Ich dachte ja auch eher an UDOS oder OS/M als Betriebssystem. allerdings kenn ich mich denen noch weniger aus.

Und wie soll das gehen? UDOS und OS/M haben doch ihren eigene 64k-RAM.
Ich glaube nicht, dass man damit auf den 16-Bit-Speicher zugreifen kann.
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
08.06.2006, 00:01 Uhr
Enrico
Default Group and Edit


Mal so eine Idee:
Könnten diese " Segmentation faults" nicht auch ein Hinweis auf Fehler der MMUs sein?
Wenn ich das richtig verstanden habe, ist gar nicht sicher gestellt, dass das selbe Programm immer auf der gleichen Stelle im RAM landet.
Dann könnte eine bestimmte Kombination von virtuellem zu tatsächlichem RAM durch die MMU zu diesem Fehler führen.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek