Codegenerierung mit KEIL für STM32

Gast #3364599
Lesenswert?
• ▲
▼
Hallo zusammen,

ich verwende die neueste KEIL Umgebung und den STM32F051x. In meiner 
Software emuliere ich EEPROM und ich mache eine CRC-Prüfung des Flashs 
bei Programmstart.

Nun steht meine CRC-Checksumme im gleichen Sektor wie der 
EEPROM-Emulierungsbereich.

Beim ersten Start des Programms ist alles in Ordnung, nach dem ersten 
"Abspeichern" im EEPROM wird aber der gesamte Sektor überschrieben. 
Damit geht meine Checksumme verloren und das Programm startet nicht.

Ich habe den EEPROM und die Checksumme in einem Sektor, weil das 
eigentliche Programm die restlichen Sektoren füllt.

Soviel zur Theorie die ich verstanden habe :)


Für die Lösung meines Problems habe ich derzeit 2 Optionen.

1. Option: Ich versuche auf Biegen und Brechen den Programmcode selbst 
effizienter zu gestalten.

2. Option: Viel einfacher ist es mit den Optimierungen zu spielen. Hier 
habe ich in den C/C++ Optionen die "One ELF Section per Function" 
aktiviert und sagenhafte 8kB Flash gewonnen. Damit kann ich nun EEPROM 
und Checksumme trennen. Das funktioniert soweit auch ganz gut.

Jetzt meine Fragen:

1. Welchen Unterschied macht diese Option aus (außer den 8kB)?
2. Muss ich mit Veränderungen in timingkritischen Codepfaden rechnen?
3. Wie kann ich den Unterschied der beiden Compilierungsergebnisse 
feststellen (außer einem Diff mit Notepad, bzw. ausgedehnten Tests)?


Ich hoffe es gibt jemand der mir diese Fragen beantworten kann. Ich habe 
natürlich nach entsprechenden Unterlagen über "ELF" und KEILs 
Optimierungen geschaut und durchgelesen. Ich würde jetzt aber gerne mal 
die Meinung der Profis einholen.

Beste Grüße
public
#3364613
Lesenswert?
• ▲
▼
an den auszuführenden codepfaden und am code selbst sollte sich für 
gewöhnlich nichts ändern, da diese art der optimierung nur der Linker 
durchführt.
Und dieser nutzt die einzelnen ELF teile dazu nicht genutze funktionen 
rauszuschmeissen.
8 Kb ist doch recht viel, klingt dnach als würdest du eine ganze lib 
hinein linken von der du nur einen sehr kleinen Teil verwendest?

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.