- The location of the ELF file to be loaded
- The address space accessible via a master interface to a memory location, which the ELF file will be stored
- The mapped peripheral within that address space representing the memory where ELF file will be stored and from where it will be accessed at run time
This process uses SCOPED_TO_REF and SCOPED_TO_CELLS properties on the MicroBlaze processor itself, and not to the BRAMs that are the actual target of the ELF file data.
You can associate the ELF file to the MicroBlaze processor during the v++
--link
process using the --advanced.param
<param_name>=<param_value>
command as described in --advanced Options. An example for a config file is shown
below.
[advanced]
param=hw_emu.post_sim_settings=<file_path>/link.tcl
The link.tcl should add the ELF file to the Vivado Design Suite project, exclude it for use in simulation, and associate it with the MicroBlaze processor, as shown in the example below.
add_files <file_path>/executable.elf
set_property used_in_simulation 0 [get_files <file_path>/executable.elf]
set_property SCOPED_TO_REF base_microblaze_design [get_files -all \
-of_objects [get_fileset sources_1] {<file_path>/executable.elf}]
set_property SCOPED_TO_CELLS { microblaze_0 } \
[get_files -all -of_objects [get_fileset sources_1] {<file_path>/executable.elf}]
This information will be used to generate a BMM file which will be used by programs such
as data2mem
to generate a .mem file that will
populate the BRAMs that are generated from the block_memory_generator
.