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.
Hi.
I have a problem, I want to run all my code from RAM memory. I try to do it with a scatter file. But after alot of experiments, I think it's cannot be done, because the interrupts vector has to be in the flash. And it's mean that in any interrupt I will 'go' to flash in an interrupt.
So there is another way to run all my code from the RAM? If not how the scatter file should be looked like?
Thnks.
You have searched for weeks?
Have tried searching for "remap" in the datasheet for the processor? What is your conclusion? What have you tried to do, based on the datasheet information? What was the outcome?
you can start by actually making sure you don't leave the main function by adding an infinite loop, like this:
int main(void) { <your code starts here> . . . <your code ends here> for (;;) ; }
ok I succeed to run the main from the RAM but my main problem is the interrupts vector. The Reset inerrupt must be in the flash. but the other interrupt vector need to be in the ram, because, I don't wont to jump in any interrupt to the flash, I want that the flash get in low power mode.
Have you still not read the datasheet information about remapping the interrupt vector table to RAM?
Remapping of the interrupt vector table means that a part of the RAM is mapped on top of the flash, so the ARM core thinks that it reads interrupt vectors from flash, when in reality the vectors are stored in RAM, allowing you to modify them on-the-fly.
I search this in the data sheets but I don't see something like this. I work with AT91SAM7X. If you can show me who to do it I will thak you.
You see nothing?
17-May-2010 14:14 GMT, I asked you if you had checked the "remap" command in the datasheet.
Now, I ask you again - don't you see anything about remapping the RAM to overlap the flash in the datasheet? Have you tried to let your pdf reader actually search for "remap" in the datasheet? Have you checked all places where the word "remap" is used? And you still find nothing about how to store interrupt vectors in RAM?
RAM_INTVEC REMAP RAM_MODE