Test 3

Test 3 für den SpartanMC SoC

Im Test werden folgende Komponenten überprüft:

  1. SpartanMC Core
  2. LED-Port des SpartanMC
  3. Complex IRQ Controller
  4. UART
  5. Timer
  6. RTI
Im Gegebensatz zum Test 1 wird hier vorallem der Complex IRQ Controller mit mehr als 18 Interrupt Quellen getestet. Der Test beginnt wie der Test 1 mit dem Menü zum Stellen einer Uhr. Danach kann in den eigentlichen Test umgeschaltet werden, der eine modifizierte Variante vom Teil 5 aus Test 1 darstellt. Das Testprogramm erzeugt mehr als 60000 Interrupts pro Sekunde. Als Interruptquellen sind 19 RTI-Module und eine UART mit Tx und Rx Interrupt vorhanden. Im Test werden die Anzahl aller Interrupts, die in den letzten 2 Sekunden ausgeführt wurden, alle zur Zeit aktiven IRQ-Signale und die bisher erreichte maximale Interrupt Verschachtlungstiefe angezeigt. Sollte die Anzahl der Interrupts pro 2 Sekunden unter 90000 sinken, dann wird zusätzlich der Wert des INT_PRI Registers hexadezimal angezeigt. Dies kann nur passieren, wenn mehr Interrupts gestartet wurden, als wieder beendet wurden sind und würde einen Fehler in der Hardware oder Software voraussetzen.

Testprogramm fuer 21 Interruptquellen


Timer RTI und UART Test in C

1. Zeit auf der Konsole anzeigen
   Ende bei jeder Eingabe
CTRL+B Stunden mit + stellen
CTRL+C Minuten mit + stellen
CTRL+D Sekunden mit + stellen
CTRL+E Ende Stellen

 Aktuelle Zeit: 10:18:24  Hallo ich bin SpartanMC 18   

2. Fortlaufend Zeichen an UART 2 mit Interrupt senden und empfangen
   Ende bei jeder Taste

  Tx   Rx       Zeit            IRQ-Bits Anzahl IRQ
  D1   C8       10:18:35        0 07FEE  118019 2 000

Ein ausführliches Protokoll kann hier eingesehen werden. Die Hardware arbeitet erst fehlerfrei ab der Version vom 19.02.2015 im SpartanMC-SoC GIT Master Branch von Herrn Schöne mit der Meldung "intr_ctrlp: Version ohne fehlerhafte Increments vom Interruptzaehler"!


Der Test ist bisher auf folgenden Boards implementiert:

  1. 3e 1600
  2. sp601

Die Projekte können im GIT hier geladen werden.



SpartanMC