cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
7,899 Views
Registered: ‎10-31-2007

Problems with Xilinx Educational Examples...

Hello, I'm currently a student of ECE at California Polytechnic University Pomona.  I recently purchased a Spartan-3E board, as that is what our laboratory courses are using for learning about Microprocessor programming.  The majority of our labs involve derivitives of the labs offered under the Xilinx University Program.  At the moment, we are on lab #5, dealing with programming using Interrupt Controllers and Handlers.  What the professor has requested is making a clock which increments every second based upon an interrupt signal.

Now, I'm not asking for the code or anything like that... like I said, it was all more or less a derivitive of what was provided by the folks at Xilinx.  What I'm having an issue with is the fact that after following all the instructions, both in the derived form and to the letter from Xilinx, I am consistently receiving the error:

./microblaze_0/lib//libxil.a(xintc_g.o)(.data+0x10):/cygdrive/d/School/ECE342L/Lab4/microblaze_0/libsrc/intc_v1_00_c/src/xintc_g.c: undefined reference to `timer_int_handler'

and within the file, the only reference to the timer_int handler is as such:

extern void timer_int_handler (void *);


XIntc_Config XIntc_ConfigTable[] =
{
    {
        XPAR_OPB_INTC_0_DEVICE_ID,
        XPAR_OPB_INTC_0_BASEADDR,
        XPAR_OPB_INTC_0_KIND_OF_INTR,
        XIN_SVC_SGL_ISR_OPTION,
        {
            {
                timer_int_handler,
                (void *) XPAR_DELAY_BASEADDR
            }
        }

    }
};


I've read the instructions and did some searches and they mention that a  linker might solve some of these problems.  Lo and behold, the one provided along w/ the lab solutions failed to work.  I tried renaming it to the reference given to it within xparameter.h... still no dice.  Per Xilinx, the file is used for configuring a table used for each interrupt controller being used by the system.  I'm completely clueless as to what I'm supposed to do to allow the program to compile from this point.  At the moment, timer_int_handler is defined as my Interrupt Handler within my primary *.C file, as a seperate function from the main function.
0 Kudos
Reply
3 Replies
Highlighted
Xilinx Employee
Xilinx Employee
7,894 Views
Registered: ‎08-07-2007

Not sure what exactly happened there.
 
But there's one thing need to be mentioned that before EDK9.1, you can register your interrupt handler in MSS file. Since EDK9.1, it's not supported any longer. You need to register your ISR manually in your C code. There should be an Answer Record for it. You can search the Xilinx Answer Database for it.
 
--XF
 
0 Kudos
Reply
Highlighted
Visitor
Visitor
7,888 Views
Registered: ‎10-31-2007

thanks for the response... didn't even know such a thing existed... I'll give it a shot and see what happens...
0 Kudos
Reply
Highlighted
Visitor
Visitor
7,880 Views
Registered: ‎10-31-2007

Still no luck and I've tried searching through the answer data base for 'handler', 'interrupt', 'xintc_g', and the like with no luck.  I've also tried running the base program directly from the labsolutions folder and it HAS worked on it's own (basically, a binary counter using LED's (???)) but when I tried replacing the source file with my own custom one, after making sure that all the components required by it were set up properly as per the previous labs and, once again, that same error showed up.  I'll probably end up asking my professor tomorrow, but still... I was feeling somewhat hopeful earlier today that I could do this.  ~sighs~
0 Kudos
Reply