We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I work with at91sam7X512 In my trying to ran from the RAM I decide to do memcopy from the FLASH to the RAM, I saw in assembler that the code copied to the RAM, but it doesn't succeed to run back to the program. I look on the assembler and I found the problem, I have this line:
0x00010FFC 0xEB0001D2 bl __aeabi_memcpy
I understand that bl command supposed to places the return address in the link register, and set the PC to the address of the subroutine. It's set the PC to the address of the subroutine but in the Link register It's put undefined address 0xEB0001F5, and then to prefetch abort.
What's go wrong? thanks all, chiko.
Thank you, but I succeed to run from the flash without this in much smaller code , only when we take the code bigger, around 94KB, there was a problems. first the RO section wasn't big enough so I increase it to the exactly size of the RO. I conifgure it like this-
START_RAM = 0x00200000 START_RW = 0x00216FE0 SIZE_RO = 0x00016FE0 - 94,176 SIZE_RW = 0x00002BE8 - 11,240 SIZE_ZI = 0x00005F28 - 24,360
All together is 129,776 KB, and in at91sam7x512 there is 1024 * 128 = 131,072, RAM Size.
Why when thr RO size was smaller I succeed to do it and now not?