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 ?