Hallo,
ich glaube ich habe einen Bug entdeckt im gcc.
Und zwar habe ich folgende Struktur:
1 | typedef struct
|
2 | {
|
3 | char version[20];
|
4 | unsigned int druck1;
|
5 | unsigned int druck2;
|
6 | unsigned int konz1;
|
7 | unsigned int konz2;
|
8 | unsigned int konz3;
|
9 | unsigned int konz4;
|
10 | unsigned int vimage;
|
11 | }parameter;
|
version wird mit "init" initialisiert.
Wenn ich nun die Adresse übergebe in ein Modul und folgednes aufrufe
1 | sprintf(out,"Software Version = %s \r\n",&fscontroll->version[0]);
|
2 | uart0_puts(out);
|
Gibt es keine korrekte Textausgabe.
Ändere ich aber die Struktur folgednermaßen ab
1 | typedef struct
|
2 | {
|
3 | unsigned int druck1;
|
4 | unsigned int druck2;
|
5 | unsigned int konz1;
|
6 | unsigned int konz2;
|
7 | unsigned int konz3;
|
8 | unsigned int konz4;
|
9 | unsigned int vimage;
|
10 | char version[20];
|
11 | }parameter;
|
funkioniert alles einwandfrei.
Wie kann das sein?
[/c]