Hallo Besucher, der Thread wurde 448 mal aufgerufen und enthält 1 Antwort

letzter Beitrag von Jotta am

Abaluf von IRQs auf einem 68000?

  • Hi,


    ich bin gerade dabei, den 68000er (z.B. TG68 oder WF68K00) auf FPGAs umzusetzen.
    Programme laufen schonmal, in der Simulation sieht's jedenfalls gem. Specs korrekt aus,
    und auf einem kleinen SOC mit VGA und UART wird Text wie erwartet ausgeben.


    Zwischen Supervisor und User-Mode umzuschalten und TRAPs aufrufen ist auch kein Problem.


    Am Wochenende habe ich dann mal IRQs ausprobliert, leider ohne Erfolg. Die CPU reagiert
    zwar auf den IRQ (je nach gesetztem IRQ-Filter), aber der entsprechende Vector wird leider
    nicht aus der Vektortabelle ausgelesen. Entweder er liest aus Addresse 0x000000/0x000002
    oder er springt weiter zu 0x000012/0x000014 (für illegal Opcode?). Die Beispielprogramme
    stammen von Autoren, die schon erfolgreich kleinere Systeme mit realem 68k aufgebaut
    haben, ich gehe also mal von der Korrektheit des Codes aus.


    Falls sich hier jemand mit dem 68000er oder deren HDL-Modellen auskennt, der auch schon
    ein System nachgebaut oder entwickelt hat: Wie genau sieht der zeitliche Ablauf bei IRQs aus,
    und was kann man (wie ich) falschmachen?


    Gruss

  • .. Problem gelöst: Ich habe auf eine altes Motorola Datasheet
    zurückgegriffen (Version 9?), eine neuere Version von NXP hat dagegen
    Ergänzungen, insbes. zum IRQ-Timing. Da werden 3 IRQ-Methoden
    beschrieben, autovectored/uninitialized und spurious IRQs inkl. Timings.


    Ich hatte uninitialized verwendet, aber vergessen, die IRQ-Nummer
    auf den Datenbus zu legen. Mit der Nummer auf dem Bus klappt es
    jetzt :thumbsup: , zumind. in der Simu.