Forum: Mikrocontroller und Digitale Elektronik AtSam4 Cache


von Mirco C. (Firma: s@Td) (mcontroller)


Lesenswert?

Hallo,

ich würde gerne den Cache eines AtSam4SD32C verwenden. Für einen 
Vergleich habe ich zunächst einen Ausgangspin in Endlosschleife 
getoggelt(Freq etwas unter 1Mhz). Danach habe ich den Cache Controller 
aktiviert. Dementsprechend hätte ich eine höhere Ausgangsfrequenz 
erwartet, wenn die Zugriffe nun über den Cache erfolgen.
Nur leider ändert sich nichts an der Frequenz. Ist das normal weil 
irgendwas den Cache bremst? Gibt es vill. noch Peripherie die man 
zusätzlich aktivieren muss?
1
#include <asf.h>
2
3
int main (void)
4
{
5
  // Board init for XPlained Pro (120Mhz Corefrq)
6
  board_init();
7
  // Enable Cache
8
  while(CMCC->CMCC_SR & CMCC_SR_CSTS);
9
  CMCC->CMCC_CTRL = (CMCC_CTRL_CEN);
10
  //Toggle C23
11
  while (1) {
12
    PIOC->PIO_SODR = (1<<23);
13
    PIOC->PIO_CODR = (1<<23);
14
  }
15
}

von Konrad (Gast)


Lesenswert?

Normalerweise werden Zugriffe auf Hardwarerregister nicht gecacht (sonst 
wuesste man ja ueberhaupt nicht, wann zB das Wort an den UART 
tatsaechlich rausgeht). Die Schleife enthaelt bis auf Instruction-Loads 
keine Speicherzugriffe, die cachbar waren. Wenn Du Speicherperformance 
sehen moechtest, rate ich eher zu zB memcpy von "volatile"-deklarierten 
globalen Arrays.

HTH
Konrad

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.