Hello, I’ve developed a Microblaze application on Vitis 2022.2. While using Vitis to run the application, the linker script assigns all sections to the DDR and not the BRAM and everything works well.
What I want to accomplish now is the ability to run the application (.elf, .bin, etc) straight from my PYNQ environment and I’ve seen tutorials about adding a BRAM Controller that allows the ARM to access the Microblaze’s local memory. I’ve followed all that, generated a new bitstream but the problem lies in the fact that the BRAM is very limited in size and my application size per mb-size as of this moment is 0x105fb20 (which translates to approximately ~16MiB) and obviously won’t fit in the BRAM and as expected PYNQ threw an error while trying to use PynqMicroblaze that “Binary data is too big for IP”.
My main question is how can I upload the .elf straight to the DDR the same as Vitis does and initialize the Microblaze from PYNQ?
On a different note, I have another issue that also involves the Microblaze, but rather the writing operation to the BRAM from PYNQ. I want to use the bram.mmio.array to write arrays directly instead of a loop of multiple bram.write() operations. Writing a single value to the array works and writing up to 4 values in a slice also works, but more than 4 values causes the Jupyter kernal to crash. What could cause this?
Thanks!