Quantcast
Channel: MSP430 Technical Forums
Viewing all articles
Browse latest Browse all 2077

Not able to update SP and PC using inline assembly in MSP430-GCC

$
0
0

I am writing a simple task scheduler for my MSP430F5529 USB launchpad. I need to update stack pointer(SP), then enable interrupts and then update program counter (PC). But I am getting an error with my inline asmebly code.

 

    void start_scheduler(void)
    {
      asm volatile("mov.w task1stack, SP \n"
                   "EINT \n"
                   "mov.w func1, PC \n"
              );
    }


 - task1stack is the stack area for the task execution. It is an array.
 - func1 is a function
 - instead of uppercase for 'SP' and 'PC', I tried lowercase also. But the error was present.


But with the above code, compiler is showing the below error
 

    kernel.c:(.text+0x8e): undefined reference to `SP'
    kernel.c:(.text+0x96): undefined reference to `PC'


Questions:

 1. How to update SP and PC ?
 2. Can "mov.w task1stack, SP \n" copy array address to SP ? Is my syntax correct ?
 3. Can "mov.w func1, PC \n" copy the func1 address to PC? Is my syntax correct ?


Viewing all articles
Browse latest Browse all 2077

Trending Articles