- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 4 von 4

Thema: (Flash) Memory Section automatisch oder überprüfen mit #if

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo,

    mir ist jetzt selbst eine Möglichkeit eingefallen die korrekte Position der Funktion im Bootloader-Bereich zu prüfen. Leider nur zur Laufzeit:

    Code:
    void *ptrSetup_Write = &setup_write;
    
    if (ptrSetup_Write == 0x3800)
    
        Ok
    else
       Fehler
    Jetzt Suche ich noch nach einer Möglichkeit einen Fehler zur kompilierungszeit zu erzeugen wenn der Bootloader-Bereich falsch konfiguriert wurde:

    Code:
    #if (ptrSetup_Write == 0x3800)
     #error Ok
    #else
     #error Falsche Adresse für .bootloader-Section!
    #endif
    Funktioniert leider nicht. Kann mir hier jemand einen Tipp geben ob und wie das zu lösen ist?

    Viele Grüße
    Andreas

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo Andreas,
    Zitat Zitat von Bumbum Beitrag anzeigen
    Jetzt Suche ich noch nach einer Möglichkeit einen Fehler zur kompilierungszeit zu erzeugen wenn der Bootloader-Bereich falsch konfiguriert wurde:

    Code:
    #if (ptrSetup_Write == 0x3800)
     #error Ok
    #else
     #error Falsche Adresse für .bootloader-Section!
    #endif
    Funktioniert leider nicht. Kann mir hier jemand einen Tipp geben ob und wie das zu lösen ist?
    Klar geht das so nicht, schon alleine weil die Adressen erst beim Linken festgelegt werden!
    Beim Compilieren kannst du das nur überprüfen, wenn du die entsprechenden Konstant auch dort festlegst.

    Ich kenne deinen Compiler nicht, aber es müsste eigentlich bei den #pragma-Anweisungen etwas geben um Speicherbereiche festzulegen.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo Peter,

    mir war das schon bewußt, dass die Adresse erst zur Laufzeit zugewiesen wird. Es war mehr symbolisch gedacht. Als Compiler nutze ich WinAVR (20100110). Leider habe ich keine Auflistung der möglichen #pragma-Direktiven gefunden. Kann mir da jemand helfen?

    Viele Grüße
    Andreas

Ähnliche Themen

  1. [ERLEDIGT] memory löschen mit c
    Von Ritchie im Forum Software, Algorithmen und KI
    Antworten: 8
    Letzter Beitrag: 30.08.2012, 19:27
  2. Memory Stick Micro (M2) mit ATMega read/write ?
    Von tc-maxx im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 31.01.2010, 16:21
  3. Flash Memory aus CF Card
    Von eurocopter im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 24.07.2009, 09:49
  4. überprüfen ob eine Phase da ist oder nicht
    Von roboter im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 30.01.2008, 10:45
  5. Antworten: 1
    Letzter Beitrag: 24.05.2007, 20:44

Berechtigungen

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

Labornetzteil AliExpress