EDK - Microblaze question

Is there a method of using external RAM (Generic external Memory) where the data, heap and stack can be located? Ideally the code would remain in BRAM so not to require additional external non-volatile memory.

I've tried altering the loader script to indicate a different address range for the data side but I come up with: WARNING:MDT - Elf file TestApp_Memory/executable.elf does not reside completely within BRAM memory of processor microblaze_0.

Is there an example I can use as a starting point - if one exists!

Reply to
Loading thread data ...

Does anything go wrong other than the warning?

Reply to
Eric Smith

I don't know this CPU/toolset, but there are, with most modern CPUs I've dealt with, plenty of ways of confusing the "code" and "data" segments such that the separation is not as total as you'd expect. By which I mean that perhaps your linker script is nonetheless attempting to store constant data/code somewhere other than code memory.

Just a thought...


formatting link

Reply to
Steve at fivetrees

The warning comes about because you are trying to initialize this partitioned application into _BRAM_. When the bitstream is downloaded, your app won't work since only a part of it is present in the bitstream. But if you are downloading everything via XMD, then you are fine. So depending on what you are trying to do, the warning could be something real you have to watch out for.

You can use the linker script generator for partitioning ELf setions between different memories. It works and no, there is no confusion between the code segments as someone else pointed out.


Reply to
Vasanth Asokan

I altered the loader script so that only .data, heap and stack were placed in external memory. However I still got the error. Things have moved onto another board where thankfully there is sufficient block ram.

Many thanks for the replies.

Reply to

It barfs up because the .data sections of your executable also contain global variables which can be initialised... and since you do not control the SDRAM, you can't initialize them !

In order to pull this off, you'd need an executable loader which would be aware of the .elf format and would load a .elf file (for instance stored in Flash) and build the adequate structures in your SDRAM when loading the executable.

Reply to

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.