AtSam4 Cache

OP (Firma: s@Td) #3670871
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
}
Gast #3671540
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren