running from external memory (microblaze)

Hello,

I have build a bootloader which is located in block ram. Now I want to download my final application to sdram and execute it. If I'm correct, I've to make a linker script in order to make this possible. Besides this, I want to use the xilkernel in my application, but not in the bootloader, is this possible? I guess I have to convert the application.elf file to a binary file in order to be placed into sdram by the bootloader?! How are the interrupts handled? Is the interrupt handler from the bootloader used (because it default jumps to address 0x18)? Can I install a new interrupt handler which is located in my application?!

a lot of questions, I searched at the forums, but there are not much examples available. I'm sure there a people who already did this before.

Please help, thanks

Reply to
Frank
Loading thread data ...
  Frank wrote: Hello, I have build a bootloader which is located in block ram. Now I want to download my final application to sdram and execute it. If I'm correct, I've to make a linker script in order to make this possible. Not necessarily. You can simply specify a different start address for your boot loader and your application on the mb-gcc command line. See the Makefile_mb.sh and other Makefile*.* files related to MicroBlaze in the Xilkernel install area. Besides this, I want to use the xilkernel in my application, but not in the bootloader, is this possible? Yes. I guess I have to convert the application.elf file to a binary file in order to be placed into sdram by the bootloader?! Depends on your bootloader. If your bootloader expects binary then you have to. I have seen bootloaders  that use other formats as well, such as SREC or some application specific encoding. How are the interrupts handled? Is the interrupt handler from the bootloader used (because it default jumps to address 0x18)? Can I install a new interrupt handler which is located in my application?! a lot of questions, I searched at the forums, but there are not much examples available. I'm sure there a people who already did this before.   There are some examples of Xilkernel usage in the install area itself (search for print_thread.c).   Please help, thanks
Reply to
mohan

=_NextPart_000_0008_01C3B440.D7C5FFD0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Thank you for your information, I am busy with getting XMK working and = building an application with his own makefile (which specifies another = start address as the bootloader). At this moment one thing is not clear = to me: how are interrupts handled? The microblaze jumps to address 0x18, = but in my case that's the bootloader in block ram. And I want to handle = the interrupts in my application of coarse. Is that possible and if so, = how?

TIA, Frank

Hello,=20 I have build a bootloader which is located in block ram. Now I want = to=20 download my final application to sdram and execute it. If I'm = correct, I've=20 to make a linker script in order to make this possible.

Not necessarily. You can simply specify a different start address for = your boot loader and your application on the mb-gcc command line. See = the Makefile_mb.sh and other Makefile*.* files related to MicroBlaze in = the Xilkernel install area.=20 Besides this, I want=20 to use the xilkernel in my application, but not in the bootloader, = is this=20 possible? Yes.=20 I guess I have to convert the application.elf file to a binary=20 file in order to be placed into sdram by the bootloader?! Depends on your bootloader. If your bootloader expects binary then you = have to. I have seen bootloaders that use other formats as well, such = as SREC or some application specific encoding.=20 How are the=20 interrupts handled? Is the interrupt handler from the bootloader = used=20 (because it default jumps to address 0x18)? Can I install a new = interrupt=20 handler which is located in my application?!=20 a lot of questions, I searched at the forums, but there are not much =

examples available. I'm sure there a people who already did this = before.=20 =20

There are some examples of Xilkernel usage in the install area itself = (search for print_thread.c).=20 =20 Please help,=20 thanks

Reply to
Frank

MicroBlaze always jumps to 0x8 or something like that on interrupt. The initialization code for your application writes the address of your interrupt handler into this low memory so that when an interrupt occurs, MicroBlaze jumps to the fixed low address and from there to your interrupt handler. Frank wrote: At this moment one thing is not clear to me: how are interrupts handled? The microblaze jumps to address 0x18, but in my case that's the bootloader in block ram. And I want to handle the interrupts in my application of coarse.

Reply to
mohan

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.