Atmel Studio 7: Kein Source Code in lss file

OP #6826984
Lesenswert?

Hallo,

ich habe einen simplen C code für den ATmega8 mit Atmel Studio 7 (AS7) 
geschrieben. Es wird alles ordnungsgemäß compiliert und der 'geflashte' 
code im processor läuft auch genau so wie programmiert.

Einziges Problem:
Normalerweise (in Atmel Studio 6) war im .lss file immer der 
vollsträndige source code mit eingefügt. Aber mit AS7 ist bei einigen C 
functions der source code nicht enthalten.

Im attached .lss ist z.B. ab adresse 0x266 kein source code mehr 
enthalten. Erst ab 0x412 ist der source code wieder eingefügt. Liegt es 
vielleicht daran, dass die C functions einfach zu 'klein' sind, z.B.:
1
uint8_t SM_GetRightSlowSpeedFactor (void)
2
  {
3
  return SlowSpeedFactorRight;
4
  }

Hat vielleicht jemand eine Idee, woran das liegt, oder wie man dieses 
"Problemchen" beheben kann ?
Angehängte Dateien:
Beitrag #6827010 wurde von einem Moderator gelöscht.
OP #6827050
Lesenswert?

erklehr behr schrieb:
> Schalte mal die
> Optimierungsstufe auf -O0

Hab's mal gleich gemacht, aber das Ergebnis ist immer noch das Gleiche, 
siehe attached neues .lss file. Ab Adresse 0x390 gibt es keinen 
zugehörigen source code mehr. Der beginnt erst wieder bei Adresse 0x7e8.

BTW: diese Methode wäre ja auch nur eine Krücke, denn der Code im 
Prozessor mit -O1 wäre ja nicht zu vergleichen mit dem was im .lss file 
steht, wenn mit -O0 compiliert.

Bei Bedarf kann ich die vier source code files ja mal anhängen und ihr 
testet mal mit Eurem AS7.
Angehängte Dateien:
OP #6827057
Lesenswert?

Adam P. schrieb:
> Wozu ein Function Call mit PUSH und POP und evtl. Registersicherung
> verursachen, wenn es doch nur eine Anweisung in der "Funktion" ist.

Ich mag es halt etwas strukturierter, auch wenn der code etwas größer 
wird

Adam P. schrieb:
> Die Frage ist, warum hast du das überhaupt nachgeschaut?

Ja, du hast Recht, normalerweise schau ich da auch nicht rein, aber wenn 
der erstellte code mal nicht so funktioniert wie gewünscht (speziell bei 
etwas komplizierten pointer Anweisungen) kann ich in der Regel den 
Fehler sofort identifizieren.
Gast #6827074
Lesenswert?

Manfred L. schrieb:
> Hab's mal gleich gemacht, aber das Ergebnis ist immer noch das Gleiche,
> siehe attached neues .lss file.

Ich denke - da im lss File kein Aufruf von SM_GetRightSlowSpeedFactor
enthalten ist - es wird der Code einfach rausgeschmissen. Er wird
einfach nicht gebraucht. Alle Zugriffe auf die Variable
<SlowSpeedFactorRight> werden direkt gemacht, also ohne Verwendung
der Zugriffsfunktion.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren