I have an instruction in my ARM assembly program for Cortex-M3:
LDMIA sp!, {lr}
When I try replacing this instruction with LDM sp!, {lr} for the recommended UAL syntax (as IA is the default addressing mode), I get the following error:
INTERNAL ERROR!: Unexpected operand in LDM/STM conversion
This may be a serious problem. Please contact customer support with a description of the problem and a sample of the sourcefile that caused this message to appear.
But it is amazing to see that the instruction:
LDM sp!,{R0-R12,R14}
executes without any errors.
The LDM instruction shows this error, when we are using sp or LR as one of the operands, and we have a single register in the register list. There is a workaround for this by using the other registers instead of sp or LR, but is this a problem really?