diff options
author | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-07-17 08:54:24 +0000 |
---|---|---|
committer | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-07-17 08:54:24 +0000 |
commit | 20ef0dbf43a4794602710346450309d61f30815c (patch) | |
tree | a7d238f848be1f976a7582ecde64a203f107b160 /rtl/embedded | |
parent | 04041d8335f543bcbc4c605d7d372637f5768b0b (diff) | |
download | fpc-20ef0dbf43a4794602710346450309d61f30815c.tar.gz |
* fix compilation of atmega128 startup code, not working yet
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@18006 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/embedded')
-rw-r--r-- | rtl/embedded/avr/atmega128.pp | 11 | ||||
-rw-r--r-- | rtl/embedded/avr/start.inc | 8 |
2 files changed, 11 insertions, 8 deletions
diff --git a/rtl/embedded/avr/atmega128.pp b/rtl/embedded/avr/atmega128.pp index ef9b5a0bad..57b2ba7c68 100644 --- a/rtl/embedded/avr/atmega128.pp +++ b/rtl/embedded/avr/atmega128.pp @@ -6,9 +6,13 @@ Register definitions and startup code for ATMEL ATmega128 unit atmega128; {$goto on} +{$macro on} interface + {$define DOCALL:=call} + {$define DOJMP:=jmp} + implementation procedure PASCALMAIN; external name 'PASCALMAIN'; @@ -17,7 +21,7 @@ unit atmega128; asm cli .Lhalt: - xjmp .Lhalt + jmp .Lhalt end; var @@ -36,7 +40,7 @@ unit atmega128; .init .align 16 .globl _start - b _start +{ b _start b .LUndefined_Addr // Undefined Instruction vector b .LSWI_Addr // Software Interrupt vector b .LPrefetch_Addr // Prefetch abort vector @@ -63,7 +67,6 @@ unit atmega128; .LFIQ_Addr: ldr r0,.L5 ldr pc,[r0] - .L1: .long Undefined_Handler .L2: @@ -76,7 +79,7 @@ unit atmega128; .long IRQ_Handler .L6: .long FIQ_Handler - +} { all ATMEL MCUs use the same startup code, the details are governed by defines diff --git a/rtl/embedded/avr/start.inc b/rtl/embedded/avr/start.inc index 08cf945400..c39a9f66b3 100644 --- a/rtl/embedded/avr/start.inc +++ b/rtl/embedded/avr/start.inc @@ -1,13 +1,12 @@ _start: clr r1 +{ // load stack pointer ldi r0,lo8(_stack_top) out 0x3d,r0 ldi r0,hi8(_stack_top) out 0x3e,r0 - - // copy initialized data from flash to ram ldr r1,.L_etext ldr r2,.L_data @@ -26,8 +25,9 @@ cmp r1,r2 strls r0,[r1],#4 bls .Lzeroloop + } - xcall PASCALMAIN - xcall _FPC_haltproc + call PASCALMAIN + call _FPC_haltproc .text |