Moin! Ich habe mir eine Hardware mit Microblaze prozessor gebaut, auf der ich die Software aus der XAPP1026 laufen lassen möchte. Habe also der Hardware die dort genutzt wird so gut es geht alles nachgebaut und die Software in mein Projekt integriert. Hat auch alles relativ gut geklappt. Bis auf ein paar warnungen und Fehler, die ich bis auf einen alle beheben konnte. Jetzt habe ich noch einen Fehler, den ich irgendwie nicht wegbekomme. Der Compiler sagt mir: XPAR_INTC_0_TMRCTR_0_VEC_ID’ undeclared (first use in this function) und das sagt er an drei Stellen, an denen diese "Variable" nicht mal steht: 1. XIntc_AckIntr(XPAR_INTC_0_BASEADDR, PLATFORM_TIMER_INTERRUPT_MASK); 2. XIntc_RegisterHandler(XPAR_INTC_0_BASEADDR, PLATFORM_TIMER_INTERRUPT_INTR, (XInterruptHandler)xadapter_timer_handler, 0); 3. XIntc_Enable(intcp, PLATFORM_TIMER_INTERRUPT_INTR); Wenn ich jetzt nach dieser Variable suche, Zeigt er mir natürlich die C-Datei in der die Fehler auftauchen und ein file der xparameters.h heißt, aber auch in einem ganz anderen Folder liegt. Dort gibts eine Zeile: #define XPAR_INTC_0_TMRCTR_0_VEC_ID 7 /* Interrupt source for vector */ Damit müsste doch alles funktionieren. Ich versteh das nicht. Grüße Jan Scholz
Jan S. schrieb: > Der Compiler sagt mir: > XPAR_INTC_0_TMRCTR_0_VEC_ID’ undeclared (first use in this function) > und das sagt er an drei Stellen, an denen diese "Variable" nicht mal > steht: Sieht aus, als wenn Du einen Timer bräuchtest. Hast Du den im EDK mit eingebunden? Duke
Wenn man mit dem Microblaze Zeit-basierte Funktionen wie sleep() oder Ähnliches benutzen möchte, muss man im EDK den xps_timer einbinden. Der Microblaze hat selbst keine timer integriert.
Der ist (in platform_config.h) folgendermaßen definiert: #define PLATFORM_TIMER_INTERRUPT_INTR XPAR_INTC_0_TMRCTR_0_VEC_ID und XPAR_INTC_0_TMRCTR_0_VEC_ID ist (in einem unterordner des bsp-ordners in xparameters.h) folgendermaßen definiert: #define XPAR_INTC_0_TMRCTR_0_VEC_ID 7 /* Interrupt source for vector */ mir scheint es irgendwie als wenn mein c-project nicht auf das bsp zugreifen kann. Aber ich habe es ganz sicher damit asoziiert. Das hab ich sogar jetzt eben noch mal nachgesehen.
Also ich habe gerade noch mal wegen dem Timer nachgesehen. Ich habe in meinem Design einen Timer der "xps_timer_0" heißt eingebunden. Der ist auch mit dem Bus "mb_plb" verbunden. Die Adressen sind auch alle vorhanden. Ich meine ich habe den sogar schon im BSB mit ausgewählt. Muss man vielleicht sonst noch irgendwas beachten?
Ich hole diese Thread mal wieder aus der Versenkung, weil ich genau auf den gleichen Fehler gestoßen bin. Mit meinem beginnenden Halbwissen gebe ich nach mehreren Stunden herum probieren auf, deshalb: eugler schrieb: > Hast Du den Timer auch am Interrupt Controller? Wie überprüft man ob der "Timer am Interrupt Controller" ist? Ich habe im EDK den Timer mit xps_timer_0 an einer Adresse und auch den xps_intc_0 an einer anderen Adresse. Müssen die noch irgendwie verbunden werden? Zumindest ist auch bei mir dieses undeklariert: 'XPAR_XPS_INTC_0_XPS_TIMER_0_INTERRUPT_INTR' undeclared (first use in this function) platform.c /lwip_echo_server_0/src line 82 C/C++ Problem
Meint man damit vielleicht, dass xps_timer_0 und xps_intc_0 beide am Bus mb_plb hängen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.