diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2002-07-24 01:56:27 +0400 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2002-07-24 01:56:27 +0400 |
commit | 63a93e9dd606b8760bf9bb26320978629c8f45a1 (patch) | |
tree | 2159dc01b5426b338d16268aa78192ea52fe3a1a /libgloss/m68hc11/crt0.S | |
parent | d254189b38bb5b0b77a18a401c05c415ce0733c9 (diff) |
2002-07-23 Stephane Carrez <stcarrez@nerim.fr>
* README: Mention 68HC11/68HC12 support.
* configure.in: Recognize m6811-elf and m6812-elf.
* configure: Regenerated.
* m68hc11/Makefile.in: New file.
* m68hc11/configure.in: New file.
* m68hc11/configure: New file.
* m68hc11/crt0.S: New file.
* m68hc11/sci-inout.S: New file for 68hc11/68hc12 sio.
* m68hc11/sim-valid-m68hc11.ld: New file.
* m68hc11/sim-valid-m68hc12.ld: New file.
* m68hc11/syscalls.c: New file.
Diffstat (limited to 'libgloss/m68hc11/crt0.S')
-rw-r--r-- | libgloss/m68hc11/crt0.S | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/libgloss/m68hc11/crt0.S b/libgloss/m68hc11/crt0.S new file mode 100644 index 000000000..73dd2171c --- /dev/null +++ b/libgloss/m68hc11/crt0.S @@ -0,0 +1,69 @@ +/* Startup code for M68HC11/M68HC12. + * Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) + * + * The authors hereby grant permission to use, copy, modify, distribute, + * and license this software and its documentation for any purpose, provided + * that existing copyright notices are retained in all copies and that this + * notice is included verbatim in any distributions. No written agreement, + * license, or royalty fee is required for any of the authorized uses. + * Modifications to this software may be copyrighted by their authors + * and need not follow the licensing terms described here, provided that + * the new terms are clearly indicated on the first page of each file where + * they apply. + */ + +;----------------------------------------- +; startup code +;----------------------------------------- + .file "crt0.s" + +;; +;; +;; The linker concatenate the .install* sections in the following order: +;; +;; .install0 Setup the stack pointer +;; .install1 Place holder for applications +;; .install2 Optional installation of data section in memory +;; .install3 Place holder for applications +;; .install4 Invokes the main +;; + .sect .install0,"ax",@progbits + .globl _start + +_start: +;; +;; At this step, the stack is not initialized and interrupts are masked. +;; Applications only have 64 cycles to initialize some registers. +;; +;; To have a generic/configurable startup, initialize the stack to +;; the end of some memory region. The _stack symbol is defined by +;; the linker. +;; + lds #_stack + + .sect .install2,"ax",@progbits +;; +;; Call a specific initialization operation. The default is empty. +;; It can be overriden by applications. It is intended to initialize +;; the 68hc11 registers. Function prototype is: +;; +;; int __premain(void); +;; + jsr __premain + +;; +;; +;; + .sect .install4,"ax",@progbits + jsr main +fatal: + jsr exit + bra fatal + +;----------------------------------------- +; end startup code +;----------------------------------------- +;; Force loading of data section mapping and bss clear + .globl __map_data_section + .globl __init_bss_section + |