codesourcery compile helping
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

codesourcery compile helping



Dear Sir;

 

   I am a new player, I want to use the coudsourcery to compile and
debug the arm assemble language. 

 

I give you the program, could you help me solving the question. Thank
you.

@///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////

.section  .data    @ pre_define

       

Mode_USR        =     0x10

Mode_FIQ        =     0x11

Mode_IRQ        =     0x12

Mode_SVC        =     0x13

Mode_ABT        =     0x17

Mode_UND        =     0x1B

Mode_SYS        =     0x1F 

 

I_Bit           =     0x80 

F_Bit           =     0x40 

 

 

Len_UND_Stack    =     256

Len_ABT_Stack    =     256

Len_IRQ_Stack    =     256

Len_FIQ_Stack    =     256

Len_SVC_Stack    =     256

 

Offset_UND_Stack         =     0

Offset_ABT_Stack         =     256

Offset_IRQ_Stack         =     512

Offset_FIQ_Stack         =     768

Offset_SVC_Stack         =     1024

 

.section  .text    @ program start

.global _start

 

_start:            @ begin

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@@ exception enter address define

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

        LDR      PC, Reset 

        LDR      PC, Undefined_Handler

        LDR      PC, SWI_Handler

        LDR      PC, Prefetch_Handler

        LDR      PC, Abort_Handler

        B        .

        LDR      PC, IRQ_Handler

        LDR      PC, FIQ_Handler    

        

 

@ ************************

@ Exception Handlers

@ ************************

Undefined_Handler:

        B       Undefined_Handler

SWI_Handler:

        B       SWI_Handler     

Prefetch_Handler:

        B       Prefetch_Handler

Abort_Handler:

        B       Abort_Handler

IRQ_Handler:

        B       IRQ_Handler

FIQ_Handler:

        B       FIQ_Handler

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@@  reset handler 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 Reset:     

@ Enter each mode in turn and set up the stack pointer 

        

        LDR     r0,     stack_base 

        @MSR     CPSR_c, $Mode_UND:OR:I_Bit:OR:F_Bit   @Undefine mode

        MRS     r1,     CPSR

        BIC     r1, r1, $I_Bit

        BIC     R1, R1, $F_BIT

        BIC     R1, R1, $Mode_USR

        MSR     CPSR, R1

        SUB     sp, r0, $Offset_UND_Stack            

        

        @MSR     CPSR_c, $Mode_ABT:OR:I_Bit:OR:F_Bit   @Abort mode

        MRS     r1,     CPSR

        BIC     r1, r1, $I_Bit

        BIC     R1, R1, $F_BIT

        BIC     R1, R1, $Mode_ABT

        MSR     CPSR, R1

        SUB     sp, r0, $Offset_ABT_Stack

 

        @MSR     CPSR_c, $Mode_IRQ:OR:I_Bit:OR:F_Bit   @IRQ mode

        MRS     r1,     CPSR

        BIC     r1, r1, $I_Bit

        BIC     R1, R1, $F_BIT

        BIC     R1, R1, $Mode_IRQ

        MSR     CPSR, R1

        SUB     sp, r0, $Offset_IRQ_Stack

 

        @MSR     CPSR_c, $Mode_FIQ:OR:I_Bit:OR:F_Bit   @FIQ mode

        MRS     r1,     CPSR

        BIC     r1, r1, $I_Bit

        BIC     R1, R1, $F_BIT

        BIC     R1, R1, $Mode_FIQ

        MSR     CPSR, R1

        SUB     sp, r0, $Offset_FIQ_Stack

 

        @MSR     CPSR_c, $Mode_SVC:OR:I_Bit:OR:F_Bit   @ SVC mode

        MRS     r1,     CPSR

        BIC     r1, r1, $I_Bit

        BIC     R1, R1, $F_BIT

        BIC     R1, R1, $Mode_SVC

        MSR     CPSR, R1

        SUB     sp, r0, $Offset_SVC_Stack

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@

@@ call the main function

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@                           

       @ LDR     r12,=C_Entry

       @ BX      r12

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@

@@ IRQ exception handler

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@                               

 

stack_base      DCD     0x80000     @ stack defin  

@///////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/////////////////

I use the arm-none-eabi-as -mcpu=arm7 -o=Vector_GNU.o Vector_GNU.s

 

But it imply bad instruction ' stack_base DCD 0x80000'

 

Could you tell me how to solve the question.

 

Thank you

Stephen