mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP F28335: Flash-reead-write wait staites


Autor: A.W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: A.W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry Peter,

die Fkt. benötigt 1us!!!
Der Prozesseor läuft mit 150mHz.

Gruß A.W.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Der Prozesseor läuft mit 150mHz.
Naja - bei 150milliHz ist es kein wunder, dass dein Programm ewig 
langsam ist...

Autor: A.W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael K. (kichi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat es geklappt?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.