Thomas schrieb:
> gibt es die Möglichkeit den Inhalt einer Variable welche im Flash
> gespeichert werden soll aus einer Datei einzulesen?
>
> Es handelt sich bei dem File um ein einfaches Konfigurations-XML-File.
>
> Dieses wird sich zur Laufzeit nicht ändern. Kann also fest beim
> Compilieren in den Code eingehen. Ich möchte einfach weg von:
Natürlich gibt es das.
Dem #include ist es ja egal, was in dem File steht, das includiert wird. 
Ein #include zieht einfach nur den Inhalt der angegebenen Datei an die 
Stelle im Code rein, in der der #include steht
configData.inc
**************
| 1 | "<?xml version='1.0'?>"
 | 
| 2 | "<file>"
 | 
| 3 | "  <controler name='B'>"
 | 
| 4 | "    <states>"
 | 
| 5 | "      <b>"
 | 
| 6 | "        <L>0</L>"
 | 
| 7 | "        <M>1</M>"
 | 
| 8 | "        <S>0</S>"
 | 
| 9 | "      </b>"
 | 
| 10 | "    </states>"
 | 
| 11 | "  </controler>"
 | 
| 12 | "</file>"
 | 
| 1 | #include <avr/pgmspace.h>
 | 
| 2 |  
 | 
| 3 | PROGMEM char xml[] =
 | 
| 4 | {
 | 
| 5 | #include "configData.inc"
 | 
| 6 | };
 | 
> Der Inhalt soll möglichst in einer extra XML Datei abgelegt werden, um
> das Hinzufügen der vielen Anführungszeichen zu vermeiden
Das ist ein Problem.
Denn ein #include entbindet dich ja nicht davon, dass sich in Summe 
gültiges C ergeben muss. Ersetzt du im Kopf die Zeile mit dem #include 
mit dem Inhalt der Datei, dann muss da wieder was richtiges rauskommen.
Allerdings brauchst du die Anführungszeichen nicht per Hand machen. Dazu 
schreibt man sich auf dem PC ein kleines Hilfsprogramm, welches in einer 
Datei Zeile für Zeile liest, die " ergänzt. D.h. Du hast dann 2 externe 
Files
Einmal die Version, wie sie aus deinem Konfigurierprogramm kommt (oder 
woher auch immer). Die ist im Original, also ohne "
Mit Hilfe deines kleines Hilfswerkzeugs erzeugst du daraus die Version 
mit den "
Letztere wird dann vom #include beim compilieren in den Code 
reingezogen.
Noch den ganzen XML-Pimp Schritt samt Abhängigkeiten ins makefile 
eingetragen und du kannst komfortabel deine Konfigurationen aus dem 
Programm exportieren, mit dem du sie erstellst.
Merke: Wir sind Programmierer. Wir sind faul, deshalb sind wir 
Programmierer geworden. Ehe wir etwas mit der Hand machen (wie zb 
dämlich in jede Zeile einer Datei " einfügen), schreiben wir uns lieber 
ein Programm dafür bzw. benutzen zb einen Stream Editor, der das macht.