Hi.
LSL with the immediate number 1 is already 2x, so you should have put #1 instead of your #0x2.
And as I've mentioned, you don't need push and pop here. What you need is a simple 'bx lr' under label 'end', w/o any push/pop in your routine. LR is usually only changed by BL.
i.e. ldr r0...