ITCM und DTCM des Cortex-M7 nutzen
|
|
|
Der Cortex-M7 bietet mit ITCM und DTCM Speicherbereiche für zeitkritische
Programmabschnitte und schnelle Datenverarbeitung. Sind diese Speicher-
bereiche im Linkerscript deklariert, kann die Programm-und Datenzuordnung
mittels eines Funktions- bzw. Datenattributes der Form
__attribute__ ((section ("name")))
gesteuert werden.
"name" - Bezeichnung von ITCM und DTCM im Linkerscript
Gegeben seien durch ein Macro für das entsprechende TCM deklariert eine
Variable und eine Funktion.
unsigned long dtcm_cnt __ATTR_SECTION_DTCM__ = 0;
__ATTR_SECTION_ITCM__
void thread_msg ( int message, int delay)
{ dtcm_cnt ++;
printf ("Thread %d: cnt: %ld - and now a delay of %d clock ticks\n", message,
dtcm_cnt, delay);
}
Das weitere Programm ist auf die Adresse 0x20010000 gelinkt.
Beim Laden des Programmes zeigt sich, dass auch die Segmente ITCM und
DTCM dabei berücksichtigt werden.
|

Zur Überprüfung einen Breakpunkt in der Funktion im ITCM setzen.

Wie die Assembler- Darstellung anhand der absoluten Adressen zeigt, wird die
Funktion im ITCM ausgeführt.

zurück
|

Copyright (c) 2003-2025 U.-J. Austel, Alle Rechte vorbehalten.
|