From 0074691a67f857c9b3f880fb581e0af1d5673337 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 31 Jul 1997 22:13:29 +0000 Subject: Merged very large and much appreciated patch from Chris Johns . This patch includes the ods68302 bsp, the RTEMS++ class library, and the rtems++ test. --- .../lib/libbsp/m68k/ods68302/start302/debugreset.S | 107 +++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 c/src/lib/libbsp/m68k/ods68302/start302/debugreset.S (limited to 'c/src/lib/libbsp/m68k/ods68302/start302/debugreset.S') diff --git a/c/src/lib/libbsp/m68k/ods68302/start302/debugreset.S b/c/src/lib/libbsp/m68k/ods68302/start302/debugreset.S new file mode 100644 index 0000000000..74049191c4 --- /dev/null +++ b/c/src/lib/libbsp/m68k/ods68302/start302/debugreset.S @@ -0,0 +1,107 @@ +/* + * $Id$ + * + * Re-written the gen68302 start-up code. + * + * Uses gas syntax only, removed the OAR asm.h. + * + * Supplies a complete vector table in ROM. + * + * Manages all vectors with seperate handlers to trap unhandled + * execptions. + * + * Uses the target specific header file to get the runtime + * configuration + * + * COPYRIGHT (c) 1996 + * Objective Design Systems Pty Ltd (ODS) + * + * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. + * On-Line Applications Research Corporation (OAR). + * All rights assigned to U.S. Government, 1994. + * + * This material may be reproduced by or for the U.S. Government pursuant + * to the copyright license under the clause at DFARS 252.227-7013. This + * notice must appear in all copies of this file and its derivatives. + * + */ + +| +| Entry from debugger +| + .sect .text + +| +| Start +| +| Entered from a hardware reset. +| + + .global start | Default entry point for GNU +start: + + move.w #0x2700,%sr | Disable all interrupts + + | + | zero out uninitialized data area + | + +zerobss: + moveal #end,%a0 | find end of .bss + moveal #bss_start,%a1 | find beginning of .bss + moveq #0,%d0 + +zerobss_loop: + + movel %d0,%a1@+ | to zero out uninitialized + cmpal %a0,%a1 + jlt zerobss_loop | loop until _end reached + + movel #end,%d0 | d0 = end of bss/start of heap + addl #heap_size,%d0 | d0 = end of heap + + movel %d0,stack_start | Save for brk() routine + addl #stack_size,%d0 | make room for stack + andl #0xffffffc0,%d0 | align it on 16 byte boundary + + movw #0x3700,%sr | SUPV MODE,INTERRUPTS OFF!!! + movel %d0,%a7 | set master stack pointer + movel %d0,%a6 | set base pointer + + jsr boot_phase_3 + +| +| Initialised data +| + + .sect .data + + .global start_frame + +start_frame: + .space 4,0 + + .global stack_start + +stack_start: + .space 4,0 + +| +| Uninitialised data +| + + .sect .bss + + .global environ + .align 2 + +environ: + .long 0 + + .global heap_size + .set heap_size,0x2000 + + .global stack_size + .set stack_size,0x1000 + + -- cgit v1.2.3