www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kompilierdatum einfügen


Autor: Benny Platte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe ich in WinAVR die Möglichkeit, per Präprozessor-Anweisung das
Kompilierdatum in den generierten Code einzufügen?
Grund: Die Geräte sollen per Info-Befehl die Software-Version und das
Kompilierdatum ausgeben, und ich möchte nicht bei jedem Gerät immer
diese Daten per Hand in einen Flash-String eingeben, sondern sie sollen
dort automatisch landen. Ich stelle mir eine Präprozessor-Variable vor
wie #date und #time, evtl. sogar #file oder #projectname.

Geht das?

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <stdio.h>

int main()
{
  puts(_DATE_);
  puts(_TIME_);
  puts(_FILE_);
  return 0;
}

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benny,

ich weiß vom MS Visual Studio das es eine direktive namens _LINE_
oder _FILE_ gibt mit der man die aktuelle zeilennummer bzw. den
aktuellen dateinamen als string geliefert bekommt.
Ist aber unter MS keine präprozessor-direktive sondern ein Makro
(glaube ich jedenfalls)
Versuchs doch mal mit _DATE__ und __TIME_

Gruß
Rene

Autor: R2D2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter Linux kannst du's mit diesem Maketarget machen:

.PHONY : date
date:
  @echo "const char build[]=\"Compiled: `date +%d.%m.%Y`\";" >
date.c
  @touch -t `date +%Y%m%d`0000.00 date.c

der erste Befehl schreibt einen String mit dem Datum in date.c. Der 2
stellt das Änderungsdatum auf 0Uhr, so das die Datei nur 1x am Tag
compiliert wird.

Unter Windows dürfte das in etwas so aussehen:
.PHONY : date
date:
  @echo "const char build[]=\"Compiled: " > date.c
      @date >> date.c
      @echo "\";"

Ich weiß nicht ob die Anführungszeichen für Windows richtig escaped
sind und ob date weitere Parameter erwartet. Ein Tool wie touch ist mir
bei Windows nicht bekannt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.