this post is to share a solution to a problem that I have just solved. I hope this helps anyone.
When generating software in SDK for an XPS project, also a linker script is generated by thefault.
Then, SDK generates the ".elf" file when saving our ".c" file
If we want to include this XPS project into an ISE project and we add this ".elf" to this ISE project, whe we upload it to the board, this ".elf" will not be executed because in the default linker script it was indicated to run the program from the BRAM, an noone will have loaded it.
So, if we want the ".elf" to run just programming the board, we will have to change this linker script by creating a new one. We can do this in the "Xilinx Options" menu, in SDK. Then, we have to choose this specifications, so that the program is executed from the imlb controller:
Then, we save the new linker script in our "src" folder with the same name that the previous one and save. This way, when a new ".elf" is created, this one will be created according to the new linker script. So, if we add it to an ISE project, it will be included in our ".bit" file and it will use the imlb controller, so it will not be necesary to load de BRAM for the program to be executed.
If something is not clear enough do not hesitate to reply this post and ask it. I will be pleased to help you if I can.