__DATE__ in Bootloader

Gast #3710239
Lesenswert?
• ▲
▼
Hallo Forum,

ich möchte gerne die GCC Defines für das Kompilierdatum auch im 
Bootloader benutzen, bin mir aber nicht sicher, ob ich es korrekt 
umgesetzt habe.
1
#include <avr/io.h>
2
#include <avr/pgmspace.h>
3

4
//gcc builtin defines:
5
static const char PROGMEM CompileDateP[12] = __DATE__;
6
static const char PROGMEM CompileTimeP[9]  = __TIME__;
7
static const char PROGMEM CompilerVerP[6]  = __VERSION__;
8

9
//In der Main vor der Endlosschleife einmalig:
10
unint8_t str[31];
11
unint8_t i;
12

13
//Read compile date and time
14
  str[ 0]='R';
15
  str[ 1]='C';
16
  str[ 2]='D';
17
  str[ 3]='T';
18
  str[ 4]=' ';
19
  for(i=0;i<=11;i++) {
20
    str[5+i] = pgm_read_byte_far(&CompileDateP[i]);
21
    //str[5+i] = '1';
22
  }
23
  str[16]=' ';
24
  for(i=0;i<=8;i++) {
25
    str[17+i] = pgm_read_byte_far(&CompileTimeP[i]);
26
    //str[17+i] = '2';
27
  }
28
  str[25]=' ';
29
  for(i=0;i<=5;i++) {
30
    str[26+i] = pgm_read_byte_far(&CompilerVerP[i]);
31
    //str[26+i] = '3';
32
  }
33

34
  ua_sendbuf((unint8_t*)str,31);

Prinzipiell erhalte ich die Ausgage, die ich erwarte.

Beim pgm_read_byte_far() bekomme ich allerding noch jeweils eine 
Warnung:
1
warning: cast from pointer to integer of different size

Wie bekomme ich die weg?
Und meine eigentliche Frage ist, ob ich das so machen kann, oder ob ich 
da evtl. Probleme mit meinem eigentlichen Programm bekommen kann?
Liegt z.B. CompileDateP wirklich im Flash des Bootloaderbereichs?
Gast #3710263
Lesenswert?
• ▲
▼
A. K. schrieb:
> Nur so nebenbei: Man kann sich das Leben auch mit dem Gesamtstring   ...
> [] = "RCDT " _DATE_ " " _TIME_ " " _VERSION_;
> erleichtern. Auch wenns nicht gleich ins Auge sticht, ist das doch nur
> EIN String.

Stimmt, das reicht hier im Prinzip völlig aus.
Danke für den Tipp.

Antwort schreiben

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.

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.