This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I ran into an interesting problem, that I can't explain by myself.
I have several functions, that shall be copied to RAM. So I defined the "ramfuncs" section for them.
It seems that everything works fine as long as this section doesn't become too big. The limit seems to be at a size of 0x800 (not 100% sure on that).
If the section is bigger, shortly after execution of memcpy (but still before enabling any interrupts), the controller ends up at address 0x3fbd92 where there is an ESTOP instruction (I don't know that address).
The section does fit into the specified flash sector as well as into the specified RAM sector and memcpy seems to work properly (I can find the code in RAM as expected).
If I devide my ramfuncs into two sections, that are each below 0x800, and put them into different flash and RAM sectors, everything works fine.
If I put those two sections into the same (sufficiently sized) sector, I get the same problem.
Any help would be highly appriciated. :)
Just found the problem, of course after adding this post... I had an error in the command file, that I just didn't see the whole time...
Sorry for the post, please close or delete it. Thanks!
Christopher,
Glad it is working fine now for you.
That might be BootROM's ITRAP address - TRM should have this info.
If you can mention the issue that you fixed in your linker cmd file - It will help others that may refer to this post. Then, we can close this post.
Thanks and regards,
Vamsi
It's almost too embarrassing to post it.. ;)
I did this:
MEMORY { PAGE 0 : BEGIN : origin = 0x080000, length = 0x000002 RAMM0 : origin = 0x0000F4, length = 0x00030C RAMLS0 : origin = 0x008000, length = 0x001000 //RAMLS3 : origin = 0x009800, length = 0x000800 RAMLS4 : origin = 0x00A000, length = 0x000800 RESET : origin = 0x3FFFC0, length = 0x000002 [...]
I wanted to use the 2 sectors as one, but obviously their address spaces aren't consecutive. Very stupid, especially as even their names already show that..
With RAMLS3 and RAMLS4 it works fine of course.
As you mention the documentation: Where can I find a documentation on the syntax of linker command files? This could be quite useful sometimes.
Christopher,
That is a valid mistake that users may do. Thank you for sharing.
Please take a look at this and see if this is helpful: http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
Thanks and regards,
Vamsi