Optimierung und Verteilung des C-Codes

Gast #2078599
Lesenswert?
• ▲
▼
Hi alle,

Ich versuche gerade den C-Code, den ich in CCS 3.3 geschrieben habe zu 
optimieren und verschiedene Caches der DSP zu nutzen. Ich tu mir da 
jedoch ein bisschen schwer mit.
Ich arbeite mit einem TI TMS320C6747. Dieser besitzt 2 x 32K L1, 256K L2 
und 128K Shared RAM. Bisslang habe ich den Code komplett in L2 geladen. 
Soweit funktioniert alles. Nun habe ich versucht ein paar Arrays auf L1 
zu bringen und schon funktionierte der Code nicht mehr. Ein Beispiel:

Vorher:

float *SIGNAL = (float *)0x11800000;

Nachher:

float *SIGNAL = (float *)0x11F00000;

L1 wird sonst niergens benutzt. Kann mir einer vlt. erklaeren, warum das 
so nicht mehr funktioniert.
Auch wenn ich den Compiler die Speichereinteilung ueberlasse, also ein 
fest definierten Array mit Pointer mache funktioniert es nich, z.B:

float SIGNAL[512];
float *SIGNAL_Z = SIGNAL;

Jedenfalls wollte ich mal einen grundsaetzlichen Ansatzt der 
Speichereinteilung von euch hoeren und wie man das am Besten macht. Im 
Linker definiert man ja die SECTIONS. Wie man in ASM den Code in 
Speicher aufteilt weiss ich, aber wie macht man das in C (in CCS)? z.B. 
kann die ganze Boardinitialisation vom L2 starten, aber die main 
Funktion soll vom L1 (L1P) starten. Damit laeuft der Code schneller, 
richtig?
Das gilt genauso fuer meine Arrays, z.B. sollen einige auf L1D plaziert 
werden.
Ist es grundsaetzlich ratsam und besser (schneller) wenn man den Code 
und Arrays aufteilt in verschiedene Caches? Und wie macht man das am 
besten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 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.