cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
jpgl
Observer
Observer
8,155 Views
Registered: ‎02-02-2010

I can't add to my SW Platform the Interrupt Controller?

Jump to solution

Hello

 

On the Software Platform Settings, when I add an Interrupt Controller (intc), why do I get this errors?

It seems that when I add the interrupt controller, the software platform will add to the library the file:

"timer_intr_handler.c" which at the begginning has the following line:

 

 

#include "xintc.h"

 

The problem is that this xintc.h wasn't add to the software library XilKernel....

 

 

I'm stuck on this problem, and therefore I can't use the interrupts.

 

Anyone has any ideia about this error?

 

 

The Errors:

 

make -k clean all 
rm -rf microblaze_0/code/
rm -rf microblaze_0/include/
rm -rf microblaze_0/lib/
rm -rf microblaze_0/libsrc/
rm -f libgen.log
libgen \
-hw C:/VSS/ICC-251/SW-XILINX/hw/ublaze.xml \
-pe microblaze_0 \
-od . \
-lp C:/VSS/ICC-251/SW-XILINX \
-log libgen.log SW_Platform_XILKERNEL.mss
libgen
Xilinx EDK 11.1 Build EDK_L.29.1
Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved.

Command Line: libgen -hw C:/VSS/ICC-251/SW-XILINX/hw/ublaze.xml -pe microblaze_0
-od . -lp C:/VSS/ICC-251/SW-XILINX -log libgen.log SW_Platform_XILKERNEL.mss

WARNING:EDK:411 - spi -
C:\VSS\ICC-251\SW-XILINX\SW_Platform_XILKERNEL\SW_Platform_XILKERNEL.mss line
64 - deprecated driver!
INFO:EDK:1740 - List of peripherals connected to processor instance
microblaze_0:
- DDR
- dlmb_cntlr
- iccBridge
- ilmb_cntlr
- intc
- mdm_0
- spi
- uart

Staging source files.
Running DRCs.
Running generate.
Running post_generate.
Running include - 'make -s include "COMPILER=mb-gcc" "ARCHIVER=mb-ar"
"COMPILER_FLAGS=-mno-xl-soft-mul -mxl-pattern-compare -mcpu=v7.20.d -O2 -c"
"EXTRA_COMPILER_FLAGS=-g"'.

