Forum: PC Hard- und Software IAR Embedded Workbench eigenartiger Fehler


von Nils F. (kewekuchen)


Lesenswert?

Einen guten Tag erstmal an alle.

Ich hoffe das ich hier in dem Forum mit meinem Anliegen richtig bin.
Ich benutze IAR Embedded Workbench Version 7.60.1 und bekomme einen 
merkwürdigen Fehler.

Was ich versuche ist eine Struktur zu benutzen aber bei dem Deklarieren 
scheind etwas falsch zu laufen wovon ich nicht weis wo das Problem in 
meinem Quelltext liegt.

Ich habe folgendes geschrieben:

struct Zei
{
  addr_t Addr;
  int Signa;

};struct Zei Sensa[NUMBER_OF_DEVICES],Testo[NUMBER_OF_DEVICES];

Wenn ich mir nun beim Debuggen im "watch window" beide Arrays ansehen 
will dann funktioniert das bei "Sensa" einwandfrei aber bei "Testo" 
bekomme ich in der "Value" Spalte nur
"Error (col1): unknown or ambiguous symbol. Testo" angezeigt.

Hat schon einmal jemand das selbe Problem gehabt oder weis eine Lösung 
für mein Problem? Ich habe schon den Optimizer auf none gestellt aber 
das Problem das ich mir das Testo Array nicht ansehen kann besteht 
weiterhin.

Vielen dank schonmal im Voraus für eure hilfe
Beste Grüße
Nils

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nils Freitag schrieb:
> struct Zei
> {
>   addr_t Addr;
>   int Signa;
>
> };struct Zei Sensa[NUMBER_OF_DEVICES],Testo[NUMBER_OF_DEVICES];

Dann schreib das ganze doch mal lesbarer:
1
struct Zei
2
{
3
  addr_t Addr;
4
  int Signa;
5
};
6
7
struct Zei Sensa[NUMBER_OF_DEVICES];
8
struct Zei Testo[NUMBER_OF_DEVICES];

Ändert sich das Verhalten?

von Nils F. (kewekuchen)


Lesenswert?

Vielen Dank erstmal für deine schnelle Antwort.

Ich habe es wie Du mir vorgeschlagen hast eingegeben aber das Problem 
besteht weiterhin.

Vielen dank
Nils

von Εrnst B. (ernst)


Lesenswert?

Wird "Testo" denn (außer zum Debuggen) verwendet?

Oder hat der Compiler rausgefunden, dass nur lesend oder garnicht darauf 
gearbeitet wird, und das ganze Array eingespart?

von Nils F. (kewekuchen)


Lesenswert?

Vielen Dank für deine schnelle Antwort Ernst.

Ich habe nun rausgefunden das Embedded workbench obwohl ich den 
Optimizer auf none gestellt habe die Deklaration trotzdem wegoptimiert.
Ich habe eine if Anweisung für  Testo geschrieben und nun kann ich beide 
Arrays im Watch Window betrachten.

Meine if Anweisung:

    if(Testo[3].Signa>10)
    {
    DELAY(1);
    }

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.