J
JaneZhong
Guest
Ahoj všichni!
Našel jsem problém, že přerušení handler funkce nebyla provedena v mém design IP virtex4.Budu vyjádřit svou práci, pokud zjistíte, že něco není v pořádku, prosím, řekněte mi o tom.Díky!
1.Přidat vlastní IP, například jméno je "test", se přerušení funkce.Je-li napsat 1 až slv_reg0, vnitřní čítač bude spuštění.Pak jak to přidává na požadovanou hodnotu, bude přerušení uskuteční.Přerušení logika je '1 ', používá-li, '0', pokud není použit.
Kromě toho, přerušení handler wite '1 'na slv_reg1, tak pro změnu přerušení logiku od '1' na '0 '.
2.Chcete-li změnit MSS a MHS souboru.
v MHS:
začít ppc405_virtex4
PORT EICC405EXTINPUTIRQ = test_0_IP2INTC_Irpt
začít test
PORT IP2INTC_Irpt = test_0_IP2INTC_Irpt
v MSS:
Řidič test
PARAMETRU int_handler = test_handler, int_port = IP2INTC_Irpt
3.Then v EDK8.2, modifikovat softwarovou platformu nastavení-> handler přerušení-> test_0,
přidat test_handler místo výchozí ovladače.
4.přerušení handler je níže:
neplatné test_handler (void * baseaddr_p) (
Xuint32 * addr;
addr = XPAR_TEST_0_BASEADDR;
printf ("- Zadání zkoušky psovoda - \ r \ n");
* (Addr 1) = 1;
printf ("- Odchod test handler - \ r \ n");
)
5.
main ()
(
print ("- Zadání InterruptTest () - \ r \ n");
/ * Inicializace zpracování výjimek * /
XExc_Init ();
print ("- XExc_Init () - \ r \ n");
/ * Registrace externí přerušení handler * /
XExc_RegisterHandler (XEXC_ID_NON_CRITICAL_INT, (XExceptionHandler) test_handler, (void *) XPAR_TEST_0_BASEADDR);
print ("- XExc_RegisterHandler () - \ r \ n");
/ * Povolit PPC Non-kritické přerušení * /
XExc_mEnableExceptions (XEXC_NON_CRITICAL);
print ("- XExc_mEnableExceptions () - \ r \ n");
/ * Povolit TEST přerušení * /
* ((Xuint32 *) XPAR_TEST_0_BASEADDR) = 0x1;
while (1);
)
6.Doba výsledek, který reaguje na UART je nižší než
- Zadání InterruptTest () -
- XExc_Init () -
- XExc_RegisterHandler () -
- XExc_mEnableExceptions () -
ale netisknou
- Zadání test DMA handler -
- Odchod test DMA handler -
To je all.Thank vás!
Můj email je: jane.zhhj (at) gmail.com
Vítejte na mě kontaktovat, aby o něm diskutovat
Našel jsem problém, že přerušení handler funkce nebyla provedena v mém design IP virtex4.Budu vyjádřit svou práci, pokud zjistíte, že něco není v pořádku, prosím, řekněte mi o tom.Díky!
1.Přidat vlastní IP, například jméno je "test", se přerušení funkce.Je-li napsat 1 až slv_reg0, vnitřní čítač bude spuštění.Pak jak to přidává na požadovanou hodnotu, bude přerušení uskuteční.Přerušení logika je '1 ', používá-li, '0', pokud není použit.
Kromě toho, přerušení handler wite '1 'na slv_reg1, tak pro změnu přerušení logiku od '1' na '0 '.
2.Chcete-li změnit MSS a MHS souboru.
v MHS:
začít ppc405_virtex4
PORT EICC405EXTINPUTIRQ = test_0_IP2INTC_Irpt
začít test
PORT IP2INTC_Irpt = test_0_IP2INTC_Irpt
v MSS:
Řidič test
PARAMETRU int_handler = test_handler, int_port = IP2INTC_Irpt
3.Then v EDK8.2, modifikovat softwarovou platformu nastavení-> handler přerušení-> test_0,
přidat test_handler místo výchozí ovladače.
4.přerušení handler je níže:
neplatné test_handler (void * baseaddr_p) (
Xuint32 * addr;
addr = XPAR_TEST_0_BASEADDR;
printf ("- Zadání zkoušky psovoda - \ r \ n");
* (Addr 1) = 1;
printf ("- Odchod test handler - \ r \ n");
)
5.
main ()
(
print ("- Zadání InterruptTest () - \ r \ n");
/ * Inicializace zpracování výjimek * /
XExc_Init ();
print ("- XExc_Init () - \ r \ n");
/ * Registrace externí přerušení handler * /
XExc_RegisterHandler (XEXC_ID_NON_CRITICAL_INT, (XExceptionHandler) test_handler, (void *) XPAR_TEST_0_BASEADDR);
print ("- XExc_RegisterHandler () - \ r \ n");
/ * Povolit PPC Non-kritické přerušení * /
XExc_mEnableExceptions (XEXC_NON_CRITICAL);
print ("- XExc_mEnableExceptions () - \ r \ n");
/ * Povolit TEST přerušení * /
* ((Xuint32 *) XPAR_TEST_0_BASEADDR) = 0x1;
while (1);
)
6.Doba výsledek, který reaguje na UART je nižší než
- Zadání InterruptTest () -
- XExc_Init () -
- XExc_RegisterHandler () -
- XExc_mEnableExceptions () -
ale netisknou
- Zadání test DMA handler -
- Odchod test DMA handler -
To je all.Thank vás!
Můj email je: jane.zhhj (at) gmail.com
Vítejte na mě kontaktovat, aby o něm diskutovat