F28335: Flash-reead-write wait staites

Gast #1200690
Hallo zusammen,

ich hoffe ihr könnt mir weiter helfen?!
Ich lasse C-Code auf dem F28335 aus dem Flash laufen (eval-board: ezdsp 
mit Code Composer Studio).
Nun braucht eine kleine Funktion von mir ca. 1,0s!
Dieser Fkt. übergebe ich 2 Parameter Portnr. und Pinnr.
In dieser Fkt. befinden sich 3 if-Abfragen und zusätlich ein Mechanismus 
zum Toggeln eines Pin. Bei diesem Mechanismus ermittle ich über ein 
Macro die richtige Toggle-Port-Registeradresse und toggle danach in 
diesem Register den entsprecheden Pin.
Ich habe mir auch Assemblercode angeschaut. Für das Aufrufen und die 
Fkt. selbst generiert der Code Compose Compiler ca. 37 Assembler 
Code-Zeilen.
Der F28335 läuft mit dem Takt von 6,6ns.
Kann mir jemand sagen mit wieviel wait-states der Coder aus dem Flash 
läuft.
Gibt es Optimierungsmöglichkeiten?
Persönliche Seite #1201524
>Kann mir jemand sagen mit wieviel wait-states der Coder aus dem Flash
>läuft.

Ich glaube (bin nicht sicher), du musst die Anzahl der Wait-States 
selbst angeben, der Controller kann selbst ja nicht wissen, mit welcher 
Taktfrequenz er läuft. Deswegen weiß er auch nicht, ob er das Flash mit 
der aktuellen Frequenz überlastet, das weiß nur der Programmierer.

Du hast also 150MHz, da sollte etwa ein wait-state pro Takt drin sein, 
wenn ich das gerade richtig im Kopf habe.

1 Sekunde für 37 Befehle kann gar nicht sein, es sei denn, das läuft im 
Automatikschritt durch den Debugger, da ist das schon möglich, da werden 
ja nach jedem Schritt alle Register und so weiter an den PC übertragen.

Grüße,

Peter
Gast #1202798
Ok, Ok,

ich habe mich wieder verschrieben:
-- 150MHz --

Aber zurück zum eigentlichen Problem:
Ich habe mit Compiler-Optionen gespielt und habe Optimierungslevel auf 
(-o3) geändert. Und messe mittlerweile --550ns-- (bei 27 Assembler 
Codezeilen) für den Fuktionsdurchlauf.
Ich würde gerne weiter optimieren!
Hat jemand noch  eine Idee?

Grüße A.W.
Gast #1202966
Kannst/darfst du deine Init-Sequenz posten? Falls ja mach das mal.

Generell: falls es nur um einzelne Funktionen geht oder dein Programm 
nicht zu groß ist, besteht auch die Möglichkeit Funktionen ins RAM zu 
kopieren und von dort auszuführen (siehe spraau8). Evtl. wäre das auch 
was für dich.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.