Test 2

Test 2 für den SpartanMC SoC

Im Test werden folgende Komponenten überprüft:

  1. SpartanMC Core
  2. LED-Port des SpartanMC
  3. Interrupt Controller
  4. UART
  5. Timer
  6. RTI
Im Gegebensatz zum Test 1 wird hier vorallem der Interruptkontroller 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 18 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 und alle bisher aktiven IRQ-Signale angezeigt.

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: 11:07:13  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
  65   5C       11:08:59        3 3FFFE  131131

Ein ausführliches Protokoll kann hier eingesehen werden.
/**
 *
 *   Das Program erzeugt in 2 Sekunden die folgenden Interrupts :
 *
 *   rti0     65536
 *   rti1     32768
 *   rti2     16384
 *   rti3      8192
 *   rti4      4096
 *   rti5      2048
 *   rti6      1024
 *   rti7       512
 *   rti8       256
 *   rti9       128
 *   rti10       64
 *   rti11       32
 *   rti12       16
 *   rti13        8
 *   rti14        4
 *   rti15        2
 *   rti16        1
 *   rti17        1
 *   uart2tx     33  bei 150 BPS und 9 Bit/Byte
 *   uart2rx     33  bei 150 BPS und 9 Bit/Byte
 *   --------------
 *           131138
 *           ======
 *
 *   Damit diese Anzahl erreicht werden kann, muss UART1 eine Tx Fifo mit
 *   mindestens 64 Byte besitzen.
 *
 * Konsolenausgaben bei der Ausfuehrung des Tests:
 * ===============================================
 *
 *   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: 11:30:33  SpartanMC 18 TU-Dresden InfMR
 *
 *   2. Fortlaufend Zeichen an UART 2 mit Interrupt senden und empfangen
 *      Ende bei jeder Taste
 *
 *     Tx    Rx      Zeit            IRQ-Bits Anzahl IRQ
 *     F1    E8      11:46:57        3 3FFFE  131132
 *
 *
 * Es gehen also in 2 Sekunden etwa 6-7 Interrupts in dieser Konfiguration verloren.
 * Nach Reduzierung der Interruptlast um 6 Byte durch Einstellung von 2 Stop Bits an
 * UART2 werden immer noch 131131 - 131132 Interrupts verarbeitet. In 2 Sekunden geht
 * also nur maximal 1 Interrupt verloren. Der SpartanMC arbeitet bei diesem Test mit
 * 54 MHz und der GCC wurde mit Schalter O2 gestartet.
 */


Der Test ist bisher auf folgenden Boards implementiert:

  1. 3e 1600
  2. sp601

Das sp601 Projekt kann hier geladen werden.



SpartanMC