Hallo Leute,
habe eine kleine Frage zu der Geschwindigkeit des PowerPCs 440.
Ich habe demnächst ein Projekt, indem ich Daten alle 50 ns (20 MHz) 
auslesen muss. Zu Testzwecken habe ich über XPS ein einfaches Projekt 
mit dem PPC erstellt und als PPC-Takfrequenz 400 MHz ausgewählt. Nach 
dem Export in die SDK Software habe ich in C folgendes kleines 
Programmbeispiel geschrieben:
1  | #include <stdio.h>
  | 
2  | #include "xparameters.h"
  | 
3  | #include "xil_cache.h"
  | 
4  | #include "xstatus.h"
  | 
5  | #include "xgpio.h"
  | 
6  | #include "gpio_header.h"
  | 
7  | 
  | 
8  | #define GPIO_DEVICE_ID    XPAR_XPS_GPIO_INTERRUPT_DEVICE_ID
  | 
9  | #define GPIO_CHANNEL     1
  | 
10  | 
  | 
11  | u8 x,y;
  | 
12  | /********************************************************************/
  | 
13  | 
  | 
14  | int main() 
  | 
15  | {
 | 
16  |    Xil_ICacheEnable();
  | 
17  |    Xil_DCacheEnable();
  | 
18  | 
  | 
19  |    x=0;
  | 
20  |    while (1) {
 | 
21  |      x++;
  | 
22  |      y=(x&1);
  | 
23  |      XGpio_DiscreteWrite(&GpioOutput, GPIO_CHANNEL, y);
  | 
24  |    }
  | 
25  | 
  | 
26  |    Xil_DCacheDisable();
  | 
27  |    Xil_ICacheDisable();
  | 
28  | 
  | 
29  |    return 0;
  | 
30  | }
  | 
Das Programm toggelt einfach nur einen GPIO Output, welches ich dann auf 
dem Oszilloskop mir betrachte. Dort messe ich dann, wie lange er für das 
Invertieren des Output Signals braucht. Die Zeit die er zum toggeln 
braucht beträgt ca. 230 ns (ca. 4,3 MHz).
Warum ist die Taktfrequenz so langsam, der SPLB Bus ist mit 100 MHz 
getaktet und der PPC mit 400 MHz. Gibt es irgendwelche Einstellungen in 
XPS mit dem ich die while-Schleife schneller hinbekomme.
Als Ausblick nebenbei, später wenn ich das Projekt aufsetze, wird 
natürlich mit einem Interrupt ein 20MHz Input-Signal abgetastet, um die 
ankommenden Daten dann im Ram abzuspeichern.
Würde mich auf jede Antwort sehr freuen
mfg Cihan