AVR-GCC optimiert TIME & DATE weg

Gast #4324523
Die beiden unten stehenden Zeilen werden vom Compiler weggeputzt 
(Optimierung: Os). Es gibt keinen Bezug im Quelltext auf die Bezeichner 
s1 & s2. Das Schlüsselwort "volatile" hat keinen Einfluss.

Wie kann ich den Compiler überreden TIME & DATE im Flash abzulegen?
1
const unsigned char __flash s1[] = __TIME__;
2
const unsigned char __flash s2[] = __DATE__;
Gast
Bija schrieb:
> Es gibt keinen Bezug im Quelltext auf die Bezeichner
> s1 & s2.
Deine Frage hast Du mit dieser Aussage schon selbst beantwortet:

Wenn s1 und s2 nicht benutzt werden, warum soll sie der Compiler dann 
einbinden? Der Compiler macht das richtig!
OldMan schrieb:
> Wenn s1 und s2 nicht benutzt werden, warum soll sie der Compiler dann
> einbinden? Der Compiler macht das richtig!

Aber nicht, wenn man danach im Binärfile die Strings noch sehen will 
(wohl wissend, daß das Programm selbst die Strings nicht braucht).

Ich mache sowas auch mit der $Id $ aus der Versionsverwaltung so.
Gast
OldMan schrieb:
> Bija schrieb:
>> Es gibt keinen Bezug im Quelltext auf die Bezeichner
>> s1 & s2.
> Deine Frage hast Du mit dieser Aussage schon selbst beantwortet:
>
> Wenn s1 und s2 nicht benutzt werden, warum soll sie der Compiler dann
> einbinden? Der Compiler macht das richtig!

Du hättest meinen Beitrag sorgfältiger lesen sollen.

1. Mit keine Silbe habe ich geschrieben, dass der Compiler etwas falsch 
macht.

2. Meine Frage lautete: Wie kann ich den Compiler überreden TIME & DATE 
im Flash abzulegen?

3. Für die Zukunft: wenn du etwas nicht weißt, dann antworte einfach 
nicht. Leute wie du sind niemals hilfreich, sondern einfach nur lästig.
(Firma: Torrox.de)
Bija schrieb:

> Wie kann ich den Compiler überreden TIME & DATE im Flash abzulegen?

Hallo Bija,
da die Symbole externe linkbarkeit haben, ist es nicht der compiler, der 
die Symbole raus wirft, sondern der Linker. Mit KEEP() (genaue Syntax 
must Du nachgucken), kannst Du dem ld sagen, dass er die Symbole nicht 
raus werden soll.

HTH Torsten

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.