Since the program cannot fit in an internal ram, I have to use external memory, such as ddr. As Xilinx edk indicates debugger, bootloader or ACE file should be used to initialize memory before the program can be executed. But I don't know how to initialze memory by using one of above methods. Could anyone enlighten me on it ?
One method I employ for this is to use a small amount of internal ram (BRAM) to handle a bootloader. The bootloader would read the application from an external non-volatile storage (such as FLASH) and load it into the RAM for execution. It then jump's to the application entry point and the application begins execution.
Now if you want to just test the application, you can use XMD to dynamically download the application directly to RAM for testing purposes. To perform that, with your JTAG cable connected and a valid image on the FPGA, you would perform the following from the xygwin bash shell (or real shell if you're lucky enough to be using *nix):
2) connect mb mdm -- This is for a MicroBlaze, which requires having the opb_mbm core in the project
3) connect powerpc -- This is for a PowerPC
Now you're application would be downloaded to RAM and it can execute as normal.
To build your application to reside in RAM, you need to either configure the default linker to set the application to reside in RAM, or set the default settings to set it in RAM, and make sure you don't have the application set to initialize BRAM.