Xilinx EDK: Connecting interrupt to MicroBlaze requires stdout?

Hi, I'm beginning my development with Microblaze (EDK 8.1.02i). I don't currently had a debug module attached to my system and am designing for a custom board currently. I've run into one snag that I can't find the origin of.

My system is setup as a simple sub module exported to ISE for compilation with only one user designed peripheral which is working well. I've developed C code for it and have even setup simulation in ModelSim. Good start. Since I have no debug module, my "stdout" and "stdin" settings under "Software Platform Settings" are both currently "none." Clearly, I don't use printf.

Now, with my C code unchanged, I can compile my .elf file, import from ISE the .bit file, update my bit stream, and everything is great. However, if I simply connect a previously unconnected signal on my (or any) peripheral to the INTERRUPT input to the microblaze_0 IP, I get the following errors when compiling my software project:

/cygdrive/c/Installed/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze/3.4.1/../../../../microblaze/bin/ld.real: region ilmb_cntlr_dlmb_cntlr is full (TestApp/executable.elf section bss_stack) ./microblaze_0/lib//libc.a(xil_printf.o): In function `outnum': xil_printf.o(.text+0x19c): undefined reference to `outbyte' xil_printf.o(.text+0x1c4): undefined reference to `outbyte' xil_printf.o(.text+0x258): undefined reference to `outbyte' ./microblaze_0/lib//libc.a(xil_printf.o): In function `xil_printf': ...

Now, this appears to be a common error and I've found it in Xilinx's Answer Solutions. However, the "solution" is to either define your stdout/in module (I have none to define), or remove any printf or xil_printf statements from your code. I have no printf statments! My code is as simple and short as possible at this point.

So, by simply connecting an interrupt signal in my System Assembly, I have somehow linked in code containing a printf? Perhaps some debug feature of the interrupt IP? I've searched and searched and can't find where this happens.

I've also turned off "Generate Debug Symbols" in the compiler options within the EDK for the software project and tried to compile. Same error. I've setup the project in Studio SDK and tried to compile the code for Release and Debug executables. I still ge the same error.

Where are the printf's coming from? What can I do to disable their inclusion? Thank you, and sorry for the lengthy post.

Garrick

Reply to
Garrick
Loading thread data ...

/cygdrive/c/Installed/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze/3.4.1/../../../../microblaze/bin/ld.real:

Garrick - If you add -Wl,-M option to the gcc commandline, you'll get a map file. The initial part of it would indicate why a particular library was brought in. It might be helpful in resolving which library or function caused xil_printf to be pulled in.

-Siva

Reply to
Siva Velusamy

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.