RE: [arm-gnu] codesourcery compile helping
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [arm-gnu] codesourcery compile helping



I install the arm-2005q3-2-arm-none-eabi.exe in my pc.

I had program and compile your company's tools

I use these command step by step, but the endless is not my holp:

 

1> arm-none-eabi-as -a=Vector_GNU.lst -mcpu=arm7 -o Vector_GNU.o
Vector_GNU.s

2>arm-none-eabi-ld -e 0x0 -m armelf -o Vector_GNU.elf  Vector_GNU.o

3>arm-none-eabi-objdump -d Vector_GNU.elf > Vector_GNU.txt

4>arm-none-eabi-objcopy -O binary Vector_GNU.elf   Vector_GNU.bin

 

I found the binary enter address is not 0x0, but at the 0x8000 (form
Vector_GNU.txt) 

Could you tell me the reason

 

I had attachment all files to you.

 

Thank you

 

________________________________

From: Yongming (Stephen Lg) Hu 
Sent: Monday, March 06, 2006 4:03 PM
To: 'Borkar, Parag (Parag)'
Subject: RE: [arm-gnu] codesourcery compile helping

 

Please see the red words, could you help me to solve this question

Thank you

Stephen

 

////////////////////////////////////

.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

        ORR      r1, r1, $I_Bit

        ORR      R1, R1, $F_BIT

        ORR      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

        ORR     r1, r1, $I_Bit

        ORR     R1, R1, $F_BIT

        ORR     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

        ORR     r1, r1, $I_Bit

        ORR     R1, R1, $F_BIT

        ORR     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

        ORR     r1, r1, $I_Bit

        ORR     R1, R1, $F_BIT

        ORR     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

        ORR     r1, r1, $I_Bit

        ORR     R1, R1, $F_BIT

        ORR     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      

   .word     0x80000     @ stack defin  

////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////

Could not run still: which imply:  error instruction:  stack_base      

                                      .word     0x80000

I want to define the stack point address

 

________________________________

From: Borkar, Parag (Parag) [mailto:borkar@xxxxxxxxx] 
Sent: Monday, March 06, 2006 3:36 PM
To: Yongming (Stephen Lg) Hu; arm-gnu@xxxxxxxxxxxxxxxx
Subject: RE: [arm-gnu] codesourcery compile helping

 

Hi Stephen,

 

the equivalent of DCD in GNU as is .word. 

 

regards,

parag

-----Original Message-----
From: Yongming (Stephen Lg) Hu [mailto:yohu@xxxxxxx] 
Sent: Monday, March 06, 2006 3:18 AM
To: arm-gnu@xxxxxxxxxxxxxxxx
Subject: [arm-gnu] 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

	 

Attachment: Vector_GNU.s
Description: Vector_GNU.s

Attachment: Vector_GNU.lst
Description: Vector_GNU.lst

Attachment: Vector_GNU.o
Description: Vector_GNU.o

Attachment: Vector_GNU.bin
Description: Vector_GNU.bin

Vector_GNU.elf:     file format elf32-littlearm

Disassembly of section .text:

00008000 <_start>:
    8000:	e59ff030 	ldr	pc, [pc, #48]	; 8038 <Reset>
    8004:	e59ff014 	ldr	pc, [pc, #20]	; 8020 <Undefined_Handler>
    8008:	e59ff014 	ldr	pc, [pc, #20]	; 8024 <SWI_Handler>
    800c:	e59ff014 	ldr	pc, [pc, #20]	; 8028 <Prefetch_Handler>
    8010:	e59ff014 	ldr	pc, [pc, #20]	; 802c <Abort_Handler>
    8014:	eafffffe 	b	8014 <_start+0x14>
    8018:	e59ff010 	ldr	pc, [pc, #16]	; 8030 <IRQ_Handler>
    801c:	e59ff010 	ldr	pc, [pc, #16]	; 8034 <FIQ_Handler>

00008020 <Undefined_Handler>:
    8020:	eafffffe 	b	8020 <Undefined_Handler>

00008024 <SWI_Handler>:
    8024:	eafffffe 	b	8024 <SWI_Handler>

00008028 <Prefetch_Handler>:
    8028:	eafffffe 	b	8028 <Prefetch_Handler>

0000802c <Abort_Handler>:
    802c:	eafffffe 	b	802c <Abort_Handler>

00008030 <IRQ_Handler>:
    8030:	eafffffe 	b	8030 <IRQ_Handler>

00008034 <FIQ_Handler>:
    8034:	eafffffe 	b	8034 <FIQ_Handler>

00008038 <Reset>:
    8038:	e59f0074 	ldr	r0, [pc, #116]	; 80b4 <stack_base>
    803c:	e10f1000 	mrs	r1, CPSR
    8040:	e3811080 	orr	r1, r1, #128	; 0x80
    8044:	e3811040 	orr	r1, r1, #64	; 0x40
    8048:	e3811010 	orr	r1, r1, #16	; 0x10
    804c:	e129f001 	msr	CPSR_fc, r1
    8050:	e240d000 	sub	sp, r0, #0	; 0x0
    8054:	e10f1000 	mrs	r1, CPSR
    8058:	e3811080 	orr	r1, r1, #128	; 0x80
    805c:	e3811040 	orr	r1, r1, #64	; 0x40
    8060:	e3811017 	orr	r1, r1, #23	; 0x17
    8064:	e129f001 	msr	CPSR_fc, r1
    8068:	e240dc01 	sub	sp, r0, #256	; 0x100
    806c:	e10f1000 	mrs	r1, CPSR
    8070:	e3811080 	orr	r1, r1, #128	; 0x80
    8074:	e3811040 	orr	r1, r1, #64	; 0x40
    8078:	e3811012 	orr	r1, r1, #18	; 0x12
    807c:	e129f001 	msr	CPSR_fc, r1
    8080:	e240dc02 	sub	sp, r0, #512	; 0x200
    8084:	e10f1000 	mrs	r1, CPSR
    8088:	e3811080 	orr	r1, r1, #128	; 0x80
    808c:	e3811040 	orr	r1, r1, #64	; 0x40
    8090:	e3811011 	orr	r1, r1, #17	; 0x11
    8094:	e129f001 	msr	CPSR_fc, r1
    8098:	e240dc03 	sub	sp, r0, #768	; 0x300
    809c:	e10f1000 	mrs	r1, CPSR
    80a0:	e3811080 	orr	r1, r1, #128	; 0x80
    80a4:	e3811040 	orr	r1, r1, #64	; 0x40
    80a8:	e3811013 	orr	r1, r1, #19	; 0x13
    80ac:	e129f001 	msr	CPSR_fc, r1
    80b0:	e240db01 	sub	sp, r0, #1024	; 0x400

000080b4 <stack_base>:
    80b4:	00080000 	andeq	r0, r8, r0