This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Image running from SDRAM

Hi,

I'm using AT91SAM7SE32 for one of my project. My problem is that when I run the code from the external NOR flash then the whole system's works very slow, but when I debug the system from the SDRAM it works faster. I want that the final system should run from SDRAM so that I could get better throughput.

How can I download the image in flash to SDRAM and start it from there? I mean what should be the architecture of the bootloader.

Parents Reply Children
  • Hey guys thank but I think I could not explain the problem exactly.

    The problem is loading the application image (which is in flash) to SDRAM and starting it from there.

    My idea is somewhat like Windows. In the starting the OS resides in the hard disk and while booting it is loaded into the RAM and then it starts running.

    So please suggest me an idea how should I write the boot loader which will load the application image in flash to RAM and start it from the RAM.

    The suggestion you have mention is for debugging the code using Keil debugger. The .ini file is for only debugging purpose.

    Thanks

  • A quick thought: copy the contents of your flash into RAM and change PC to point to it? but why on earth would you want that - executing from RAM should be dedicated to truly time critical stuff of when there is no other choice (IAP).

  • thanks for your suggestion.

    I'm bit not clear that should I compile my code for SDRAM or Flash?

    The problem is that if I compile the code for SDRAM then how can I burn it into flash because while burning the image into flash the utility within the keil decode the .axf file and it download the file at the specific address which I think is the address at which the code is compile.

  • didn't you say that you want to copy from flash to RAM?
    either way, in order to write a flash bank you must switch banks (assuming you have an additional bank) or execute your flash code from RAM. you cannot read and write to the same bank concurrently.