This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ASSEMBLER PROBLEMS

Hello,

I am using uVision 5.15 processor is emf32g222f128. my code(part of bootloader based on silicon lab supplied code) is:

oid BOOT_jump(uint32_t sp, uint32_t pc)
{
  /* Set new MSP, PSP based on SP (r0)*/
  __asm("msr msp, r0");
  __asm("msr psp, r0");
  //goto *Default_PC;
  /* Jump to PC (r1)*/
  __asm("mov pc, r1");
}


causes compiler errors:

compiling Bootloader.c...
Bootloader.c(153): warning: #1267-D: Implicit physical register R0 should be defined as a variable __asm("msr msp, r0");
Bootloader.c(153): error: #549: variable "R0" is used before its value is set __asm("msr msp, r0");
Bootloader.c(157): warning: #1267-D: Implicit physical register R1 should be defined as a variable __asm("mov pc, r1");
Bootloader.c(157): error: #549: variable "R1" is used before its value is set __asm("mov pc, r1");
Bootloader.c: 2 warnings, 2 errors

I have tried several variations. msr msp r0 works fine but not the "mov pc, r1"
Any ideas?

Thanks

Yash

0