03-25-2020 11:32 AM
I have a example Vivado project and associated lwip echo example created from the SDK.
The application runs as expected when you select Run As - Launch on Hardware (System Debugger) from within the SDK.
I need the application to automatically run at boot on the Microblaze without SDK intervention.
SDK is version 2019.1
Vivado is version 2019.1
I have created two .tcl files from the IPI example for creating the bitfile and programming the bitfile. They are attached. Both scripts complete successfully, however, nothing happens. In the case of the IPI example, after the bitfile has been programmed, the UART starts putting out information. This does not occur for me, the MB is not active after the .tcl script is complete with its programming.
I also need clarification as to the associate ELF files section of Vivado. By default there is something called boot_loop. What does boot_loop do? Should my .elf file be specified here as the boot source? Information regarding the integration of these two processes would be extremely helpful for the development community.
I've found similar threads that don't seem to have a correct answer linked for different versions of the software.
03-26-2020 03:19 AM
The Microblaze will execute whatever code is at the C_VECTOR_BASE (this is set in the Vivado IPI in the microblaze config, default is 0x0) once it comes out of reset.
There are two ways to populate the BRAMs; memdata, or the updatemem. The memdata will use the ELF that is associated in the Vivado to populate the BRAM init strings. The updatemem uses the mmi and the bitstream to populate the BRAM. You would use the updatemem if you wanted to change your ELF.
By default there is a bootloop elf associated. This bootloop just keeps the processor ticking over by looping on the same address.
So, you can add your elf to the vivado project and in the tools -> associate elf, add your elf here and then implement. Or , you can use the updatemem to populate the BRAM.