Running libs - 'make -s libs "COMPILER=mb-gcc" "ARCHIVER=mb-ar"
"COMPILER_FLAGS=-mno-xl-soft-mul -mxl-pattern-compare -mcpu=v7.20.d -O2 -c"
"EXTRA_COMPILER_FLAGS=-g"'.
Compiling standalone
Compiling common
Compiling lldma
timer_intr_handler.c:31:19: error: xintc.h: No such file or directory
timer_intr_handler.c:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'sys_intc'
make[3]: *** [timer_intr_handler.o] Error 1
mb-hw.c:43:19: error: xintc.h: No such file or directory
mb-hw.c:54: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'sys_intc'
mb-hw.c:84: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'XIntc_ConfigTable'
mb-hw.c: In function 'int_system_init':
mb-hw.c:143: error: 'sys_intc' undeclared (first use in this function)
mb-hw.c:143: error: (Each undeclared identifier is reported only once
mb-hw.c:143: error: for each function it appears in.)
mb-hw.c:143: error: 'XPAR_INTC_DEVICE_ID' undeclared (first use in this function)
mb-hw.c:150: error: 'XPAR_INTC_BASEADDR' undeclared (first use in this function)
mb-hw.c:150: error: 'XIN_SVC_ALL_ISRS_OPTION' undeclared (first use in this function)
mb-hw.c:167: error: 'XIN_REAL_MODE' undeclared (first use in this function)
make[3]: *** [mb-hw.o] Error 1
make[3]: Target `all' not remade because of errors.
make[2]: *** [dir_arch] Error 2
intr.c:35:19: error: xintc.h: No such file or directory
intr.c:42: error: expected specifier-qualifier-list before 'XInterruptHandler'
intr.c:57: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'sys_intc'
intr.c: In function 'sys_register_int_handler':
intr.c:116: error: 'sys_intc' undeclared (first use in this function)
intr.c:116: error: (Each undeclared identifier is reported only once
intr.c:116: error: for each function it appears in.)
intr.c:116: error: 'XInterruptHandler' undeclared (first use in this function)
intr.c:116: error: expected ')' before 'handler'
intr.c: In function 'sys_unregister_int_handler':
intr.c:138: error: 'sys_intc' undeclared (first use in this function)
intr.c: In function 'sys_enable_interrupt':
intr.c:159: error: 'sys_intc' undeclared (first use in this function)
intr.c: In function 'sys_disable_interrupt':
intr.c:180: error: 'sys_intc' undeclared (first use in this function)
intr.c: In function 'sys_acknowledge_interrupt':
intr.c:202: error: 'sys_intc' undeclared (first use in this function)
make[3]: *** [intr.o] Error 1
make[3]: Target `all' not remade because of errors.
make[2]: *** [dir_sys] Error 2
make[2]: Target `all' not remade because of errors.
make[1]: *** [dir_src] Error 2
mb-ar: creating ./libsyscall.a
mb-ar: creating ./libxilkernel.a
make[1]: Target `libs' not remade because of errors.
Compiling mpmc
Compiling uartlite
Compiling spi
Compiling cpu
ERROR:EDK:369 - make failed for target "libs"
ERROR:EDK:1189 - Error(s) while running "make" for processor microblaze_0.
make: *** [microblaze_0/lib/libxil.a] Error 2
make: Target `all' not remade because of errors.

 

Thanks in advance

 

0 Kudos
1 Solution

Accepted Solutions
vsiva
Xilinx Employee
Xilinx Employee
9,735 Views
Registered: ‎01-18-2008

So your issue is with the lack of intc in the MSS. First fix the error that says "no IP named xps_intc_0 in your hardware". Instead of xps_intc_0, it should be intc to match the IP name you set in XPS.

 

You can probably avoid all these issues by just creating a new xilkernel BSP. It should then have a correct MSS with all the required settings.

 

 

View solution in original post

4 Replies
vsiva
Xilinx Employee
Xilinx Employee
8,146 Views
Registered: ‎01-18-2008

In your MSS, what is the driver that is assigned to the interrupt controller? If that is properly assigned as intc, then see if "microblaze_0/libsrc/" contains an intc folder, and if "microblaze_0/include" contains the xintc.h file.

jpgl
Observer
Observer
8,143 Views
Registered: ‎02-02-2010

vsiva, you are correct...

 

There are no "intc" folder on "microblaze_0/libsrc" neither xintc.h on "microblaze_0/include" :-(

 

Is this a problem related to my *.MSS file?

 

My actual MSS file is this:

 

 

 PARAMETER VERSION = 2.2.0


BEGIN OS
PARAMETER OS_NAME = xilkernel
PARAMETER OS_VER = 4.00.a
PARAMETER PROC_INSTANCE = microblaze_0
PARAMETER STDIN = uart
PARAMETER STDOUT = uart
PARAMETER SYSTMR_SPEC = TRUE
PARAMETER SYSTMR_DEV = fit_timer_0
PARAMETER config_time = true
PARAMETER systmr_freq = 55296000
PARAMETER systmr_interval = 20
PARAMETER config_pthread_mutex = true
PARAMETER config_sema = true
PARAMETER config_msgq = true
PARAMETER config_bufmalloc = true
PARAMETER sysintc_spec = intc
PARAMETER mem_table = ((4,30),(20,20))
END


BEGIN PROCESSOR
PARAMETER DRIVER_NAME = cpu
PARAMETER DRIVER_VER = 1.11.c
PARAMETER HW_INSTANCE = microblaze_0
PARAMETER COMPILER = mb-gcc
PARAMETER ARCHIVER = mb-ar
END


BEGIN DRIVER
PARAMETER DRIVER_NAME = mpmc
PARAMETER DRIVER_VER = 2.00.a
PARAMETER HW_INSTANCE = DDR
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = bram
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = dlmb_cntlr
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = iccBridge
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = bram
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = ilmb_cntlr
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.14.a
PARAMETER HW_INSTANCE = mdm_0
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = spi
PARAMETER DRIVER_VER = 1.11.a
PARAMETER HW_INSTANCE = spi
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.14.a
PARAMETER HW_INSTANCE = uart
END

 

 

 

I added manually the red line that is above.

 

If I add the following lines (bellow) manually to my *.MSS file, the XilKernel won't compile...

 

 

BEGIN DRIVER
PARAMETER DRIVER_NAME = intc
PARAMETER DRIVER_VER = 1.11.a
PARAMETER HW_INSTANCE = xps_intc_0
END

 

Notice that i wrote "xps_intc_0". But if I try only "xps_intc" i get the same errors...bellow:

 

 

 

ERROR:EDK:410 - intc -
C:\VSS\ICC-251\SW-XILINX\SW_Platform_XILKERNEL\SW_Platform_XILKERNEL.mss line
76 - No IP instance named xps_intc_0 is present in the hardware!
ERROR:EDK:1206 - Errors occured while parsing MSS file.
make: *** [microblaze_0/lib/libxil.a] Error 2
make: Target `all' not remade because of errors.

 

Ah...on the previous post i forgot to add the attached image, which allow me to add the "intc" interrupt controller to the XilKernel.

 

Can you help me? What is missing here?

 

Thanks again!!! :-)

interrupt_controller.JPG
0 Kudos
vsiva
Xilinx Employee
Xilinx Employee
9,736 Views
Registered: ‎01-18-2008

So your issue is with the lack of intc in the MSS. First fix the error that says "no IP named xps_intc_0 in your hardware". Instead of xps_intc_0, it should be intc to match the IP name you set in XPS.

 

You can probably avoid all these issues by just creating a new xilkernel BSP. It should then have a correct MSS with all the required settings.

 

 

View solution in original post

jpgl
Observer
Observer
8,122 Views
Registered: ‎02-02-2010

THANKS VSIVA!!!! :-D!!!

That's it!!!!!!!!!!!!!

 

Instead of xps_intc_0, as you said, i wrote "intc"....

 

And finally XilKernel compiles!!!

 

My MSS file has:

 

 

BEGIN DRIVER
 PARAMETER DRIVER_NAME = intc
 PARAMETER DRIVER_VER = 1.11.a
 PARAMETER HW_INSTANCE = intc
END

 

Thank you!!! :-)

Kudos for you my friend!

 

 

 

0 Kudos