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.

How to solve this problem ? Running from RAM without copying my code into there

Hi all,

I'm currently working on a project, using the MSP430F5438A.

I use a function which is fixed and written into Flash Memory. I would like to execute it from RAM, without using memory allocation of the RAM.

I've ever tried with ".function LOAD=Flash_Area RUN=Ram_Area" but during execution code, I have an issue with an assembly instruction BRA#???? I've created a post about this problem.

Does exist a specific pragma or another solution which could be useful for my problem ?

If someone would have an idea,

Regards

  • Consider using the ramfunc function attribute.  It is described in both the MSP430 compiler manual and this wiki article.

    Thanks and regards,

    -George

  • By using this function attribute, after compiling my code, my RAM is almost full because my "function" has allocated all space available. I would like to use the RAM of ephemoral
  • I'm not sure I understand your problem.  I will guess at a few things.  I'll explain these guesses.  If these guesses are wrong, then so is the rest of this post.

    Bertrand.V said:
    I would like to use the RAM of ephemoral

    One guess is you mean to use the word ephemeral, which means: lasting only a very short time.  By that, I guess you mean you want to use the RAM for more than one purpose during system execution.  Here is one example of what I mean.  During one time period, the RAM contains one set of related functions, during a different time period, the RAM contains a different set of functions.  I presume this description of your problem is correct, otherwise the rest of this post is wrong.

    It is possible to do that.  The features which support this operation are the UNION directive in the linker command file, and the copy_in function from the compiler RTS library.  These are described in this application note.  The example in that application note is for a different processor family, but the use of UNION and copy_in is the same in concept.

    Thanks and regards,

    -George