Hi, i use EnergyMicro EFM32 and ram function. I create ram_code record in scatter file (inside IRAM1 section). But as described in ref.manual for ram code access i can use 0x10000000 address and for data access 0x20000000. So i need compile code for place ram function from 0x10000000 region. But for copy codes from flash to ram i need use 0x20000000 region.
How can i implement manual (own) function for copy codes from flash to ram? I need info about Veneers records (location and size) and make custom copy function.
Thanks
Note that the linker is already capable of creating a binary for storage at one address, but with all symbols adjusted for the binary to be copied to a different address and run at that address.
So a flash boot loader may take the binary code and copy from flash into RAM and then jump to the start address in RAM - lots of faster processors use the flash space as a form of "disk" but after the boot runs all code from RAM because of the faster access times in RAM.
But the above means that the binary can already contain correct code for calling the CRTL initialization code for use in RAM.