This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Yes, that's right! I got it from Richard Slaughter and I included it in this mail. /Daniel >Hello Daniel, > >I read your latest email and understood that you had a led blink program >that you could compile and run on the EB40. I have tried a while ago but >failed completely to make it run. >Which version of led blink did you use and which startup files? > >Would appreciate any help >/odd -----Original Message----- From: Richard Slaughter [mailto:rslaughter@anatel.com] Sent: den 28 mars 2001 17:20 To: Andersson Daniel Subject: EB40 Test Program for cygwin. Daniel, Attached is a simple program for the eb40 that blinks the leds hope it helps. richard slaughter ----- Original Message ----- From: <Daniel.Andersson@combitechsystems.com> To: <cdavies@altera.com> Cc: <crossgcc@sourceware.cygnus.com> Sent: Wednesday, March 28, 2001 1:37 AM Subject: RE: Difference in assemble language > Hi, > > Below is three things. First the part of the makefiles that handles the .s > file. Second is the error that i get when i try to assemble the file. Third > is the actual file, the cstartup_angel.s > > I think that i have two ways to go. One is to correct the cstartup_angel.s > file so that i can be use together with gcc. The other way is to find a file > that does the same thing but is meant to work with the GNU tools. Does > anyone know were to find such a project? > > Regards, > > /Daniel > > > > Part of MAKEFILE: > ---------------- > %.o: %.S > $(XCC) -c -o $*.o $(CFLAGS) $(EXTRACFLAGS) $< > ---------------- > > Here comes the error output from the assembler. > > ------------------ > bash.exe-2.04$ make > as -o cstartup_angel.o cstartup_angel.s > cstartup_angel.s: Assembler messages: > cstartup_angel.s:16: Error: no such instruction: `area > reset,CODE,READONLY,INTERWORK' > cstartup_angel.s:18: Error: no such instruction: `include > targets/eb40/eb40.inc' > cstartup_angel.s:21: Error: invalid character '_' in mnemonic > cstartup_angel.s:21: Error: Rest of line ignored. First ignored character is > `3'. > cstartup_angel.s:22: Error: invalid character '_' in mnemonic > cstartup_angel.s:22: Error: Rest of line ignored. First ignored character is > `3'. > cstartup_angel.s:23: Error: invalid character '_' in mnemonic > cstartup_angel.s:23: Error: Rest of line ignored. First ignored character is > `3'. > cstartup_angel.s:24: Error: invalid character '_' in mnemonic > cstartup_angel.s:24: Error: Rest of line ignored. First ignored character is > `3'. > cstartup_angel.s:25: Error: invalid character '_' in mnemonic > cstartup_angel.s:25: Error: Rest of line ignored. First ignored character is > `4'. > cstartup_angel.s:27: Error: no such instruction: `import main' > cstartup_angel.s:29: Error: no such instruction: `import |Image$$RO$$Limit|' > cstartup_angel.s:29: Error: no such instruction: `end of ROM code (=start of > ROM data)' > cstartup_angel.s:30: Error: no such instruction: `import |Image$$RW$$Base|' > cstartup_angel.s:30: Error: no such instruction: `base of RAM to initialise' > cstartup_angel.s:31: Error: no such instruction: `import |Image$$ZI$$Base|' > cstartup_angel.s:31: Error: no such instruction: `base and limit of area' > cstartup_angel.s:32: Error: no such instruction: `import |Image$$ZI$$Limit|' > cstartup_angel.s:32: Error: no such instruction: `to zero initialise' > cstartup_angel.s:34: Error: no such instruction: `import __entry' > cstartup_angel.s:34: Error: no such instruction: `semihosting Entry point' > cstartup_angel.s:37: Error: no such instruction: `export __main' > cstartup_angel.s:38: Error: invalid character '_' in mnemonic > cstartup_angel.s:42: Error: no such instruction: `entry ' > cstartup_angel.s:45: Error: no such instruction: `rstvec ' > cstartup_angel.s:46: Error: no such instruction: `b InitReset' > cstartup_angel.s:46: Error: no such instruction: `reset ' > cstartup_angel.s:47: Error: no such instruction: `undefvec ' > cstartup_angel.s:48: Error: no such instruction: `b undefvec' > cstartup_angel.s:48: Error: no such instruction: `undefined Instruction' > cstartup_angel.s:49: Error: no such instruction: `swivec ' > cstartup_angel.s:50: Error: no such instruction: `b swivec' > cstartup_angel.s:50: Error: no such instruction: `software Interrupt' > cstartup_angel.s:51: Error: no such instruction: `pabtvec ' > cstartup_angel.s:52: Error: no such instruction: `b pabtvec' > cstartup_angel.s:53: Error: no such instruction: `dabtvec ' > cstartup_angel.s:54: Error: no such instruction: `b dabtvec' > cstartup_angel.s:54: Error: no such instruction: `data Abort' > cstartup_angel.s:55: Error: no such instruction: `rsvdvec ' > cstartup_angel.s:56: Error: no such instruction: `b rsvdvec' > cstartup_angel.s:56: Error: no such instruction: `reserved ' > cstartup_angel.s:57: Error: no such instruction: `irqvec ' > cstartup_angel.s:58: Error: no such instruction: `ldr pc,[pc,' > cstartup_angel.s:59: Error: no such instruction: `fiqvec ' > cstartup_angel.s:60: Error: no such instruction: `ldr pc,[pc,' > cstartup_angel.s:65: Error: no such instruction: `inittableebi ' > cstartup_angel.s:66: Error: no such instruction: `dcd 0x01002529' > cstartup_angel.s:66: Error: Rest of line ignored. First ignored character is > `0'. > cstartup_angel.s:67: Error: no such instruction: `dcd 0x02002121' > cstartup_angel.s:67: Error: Rest of line ignored. First ignored character is > `0'. > cstartup_angel.s:68: Error: no such instruction: `dcd 0x20000000' > cstartup_angel.s:68: Error: no such instruction: `unused ' > cstartup_angel.s:69: Error: no such instruction: `dcd 0x30000000' > cstartup_angel.s:69: Error: no such instruction: `unused ' > cstartup_angel.s:70: Error: no such instruction: `dcd 0x40000000' > cstartup_angel.s:70: Error: no such instruction: `unused ' > cstartup_angel.s:71: Error: no such instruction: `dcd 0x50000000' > cstartup_angel.s:71: Error: no such instruction: `unused ' > cstartup_angel.s:72: Error: no such instruction: `dcd 0x60000000' > cstartup_angel.s:72: Error: no such instruction: `unused ' > cstartup_angel.s:73: Error: no such instruction: `dcd 0x70000000' > cstartup_angel.s:73: Error: no such instruction: `unused ' > cstartup_angel.s:74: Error: no such instruction: `dcd 0x00000001' > cstartup_angel.s:74: Error: no such instruction: `remap command' > cstartup_angel.s:75: Error: no such instruction: `dcd 0x00000006' > cstartup_angel.s:75: Error: Rest of line ignored. First ignored character is > `6'. > cstartup_angel.s:77: Error: no such instruction: `dcd EBI_BASE' > cstartup_angel.s:77: Error: no such instruction: `ebi Base Address' > cstartup_angel.s:78: Error: no such instruction: `initreset ' > cstartup_angel.s:82: Error: no such instruction: `ldr r10,PtInitTableEBI' > cstartup_angel.s:82: Error: no such instruction: `get the address of the > chip select register image' > cstartup_angel.s:85: Error: too many memory references for `movs' > cstartup_angel.s:87: Error: no such instruction: `moveq r10,r10,LSL' > cstartup_angel.s:88: Error: no such instruction: `moveq r10,r10,LSR' > cstartup_angel.s:92: Error: no such instruction: `ldr r12,PtInitRemap' > cstartup_angel.s:92: Error: no such instruction: `get the real jump address > ( after remap)' > cstartup_angel.s:95: Error: no such instruction: `ldmia r10!,{r0-r9,r11}' > cstartup_angel.s:95: Error: no such instruction: `load the complete image > and the EBI base' > cstartup_angel.s:96: Error: no such instruction: `stmia r11!,{r0-r9}' > cstartup_angel.s:96: Error: no such instruction: `store the complete image > with the remap command' > cstartup_angel.s:99: Error: too many memory references for `mov' > cstartup_angel.s:99: Error: no such instruction: `jump and break the > pipeline' > cstartup_angel.s:101: Error: no such instruction: `ptinittableebi ' > cstartup_angel.s:102: Error: no such instruction: `dcd InitTableEBI' > cstartup_angel.s:102: Error: no such instruction: `table for EBI > initialization' > cstartup_angel.s:103: Error: no such instruction: `ptinitremap ' > cstartup_angel.s:104: Error: no such instruction: `dcd InitRemap' > cstartup_angel.s:104: Error: no such instruction: `address where to jump > after REMAP' > cstartup_angel.s:105: Error: no such instruction: `ptinitvector ' > cstartup_angel.s:106: Error: no such instruction: `dcd rstvec' > cstartup_angel.s:106: Error: no such instruction: `table for vector > initialization' > cstartup_angel.s:108: Error: no such instruction: `initremap ' > cstartup_angel.s:112: Error: expecting operand after ','; got nothing > cstartup_angel.s:113: Error: no such instruction: `msr CPSR_c,r1' > cstartup_angel.s:114: Error: no such instruction: `ldr r13,=RAM_LIMIT' > cstartup_angel.s:115: Error: too many memory references for `mov' > cstartup_angel.s:116: Error: too many memory references for `sub' > cstartup_angel.s:119: Error: expecting operand after ','; got nothing > cstartup_angel.s:120: Error: no such instruction: `msr CPSR_c,r1' > cstartup_angel.s:121: Error: too many memory references for `mov' > cstartup_angel.s:122: Error: too many memory references for `sub' > cstartup_angel.s:125: Error: expecting operand after ','; got nothing > cstartup_angel.s:126: Error: no such instruction: `msr CPSR_c,r1' > cstartup_angel.s:127: Error: too many memory references for `mov' > cstartup_angel.s:128: Error: too many memory references for `sub' > cstartup_angel.s:131: Error: expecting operand after ','; got nothing > cstartup_angel.s:132: Error: no such instruction: `msr CPSR_c,r1' > cstartup_angel.s:133: Error: too many memory references for `mov' > cstartup_angel.s:134: Error: too many memory references for `sub' > cstartup_angel.s:137: Error: expecting operand after ','; got nothing > cstartup_angel.s:138: Error: no such instruction: `msr cpsr_c,r0' > cstartup_angel.s:139: Error: no such instruction: `ldr r13,=EXT_SRAM_LIMIT' > cstartup_angel.s:140: Error: too many memory references for `sub' > cstartup_angel.s:144: Error: expecting operand after ','; got nothing > cstartup_angel.s:145: Error: no such instruction: `msr cpsr_c,r0' > cstartup_angel.s:146: Error: too many memory references for `mov' > cstartup_angel.s:156: Error: no such instruction: `ldr > r0,=|Image$$RO$$Limit|' > cstartup_angel.s:156: Error: no such instruction: `get pointer to ROM data' > cstartup_angel.s:157: Error: no such instruction: `ldr > r1,=|Image$$RW$$Base|' > cstartup_angel.s:157: Error: ignoring junk `copy' after expression > cstartup_angel.s:157: Error: suffix or operands invalid for `and' > cstartup_angel.s:158: Error: no such instruction: `ldr > r3,=|Image$$ZI$$Base|' > cstartup_angel.s:158: Error: no such instruction: `zero init base=>top of > initialised data' > cstartup_angel.s:159: Error: too many memory references for `cmp' > cstartup_angel.s:159: Error: no such instruction: `check that they are > different' > cstartup_angel.s:160: Error: no such instruction: `beq NoRW' > cstartup_angel.s:161: Error: no such instruction: `looprw cmp r1,r3' > cstartup_angel.s:161: Error: no such instruction: `copy init data' > cstartup_angel.s:162: Error: no such instruction: `ldrcc r2,[r0],' > cstartup_angel.s:163: Error: no such instruction: `strcc r2,[r1],' > cstartup_angel.s:164: Error: no such instruction: `bcc LoopRw' > cstartup_angel.s:165: Error: no such instruction: `norw ldr > r1,=|Image$$ZI$$Limit|' > cstartup_angel.s:165: Error: no such instruction: `top of zero init segment' > cstartup_angel.s:166: Error: expecting operand after ','; got nothing > cstartup_angel.s:167: Error: no such instruction: `loopzi cmp r3,r1' > cstartup_angel.s:167: Error: no such instruction: `zero init' > cstartup_angel.s:168: Error: no such instruction: `strcc r2,[r3],' > cstartup_angel.s:169: Error: no such instruction: `bcc LoopZI' > cstartup_angel.s:174: Error: no such instruction: `b __entry' > cstartup_angel.s:176: Error: no such instruction: `end ' > make: *** [cstartup_angel.o] Error 1 > bash.exe-2.04$ > > > > And here is the file that i am trying to assemble: > > > -------------------------------- > > /*;------------------------------------------------------------------------- > -----*/ > /*;- ATMEL Microcontroller Software Support - ROUSSET - > */ > /*;------------------------------------------------------------------------- > -----*/ > /*; The software is delivered "AS IS" without warranty or condition of any > */ > /*; kind, either express, implied or statutory. This includes without > */ > /*; limitation any warranty or condition with respect to merchantability or > */ > /*; fitness for any particular purpose, or against the infringements of > */ > /*; intellectual property rights of others. > */ > /*;------------------------------------------------------------------------- > ----*/ > /*;- File source : cstartup_angel.s > */ > /*;- Object : Boot of the r40807 Evaluation Board > */ > /*;- > */ > /*;- 1.0 06/04/00 JPP : Creation > */ > /*;------------------------------------------------------------------------- > -----*/ > > AREA reset, CODE, READONLY, INTERWORK > > INCLUDE targets/eb40/eb40.inc > > /*;- Stack Sizes Definition*/ > IRQ_STACK_SIZE EQU (3*8*4) ; 3 words per interrupt priority > level > FIQ_STACK_SIZE EQU (3*4) ; 3 word > ABT_STACK_SIZE EQU (3*4) ; 3 word > UND_STACK_SIZE EQU (3*4) ; 3 words > SYS_STACK_SIZE EQU (4*1024) ; 4Kbytes > > IMPORT main > > IMPORT |Image$$RO$$Limit| ; End of ROM code (=start of > ROM data) > IMPORT |Image$$RW$$Base| ; Base of RAM to initialise > IMPORT |Image$$ZI$$Base| ; Base and limit of area > IMPORT |Image$$ZI$$Limit| ; to zero initialise > > IMPORT __entry ; Semihosting Entry point > > /*;- Define "__main" to ensure that C runtime system is not linked*/ > EXPORT __main > __main > > /*;------------------------------------------------------------------------- > -----*/ > /*;- Define the entry point*/ > ENTRY > /*;- Exception vectors*/ > /*;- -----------------*/ > rstvec > B InitReset ; reset > undefvec > B undefvec ; Undefined Instruction > swivec > B swivec ; Software Interrupt > pabtvec > B pabtvec ; Prefetch Abort > dabtvec > B dabtvec ; Data Abort > rsvdvec > B rsvdvec ; reserved > irqvec > ldr pc, [pc,#-0xF20] ; IRQ : read the AIC > fiqvec > ldr pc, [pc,#-0xF20] ; FIQ : read the AIC > > /*;- EBI Initialization Data*/ > /*;-------------------------*/ > /*; 32,768MHz master clock assumed*/ > InitTableEBI > DCD 0x01002529 ; 0x01000000, 16MB, 2 tdf, 16 bits, 2 WS > DCD 0x02002121 ; 0x02000000, 16MB, 0 hold, 16 bits, 1 > WS > DCD 0x20000000 ; unused > DCD 0x30000000 ; unused > DCD 0x40000000 ; unused > DCD 0x50000000 ; unused > DCD 0x60000000 ; unused > DCD 0x70000000 ; unused > DCD 0x00000001 ; REMAP command > DCD 0x00000006 ; 6 memory regions, standard read > > DCD EBI_BASE ; EBI Base Address > InitReset > /*;- Initialise the Memory Controller*/ > /*;----------------------------------*/ > /*;- | Copy the Image of the Memory Controller*/ > ldr r10, PtInitTableEBI ; get the address of the > chip select register image > > /*;- | If pc > 0x100000*/ > movs r0, pc, LSR #20 > /*;- | | Mask the 12 highest bits of the address*/ > moveq r10, r10, LSL #12 > moveq r10, r10, LSR #12 > /*;- | EndIf*/ > > /*;- | Load the address where to jump*/ > ldr r12, PtInitRemap ; get the real jump > address ( after remap ) > > /*;- | Copy Chip Select Register Image to Memory Controller and command > remap*/ > ldmia r10!, {r0-r9,r11} ; load the complete > image and the EBI base > stmia r11!, {r0-r9} ; store the complete > image with the remap command > > /*;- | Jump to ROM at its new address*/ > mov pc, r12 ; jump and break the > pipeline > > PtInitTableEBI > DCD InitTableEBI ; Table for EBI > initialization > PtInitRemap > DCD InitRemap ; address where to jump > after REMAP > PtInitVector > DCD rstvec ; Table for vector > initialization > > InitRemap > /*;- Setup the stack for each mode*/ > /*;-------------------------------*/ > /*;- | Set up Fast Interrupt mode and set FIQ stack*/ > mov r1, #ARM_MODE_FIQ:OR:I_BIT:OR:F_BIT > msr CPSR_c, r1 > ldr r13, =RAM_LIMIT > mov r0, r13 > sub r0, r0, #FIQ_STACK_SIZE > > /*;- | Set up Interrupt mode and set IRQ stack*/ > mov r1, #ARM_MODE_IRQ:OR:I_BIT:OR:F_BIT > msr CPSR_c, r1 > mov r13, r0 > sub r0, r0, #IRQ_STACK_SIZE > > /*;- | Set up Abort mode and set Abort stack*/ > mov r1, #ARM_MODE_ABORT:OR:I_BIT:OR:F_BIT > msr CPSR_c, r1 > mov r13, r0 > sub r0, r0, #ABT_STACK_SIZE > > /*;- | Set up Interrupt mode and set undefine stack*/ > mov r1, #ARM_MODE_UNDEF:OR:I_BIT:OR:F_BIT > msr CPSR_c, r1 > mov r13, r0 > sub r0, r0, #UND_STACK_SIZE > > /*;- | Set up the User/system mode and stack pointer on the top of the > external RAM*/ > mov r0, #ARM_MODE_SYS:OR:I_BIT:OR:F_BIT ; No > interrupts > msr cpsr_c, r0 > ldr r13, =EXT_SRAM_LIMIT > sub r4, r13, #SYS_STACK_SIZE > > /*;- Setup Application Operating Mode and Enable the interrupts*/ > /*;- ----------------------------------------------------------*/ > mov r0, #ARM_MODE_USER > msr cpsr_c, r0 > mov r13, r4 > > /*;- Diasable peripherial clock USART0 must be set for angel*/ > /*;---------------------------------------------------------- > mov r0,#(0xffffffff:AND:(:NOT:(0x01:SHL:US0_ID))) > ldr r1,=PS_BASE > str r0,[r1, #PS_PCDR] > > /*;- Initialise C variables*/ > /*;- ----------------------*/ > ldr r0, =|Image$$RO$$Limit| ; Get pointer to ROM > data > ldr r1, =|Image$$RW$$Base| ; and RAM copy > ldr r3, =|Image$$ZI$$Base| ; Zero init base => top > of initialised data > cmp r0, r1 ; Check that they are > different > beq NoRW > LoopRw cmp r1, r3 ; Copy init data > ldrcc r2, [r0], #4 > strcc r2, [r1], #4 > bcc LoopRw > NoRW ldr r1, =|Image$$ZI$$Limit| ; Top of zero init > segment > mov r2, #0 > LoopZI cmp r3, r1 ; Zero init > strcc r2, [r3], #4 > bcc LoopZI > > /*;- Branch on Entry point*/ > /*;- ---------------------*/ > /*;- Allows semihosting initialisation*/ > b __entry > > END > > > > > > > > > > > > > > > > > > -----Original Message----- > From: Clive Davies [mailto:cdavies@altera.com] > Sent: den 28 mars 2001 10:11 > To: Andersson Daniel > Cc: crossgcc@sourceware.cygnus.com > Subject: RE: Difference in assemble language > > > > > > but i seems like the assemler language isn't the same for ARM > > and gcc. When > > i assemble cstartup_angel.s i get very much "No such > > instruction"-comments > > from the assembler. > > > > The assembly language is the same, but there are differences in the way that > thing like labels and assembler directives are specified. If you send the > error messages and the lines that cause the problem (or at least some > examples) it will be easier to suggest what the problem might be. > > Clive > > ------ > Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ > Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |