- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 14

Thema: SOUP (Software Of Unknown Provenance)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Jetzt muss ich Suppe (SOUP) selber auslöffeln

    Um dem Thread und meiner Arbeit noch einen sinnvollen Wert zu geben,
    habe ich mich entschlossen, die libeeprom-lpc1347.a Version 3
    möglichst ausgiebig zu testen.

    Dafür habe ich heute Testfunktionen geschrieben.
    Es wurde ein RAM Array angelegt, welches das gesamte EEPROM wiederspiegelt,
    mit Ausnahme der letzten 64 Bytes, dazu später.
    Dieses RAM Array wurde mit definierten Werten beschrieben.
    Dann erfolgte ein EEPROM Write mit dem "gesamten" Block.
    Dann wurde das RAM Array komplett gelöscht und der Inhalt aus dem
    EEPROM wieder als kompletter Block ausgelesen und verglichen.
    Das verlief einwandfrei. Dieser Test wird noch mit unterschiedlichsten
    Werten und Mustern durchgeführt.

    Dann wurden nur einzelne Bytes oder Words ins EEPROM geschrieben
    rückgelesen und verglichen. Bisher auch alles einwandfrei.

    Zudem wurde nach dem Beschreiben des EEPROMs die Versorgungsspannung über längere Zeit
    abgeschaltet um zu prüfen ob die Werte auch wirklich im EEPROM erhalten bleiben.
    Dieser Test wurde auch über mehrere Stunden durchgeführt.

    Nun wollte ich testen ob der hintere EEPROM Bereich , also die letzen 64 Bytes
    tatsächlich nicht beschrieben werden können, wie im Usermanual erwähnt.
    Dafür habe ich mir Testfunktionen für die RS232 geschrieben.
    Hier kann ich nun mit einem Terminal Programm gezielt auf alle Bereiche zugreifen
    und prüfen.
    Es bestätigte sich, dass exakt die letzen 64 Bytes des EEPROMs nicht beschrieben werden
    können. Das Lesen dieser Speicherstellen ergibt immer 0x00

    Morgen gehts es weiter mit dem Tests:
    Dazu wird ein höchst priorisierter Interrupt eingestellt,
    welche lediglich ein Portbit toggelt.
    Hier wird ein Oszilloskop angeschlossen.
    Das Hauptprogtramm beschreibt dann sporadisch das EEPROM mit
    verschiedenen Werten und Speichergrössen.
    Das Testsignal dürfte sich dabei nicht verändern, sofern die EEPROM
    Funktionen, wie beschrieben, wirklich keine Interrupts sperren
    oder in irgend einer Form die CPU ausbremsen.

    Die Versionsnummer der Bibliothek konnte auch ausgelesen werden.
    Die Funktion liefert eine "3" zurück.

    So kann ich die Bibliothek bzw. deren Funktionen verifizieren
    Dann wird für mein Projekt exact DIESE Bibliothek vom Datum xxx
    mit abgelegt und die Testreihen dokumentiert.
    Ein Update dieser Bibliothek darf dann nicht mehr erfolgen.

    Update heute morgen:
    Ich stochere grade in der Assembler "Suppe" von NXP

    Anhand der EELIB_entry funktion
    erkennt man schon, dass viele Programmierer nicht mehr sinnvoll denken.
    Sorry für die Kritik, aber es gibt genau 2 Funktionen.
    EEPROM schreiben und EEPROM lesen.
    In vielen Geräten wird nur einmal ins EEPROM geschrieben zum Beispiel beim Kalibrieren.
    Danach wird nur noch gelesen.
    Generell ist das Verhältnis von Lesen und Schreiben bei EEPROMs "Lesebetont"
    In der Bibliothek konnte ich dem Assemblercode entnehmen, dass
    hier zuerst auf Schreiben geprüft wird und damit unnütze Rechenzeit verbraten wird
    Generell ist der erzeugt Code recht "suboptimal" wie ich grade feststelle, zumindest wohl ohne Optimierungen compiliert.

    Das EEPROM Schreiben habe ich nun grade Zeile für Zeile durchgesteppt, es gibt wirklich keinen Code welcher die Interrupts
    des Controllers beeinflusst.
    Die Funktionen arbeiten augenscheinlich nur mit Stackvariablen,
    es ist also kein zusätzlicher RAM erforderlich
    Alles spielt sich irgendwie im Speicherberiech 4003.C000 ab.

    Die Versionsnummer liefert in minimalster Weise lediglich eine konstante "3" zurück.

    Für die obersten 64 EEPROM Bytes habe ich in meiner Funktion einen entsprechenden Code implementiert,
    damit diese nicht beschrieben werden, das existiert aber auch schon in der Library selbst wie ich grade sehe.

    Siro
    Geändert von Siro (14.07.2016 um 10:39 Uhr)

Ähnliche Themen

  1. USB AVR LAB - unknown device -HILFE
    Von blue-vision im Forum C - Programmierung (GCC u.a.)
    Antworten: 34
    Letzter Beitrag: 03.06.2010, 19:12
  2. Problem: Unknown Statement
    Von Robin1508 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 17.05.2008, 19:06
  3. unknown interrupt source Error :85
    Von gesamtplan im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 01.11.2007, 02:27
  4. avr defekt durch CKSEL: Device missing or unknown device -24
    Von brundle im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 04.04.2007, 11:31
  5. "Unknown device" bei Programmierung über ft232bl
    Von Frikkie im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 25.01.2007, 21:14

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests