ADS 1.2 compiler port question

nobody wrote on Friday, March 03, 2006:

I want port free rtos use ARM Developer Suite 1.2,but the compiler have some limit: it can’t modify “SP” value when use inline assemble,  so i can’t write “portRESTORE_CONTEXT” and “portSAVE_CONTEXT” in c code;it can’t support a function to be “nake” or “task”.
how can i do?

kevin

nobody wrote on Friday, March 03, 2006:

This is the second message in two days on this.  Is this to do with the new Keil/ARM combined offering?

I think in RVDS you can write assembly functions directly in C code just by placing an asm (or __asm?) before the function.

eg

asm void aFunction( void )
{
    asm statements go here
}

nobody wrote on Monday, March 06, 2006:

Though i can write assmbly function directly in C code, but can’t direct access “SP”,“LR” register, so i can’t use inline assembly MACRO in C code, because
some freertos code like “portRESTORE_CONTEXT”, “portSAVE_CONTEXT” “portENTER_SWITCHING_ISR” direct use “SP” “LR” register, how can i do?

kevin

nobody wrote on Monday, March 06, 2006:

If this is a hard limitation in the compiler then it is going to be difficult.  Are there any modes of operation where it allows access?  It seems very restrictive.

nobody wrote on Friday, September 08, 2006:

Have you figured out the solution for this yet?
I am having the same problem.

nobody wrote on Saturday, September 09, 2006:

Have a look at the files in FreeRTOS\Source\portable\RVDS\ARM_CM3.  These use RVDS but are not for the ARM7. But I’m sure you could copy how it was done.