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

Assembling error

Hello,

I am new to the assembly code. The code which I given below is compile(assembling) fine in KEIL.

        AREA    |.text|, CODE, READONLY

        EXPORT vF_dspl_pid

vF_dspl_pid
        push {r4-r7}

        ldrsh Kp,[pS_StateCoeff]
        ldrsh Ki,[pS_StateCoeff,#2]
        ldrsh Kd,[pS_StateCoeff,#4]
        ldrsh IntegratedError,[pS_StateCoeff,#6]

        mla Acc,Ki,si_Error,IntegratedError     //update integrated error
        strh Acc,[pS_StateCoeff,#6]             //store to state

        ldrsh LastError,[pS_StateCoeff,#8]
        strh si_Error,[pS_StateCoeff,#8]

        mla Acc,Kp,si_Error,Acc                 //add in proportional part

        sub Temp,si_Error,LastError
        mla Acc,Kd,Temp,Acc                     //add in the difference part

        mov Acc,Acc,ASR#16                      //scale down to short int
        pop {r4-r7}
        bx lr

        END

But when I switch from KEIL to ROWLEY CROSS WORKS. The foolowing errors are getting during assembling.

Error: bad instruction 'area |.text|,CODE,READONLY'

Error: bad instruction 'export vF_dspl_pid'

Error: bad instruction 'vf_dspl_pid'

Error: Thumb does not support this addressing mode -- 'ldrsh r3,[r1]'

Error: Thumb does not support this addressing mode -- 'ldrsh r4,[r1,#2]'

Error: Thumb does not support this addressing mode -- 'ldrsh r5,[r1,#4]'

Error: Thumb does not support this addressing mode -- 'ldrsh r6,[r1,#6]'

Error: Thumb does not support this addressing mode -- 'ldrsh r6,[r1,#8]'

Error: shifts in CMP/MOV instructions are only supported in unified syntax -- 'mov r7,r7,ASR#16'

Error: bad instruction 'end'
Build failed

Kindly give me suggession to come out of these errors.

-Prakash