Преглед на файлове

* fix compilation of atmega128 startup code, not working yet

git-svn-id: trunk@18006 -
florian преди 14 години
родител
ревизия
ac17ee8acb
променени са 2 файла, в които са добавени 11 реда и са изтрити 8 реда
  1. 7 4
      rtl/embedded/avr/atmega128.pp
  2. 4 4
      rtl/embedded/avr/start.inc

+ 7 - 4
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

+ 4 - 4
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