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

Loading_Hex_FIle_executing in RAM

Hi,
my programme is loaded to flash memory of my arm, but it is executing in arm's ram (i achived it using scatter file). I generated a hex file. I also generated hex file for same programme which is loaded to flash and is executing in flash. All above i did in keil uVision. Both hex files are the same. I want to load hex file in an other way then keil IDE. And here is my question: is it possible that hex file would have information where code should be executed. or is it caused by keil ide. i also would like to know how it works in keil and is it possible to execute code in arm's ram if i would load a hex file even with a simple programme.
Thanks in advance

  • You can tell the linker that an object file should have the code stored in flash, but copied into RAM and run from RAM. This is similar to how initialized variables gets copied from flash into RAM before main() is called.

    You can never use a hex file that places the code directly into RAM, since that information will be lost when you turn off the unit. Loading directly to RAM is only applicable when debugging.

  • When i wrote executed in ram it means copied into RAM and run from RAM, so the code is always stored in flash. I want to know if i have just hex file and a simple pc application is it possible after load code placed in a hex file to execute it (copie and run in RAM. This application have no linker.

    The second problem does SAM-BA let for such operation and if yes how it is made

  • A PC program can't just copy a hex file into your ARM chip.

    Depending on what processor you use, there are a number of tools specially designed for downloading firmware. FlashMagic is a good tool to program NXP chips.

    What is SAM-BA? Do you mean the Samba program for Windows SMB networking and available for Linux and BSD machines? In that case, you will not be able to use file-sharing to copy a hex file into your ARM chip unless you implement networking and file-system support in the ARM chip. And it would still be a sub-optimal way of loading new firmware since the framework application would be a truly huge bootloader...

  • Pc application whiich is a tool designed for downloading firmware.
    I mean Atmel's SAM-Ba.
    I made a mistake. I compare two same hex files that is way they were the same. but few moment ago i compare hex file with code executed in flash and code executed in Sram and there are many diffrences. I believe that just hex file will do the work. But i must check this out.
    thanks again

  • Note that the ARM compiler can produce location-independent code that only contains relative references, allowing the code to run at different locations.