forked from Imagelibrary/rtems
committed by
Gedare Bloom
parent
f2a228b2cb
commit
357fdfc246
@@ -1,55 +0,0 @@
|
|||||||
ACLOCAL_AMFLAGS = -I ../../../../aclocal
|
|
||||||
|
|
||||||
include $(top_srcdir)/../../../../automake/compile.am
|
|
||||||
|
|
||||||
include_bspdir = $(includedir)/bsp
|
|
||||||
|
|
||||||
dist_project_lib_DATA = bsp_specs
|
|
||||||
|
|
||||||
include_HEADERS = include/bsp.h
|
|
||||||
include_HEADERS += ../../shared/include/tm27.h
|
|
||||||
|
|
||||||
nodist_include_HEADERS = include/bspopts.h
|
|
||||||
nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
|
|
||||||
nodist_include_bsp_HEADERS += ../../shared/include/console-polled.h
|
|
||||||
DISTCLEANFILES = include/bspopts.h
|
|
||||||
|
|
||||||
nodist_include_HEADERS += ../../shared/include/coverhd.h
|
|
||||||
|
|
||||||
noinst_LIBRARIES = libbspstart.a
|
|
||||||
libbspstart_a_SOURCES = start/start.S
|
|
||||||
project_lib_DATA = start.$(OBJEXT)
|
|
||||||
|
|
||||||
dist_project_lib_DATA += startup/linkcmds
|
|
||||||
|
|
||||||
noinst_LIBRARIES += libbsp.a
|
|
||||||
libbsp_a_SOURCES =
|
|
||||||
|
|
||||||
# startup
|
|
||||||
libbsp_a_SOURCES += ../../shared/bspclean.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/bsplibc.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/bsppredriverhook.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/bspgetworkarea.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/bsppost.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/bspstart.c
|
|
||||||
libbsp_a_SOURCES += startup/h8bdinstallirq.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/bootcard.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/sbrk.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/gnatinstallhandler.c
|
|
||||||
|
|
||||||
# clock
|
|
||||||
libbsp_a_SOURCES += ../../shared/clock_driver_simidle.c
|
|
||||||
# console
|
|
||||||
libbsp_a_SOURCES += ../../shared/console-polled.c
|
|
||||||
libbsp_a_SOURCES += console/console-io.c
|
|
||||||
libbsp_a_SOURCES += console/syscalls.S
|
|
||||||
# timer
|
|
||||||
libbsp_a_SOURCES += ../../shared/timerstub.c
|
|
||||||
|
|
||||||
# Cache
|
|
||||||
libbsp_a_SOURCES += ../../../libcpu/shared/src/cache_manager.c
|
|
||||||
libbsp_a_SOURCES += ../../shared/include/cache_.h
|
|
||||||
libbsp_a_CPPFLAGS = -I$(srcdir)/../../shared/include
|
|
||||||
|
|
||||||
include $(srcdir)/preinstall.am
|
|
||||||
include $(top_srcdir)/../../../../automake/local.am
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
%rename endfile old_endfile
|
|
||||||
%rename startfile old_startfile
|
|
||||||
%rename link old_link
|
|
||||||
|
|
||||||
*startfile:
|
|
||||||
%{!qrtems: %(old_startfile)} \
|
|
||||||
%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
|
|
||||||
|
|
||||||
*link:
|
|
||||||
%(old_link) %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
|
|
||||||
|
|
||||||
*endfile:
|
|
||||||
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s}
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
## Process this file with autoconf to produce a configure script.
|
|
||||||
|
|
||||||
AC_PREREQ([2.69])
|
|
||||||
AC_INIT([rtems-c-src-lib-libbsp-h8300-h8sim],[_RTEMS_VERSION],[https://devel.rtems.org/newticket])
|
|
||||||
AC_CONFIG_SRCDIR([bsp_specs])
|
|
||||||
RTEMS_TOP(../../../../../..)
|
|
||||||
|
|
||||||
RTEMS_CANONICAL_TARGET_CPU
|
|
||||||
AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.12.2])
|
|
||||||
RTEMS_BSP_CONFIGURE
|
|
||||||
|
|
||||||
RTEMS_PROG_CC_FOR_TARGET
|
|
||||||
RTEMS_CANONICALIZE_TOOLS
|
|
||||||
RTEMS_PROG_CCAS
|
|
||||||
|
|
||||||
RTEMS_BSP_CLEANUP_OPTIONS(0, 1, 0)
|
|
||||||
|
|
||||||
# Explicitly list all Makefiles here
|
|
||||||
AC_CONFIG_FILES([Makefile])
|
|
||||||
AC_OUTPUT
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file contains the hardware specific portions of the TTY driver
|
|
||||||
* for the serial ports on the h8300 simulator in gdb.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* COPYRIGHT (c) 1989-2008.
|
|
||||||
* On-Line Applications Research Corporation (OAR).
|
|
||||||
*
|
|
||||||
* The license and distribution terms for this file may be
|
|
||||||
* found in the file LICENSE in this distribution or at
|
|
||||||
* http://www.rtems.org/license/LICENSE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <bsp.h>
|
|
||||||
#include <bsp/console-polled.h>
|
|
||||||
#include <rtems/libio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* console_initialize_hardware
|
|
||||||
*
|
|
||||||
* This routine initializes the console hardware.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
void console_initialize_hardware(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* console_outbyte_polled
|
|
||||||
*
|
|
||||||
* This routine transmits a character using polling.
|
|
||||||
*/
|
|
||||||
ssize_t _sys_write(int fd, const void *buf, size_t count);
|
|
||||||
void console_outbyte_polled(
|
|
||||||
int port,
|
|
||||||
char ch
|
|
||||||
)
|
|
||||||
{
|
|
||||||
_sys_write( 1, &ch, 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* console_inbyte_nonblocking
|
|
||||||
*
|
|
||||||
* This routine polls for a character.
|
|
||||||
*/
|
|
||||||
|
|
||||||
int console_inbyte_nonblocking(
|
|
||||||
int port
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#include <rtems/bspIo.h>
|
|
||||||
|
|
||||||
static void H8simBSP_output_char(char c) { console_outbyte_polled( 0, c ); }
|
|
||||||
|
|
||||||
BSP_output_char_function_type BSP_output_char = H8simBSP_output_char;
|
|
||||||
BSP_polling_getchar_function_type BSP_poll_char = NULL;
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* System call support for simulator in gdb.
|
|
||||||
* Copied from newlib 1.16.0.
|
|
||||||
*/
|
|
||||||
|
|
||||||
;;;; libc/machine/h8300/setarch.h
|
|
||||||
#ifdef __H8300H__
|
|
||||||
#ifdef __NORMAL_MODE__
|
|
||||||
.h8300hn
|
|
||||||
#else
|
|
||||||
.h8300h
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifdef __H8300S__
|
|
||||||
#ifdef __NORMAL_MODE__
|
|
||||||
.h8300sn
|
|
||||||
#else
|
|
||||||
.h8300s
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifdef __H8300SX__
|
|
||||||
#ifdef __NORMAL_MODE__
|
|
||||||
.h8300sxn
|
|
||||||
#else
|
|
||||||
.h8300sx
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
;;;; libc/sys/h8300/write.S
|
|
||||||
;ssize_t _sys_write(int fd, const void *buf, size_t count);
|
|
||||||
;Integer arguments have to be zero extended.
|
|
||||||
|
|
||||||
; #include "setarch.h"
|
|
||||||
|
|
||||||
.section .text
|
|
||||||
.align 2
|
|
||||||
.global __sys_write
|
|
||||||
__sys_write:
|
|
||||||
#if defined(__H8300H__) || defined(__H8300S__) || defined (__H8300SX__)
|
|
||||||
#if __INT_MAX__ == 32767
|
|
||||||
extu.l er0
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
jsr @@0xc7
|
|
||||||
rts
|
|
||||||
.end
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
/**
|
|
||||||
* @defgroup bsp_h8300 H8300
|
|
||||||
*
|
|
||||||
* @ingroup bsp_kit
|
|
||||||
*
|
|
||||||
* @brief H8300 Board Support Packages
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup h8300_h8sim H8300 H8SIM Modules
|
|
||||||
*
|
|
||||||
* @ingroup bsp_h8300
|
|
||||||
*
|
|
||||||
* @brief H8300 H8SIM Modules
|
|
||||||
*/
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* @ingroup h8300_bsp
|
|
||||||
*
|
|
||||||
* @brief h8 simulator definitions in gdb
|
|
||||||
*
|
|
||||||
* This include file contains some definitions specific to the
|
|
||||||
* h8 simulator in gdb.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* COPYRIGHT (c) 1989-2013.
|
|
||||||
* On-Line Applications Research Corporation (OAR).
|
|
||||||
*
|
|
||||||
* The license and distribution terms for this file may be
|
|
||||||
* found in the file LICENSE in this distribution or at
|
|
||||||
* http://www.rtems.org/license/LICENSE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef LIBBSP_H8300_H8SIM_BSP_H
|
|
||||||
#define LIBBSP_H8300_H8SIM_BSP_H
|
|
||||||
|
|
||||||
#include <bspopts.h>
|
|
||||||
#include <bsp/default-initial-extension.h>
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
#include <rtems/iosupp.h>
|
|
||||||
#include <rtems/console.h>
|
|
||||||
#include <rtems/clockdrv.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup h8300_bsp Clock Tick Support
|
|
||||||
*
|
|
||||||
* @ingroup h8300_h8sim
|
|
||||||
*
|
|
||||||
* @brief Clock Tick Support Package
|
|
||||||
*/
|
|
||||||
Thread clock_driver_sim_idle_body(uintptr_t);
|
|
||||||
#define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#
|
|
||||||
# The GDB H8300 Simulator does not have a tick interrupt.
|
|
||||||
#
|
|
||||||
|
|
||||||
include: testdata/require-tick-isr.tcfg
|
|
||||||
include: testdata/disable-jffs2-tests.tcfg
|
|
||||||
include: testdata/disable-mrfs-tests.tcfg
|
|
||||||
|
|
||||||
fsbdpart01
|
|
||||||
fsdosfsformat01
|
|
||||||
fsdosfsname01
|
|
||||||
fsdosfswrite01
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
#
|
|
||||||
# Config file for the H8 simulator in gdb
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(RTEMS_ROOT)/make/custom/default.cfg
|
|
||||||
|
|
||||||
RTEMS_CPU=h8300
|
|
||||||
RTEMS_CPU_MODEL=h8300h
|
|
||||||
|
|
||||||
# This contains the compiler options necessary to select the CPU model
|
|
||||||
# and (hopefully) optimize for it.
|
|
||||||
#
|
|
||||||
CPU_CFLAGS = -mh -mint32
|
|
||||||
|
|
||||||
# optimize flag: typically -O2
|
|
||||||
CFLAGS_OPTIMIZE_V = -O2 -g
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
#
|
|
||||||
# The GDB H8300 Simulator does not have a tick interrupt.
|
|
||||||
#
|
|
||||||
|
|
||||||
include: testdata/require-tick-isr.tcfg
|
|
||||||
include: testdata/disable-jffs2-tests.tcfg
|
|
||||||
include: testdata/disable-mrfs-tests.tcfg
|
|
||||||
|
|
||||||
capture
|
|
||||||
capture01
|
|
||||||
fsbdpart01
|
|
||||||
fsdosfsformat01
|
|
||||||
fsdosfsname01
|
|
||||||
fsdosfswrite01
|
|
||||||
fsrfsbitmap01
|
|
||||||
tmcontext01
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
#
|
|
||||||
# Config file for the H8 simulator in gdb compiled for SX
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(RTEMS_ROOT)/make/custom/default.cfg
|
|
||||||
|
|
||||||
RTEMS_CPU=h8300
|
|
||||||
RTEMS_CPU_MODEL=h8300h
|
|
||||||
|
|
||||||
# This contains the compiler options necessary to select the CPU model
|
|
||||||
# and (hopefully) optimize for it.
|
|
||||||
#
|
|
||||||
CPU_CFLAGS = -msx
|
|
||||||
|
|
||||||
# optimize flag: typically -O2
|
|
||||||
CFLAGS_OPTIMIZE_V = -Os -g
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
## Automatically generated by ampolish3 - Do not edit
|
|
||||||
|
|
||||||
if AMPOLISH3
|
|
||||||
$(srcdir)/preinstall.am: Makefile.am
|
|
||||||
$(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
|
|
||||||
endif
|
|
||||||
|
|
||||||
PREINSTALL_DIRS =
|
|
||||||
DISTCLEANFILES += $(PREINSTALL_DIRS)
|
|
||||||
|
|
||||||
all-am: $(PREINSTALL_FILES)
|
|
||||||
|
|
||||||
PREINSTALL_FILES =
|
|
||||||
CLEANFILES = $(PREINSTALL_FILES)
|
|
||||||
|
|
||||||
all-local: $(TMPINSTALL_FILES)
|
|
||||||
|
|
||||||
TMPINSTALL_FILES =
|
|
||||||
CLEANFILES += $(TMPINSTALL_FILES)
|
|
||||||
|
|
||||||
$(PROJECT_LIB)/$(dirstamp):
|
|
||||||
@$(MKDIR_P) $(PROJECT_LIB)
|
|
||||||
@: > $(PROJECT_LIB)/$(dirstamp)
|
|
||||||
PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/$(dirstamp):
|
|
||||||
@$(MKDIR_P) $(PROJECT_INCLUDE)
|
|
||||||
@: > $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/bsp/$(dirstamp):
|
|
||||||
@$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
|
|
||||||
@: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
|
|
||||||
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
|
|
||||||
|
|
||||||
$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
|
|
||||||
PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/bsp/bootcard.h: ../../shared/include/bootcard.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bootcard.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bootcard.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/bsp/console-polled.h: ../../shared/include/console-polled.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/console-polled.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/console-polled.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
|
|
||||||
|
|
||||||
$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT)
|
|
||||||
TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT)
|
|
||||||
|
|
||||||
$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
|
|
||||||
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
|
|
||||||
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
; h8/300 and h8/300h start up file.
|
|
||||||
|
|
||||||
#ifdef __H8300__
|
|
||||||
|
|
||||||
.text
|
|
||||||
.global _start
|
|
||||||
_start:
|
|
||||||
mov.w #_stack_init,sp
|
|
||||||
mov.w #_edata,r0
|
|
||||||
mov.w #_clear_end,r1
|
|
||||||
mov.w #0,r2
|
|
||||||
.loop: mov.w r2,@r0
|
|
||||||
adds #2,r0
|
|
||||||
cmp r1,r0
|
|
||||||
blo .loop
|
|
||||||
mov.w #0,r0 ; pass in NULL
|
|
||||||
jsr @_boot_card
|
|
||||||
.global _bsp_reset
|
|
||||||
_bsp_reset:
|
|
||||||
mov.w #0,r0 ; indicate reason to exit
|
|
||||||
sleep
|
|
||||||
jmp @_start ; restart
|
|
||||||
#else
|
|
||||||
|
|
||||||
#if defined(__H8300H__)
|
|
||||||
.h8300h
|
|
||||||
#else /* must be __H300S__ */
|
|
||||||
.h8300s
|
|
||||||
#endif
|
|
||||||
.text
|
|
||||||
.global _start
|
|
||||||
_start:
|
|
||||||
mov.l #_stack_init,sp
|
|
||||||
mov.l #_edata,er0
|
|
||||||
mov.l #_clear_end,er1
|
|
||||||
mov.w #0,r2 ; not sure about alignment requirements
|
|
||||||
.loop: mov.w r2,@er0 ; playing it safe for now
|
|
||||||
adds #2,er0
|
|
||||||
cmp.l er1,er0
|
|
||||||
blo .loop
|
|
||||||
jsr @_boot_card
|
|
||||||
.global _bsp_reset
|
|
||||||
_bsp_reset:
|
|
||||||
mov.w #0,r0 ; indicate reason to exit
|
|
||||||
sleep
|
|
||||||
jmp @_start ; restart
|
|
||||||
|
|
||||||
#endif /* end of H8300 */
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
/*
|
|
||||||
* COPYRIGHT (c) 1989-2008.
|
|
||||||
* On-Line Applications Research Corporation (OAR).
|
|
||||||
*
|
|
||||||
* The license and distribution terms for this file may be
|
|
||||||
* found in the file LICENSE in this distribution or at
|
|
||||||
* http://www.rtems.org/license/LICENSE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
|
|
||||||
void H8BD_Install_IRQ(
|
|
||||||
uint32_t vector,
|
|
||||||
proc_ptr new_handler,
|
|
||||||
proc_ptr *old_handler )
|
|
||||||
{ /* empty */
|
|
||||||
}
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
/*
|
|
||||||
* Declare some sizes.
|
|
||||||
*/
|
|
||||||
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
|
|
||||||
_RamSize = DEFINED(_RamSize) ? _RamSize : 16M;
|
|
||||||
_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
|
|
||||||
_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;
|
|
||||||
|
|
||||||
ENTRY("_start")
|
|
||||||
/* The memory size is 16M to coincide with the simulator.
|
|
||||||
Don't change either without considering the other. */
|
|
||||||
MEMORY
|
|
||||||
{
|
|
||||||
/* 0xc4 is a magic entry. We should have the linker just
|
|
||||||
skip over it one day... */
|
|
||||||
vectors : o = 0x0000, l = 0xc4
|
|
||||||
magicvectors : o = 0xc4, l = 0x3c
|
|
||||||
/* We still only use 256k as the main ram size. */
|
|
||||||
ram : o = 0x0100, l = 0xfffefc /* 16MB RAM --> 0x3fefc */
|
|
||||||
/* The stack starts at the top of main ram. */
|
|
||||||
topram : o = 0xfffffc, l = 0x4 /* 256K RAM --> 0x3fffc */
|
|
||||||
/* This holds variables in the "tiny" sections. */
|
|
||||||
tiny : o = 0xff8000, l = 0x7f00
|
|
||||||
/* At the very top of the address space is the 8-bit area. */
|
|
||||||
eight : o = 0xffff00, l = 0x100
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
.vectors :
|
|
||||||
{
|
|
||||||
*(.vectors)
|
|
||||||
} > vectors
|
|
||||||
|
|
||||||
.text :
|
|
||||||
{
|
|
||||||
*(.text*)
|
|
||||||
*(.gnu.linkonce.t*)
|
|
||||||
KEEP (*(.init))
|
|
||||||
KEEP (*(.fini))
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Special FreeBSD sysctl sections.
|
|
||||||
*/
|
|
||||||
. = ALIGN (16);
|
|
||||||
___start_set_sysctl_set = .;
|
|
||||||
*(set_sys*); /* sysctl set */
|
|
||||||
___stop_set_sysctl_set = ABSOLUTE(.);
|
|
||||||
*(set_dom*); /* domain set */
|
|
||||||
*(set_pse*);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Read-only data
|
|
||||||
*/
|
|
||||||
. = ALIGN (16);
|
|
||||||
PROVIDE(_rodata_start = . );
|
|
||||||
*(.rodata*)
|
|
||||||
KEEP (*(SORT(.rtemsroset.*)))
|
|
||||||
*(.gnu.linkonce.r*)
|
|
||||||
PROVIDE(_erodata = . );
|
|
||||||
|
|
||||||
_etext = .;
|
|
||||||
} >ram
|
|
||||||
.tdata SIZEOF(.text) + ADDR(.text): {
|
|
||||||
__TLS_Data_begin = .;
|
|
||||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
|
||||||
__TLS_Data_end = .;
|
|
||||||
} >ram
|
|
||||||
.tbss SIZEOF(.tdata) + ADDR(.tdata): {
|
|
||||||
__TLS_BSS_begin = .;
|
|
||||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
|
||||||
__TLS_BSS_end = .;
|
|
||||||
} >ram
|
|
||||||
__TLS_Data_size = __TLS_Data_end - __TLS_Data_begin;
|
|
||||||
__TLS_Data_begin = __TLS_Data_size != 0 ? __TLS_Data_begin : __TLS_BSS_begin;
|
|
||||||
__TLS_Data_end = __TLS_Data_size != 0 ? __TLS_Data_end : __TLS_BSS_begin;
|
|
||||||
__TLS_BSS_size = __TLS_BSS_end - __TLS_BSS_begin;
|
|
||||||
__TLS_Size = __TLS_BSS_end - __TLS_Data_begin;
|
|
||||||
__TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
|
|
||||||
.tors SIZEOF(.tbss) + ADDR(.tbss): {
|
|
||||||
___ctors = . ;
|
|
||||||
*(.ctors)
|
|
||||||
___ctors_end = . ;
|
|
||||||
___dtors = . ;
|
|
||||||
*(.dtors)
|
|
||||||
___dtors_end = . ;
|
|
||||||
} >ram
|
|
||||||
.data SIZEOF(.tors) + ADDR(.tors):
|
|
||||||
{
|
|
||||||
*(.data*)
|
|
||||||
KEEP (*(SORT(.rtemsrwset.*)))
|
|
||||||
*(.gcc_exc*)
|
|
||||||
CONSTRUCTORS
|
|
||||||
_edata = .;
|
|
||||||
} >ram
|
|
||||||
.bss SIZEOF(.data) + ADDR(.data):
|
|
||||||
{
|
|
||||||
_bss_start = .;
|
|
||||||
*(.bss* .gnu.linkonce.b.*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN (64);
|
|
||||||
. += _StackSize;
|
|
||||||
_stack_init = .;
|
|
||||||
_clear_end = .;
|
|
||||||
_WorkAreaBase = .;
|
|
||||||
_end = .;
|
|
||||||
__end = .;
|
|
||||||
} >ram
|
|
||||||
.tiny : {
|
|
||||||
*(.tiny)
|
|
||||||
} > tiny
|
|
||||||
.eight : {
|
|
||||||
*(.eight)
|
|
||||||
} > eight
|
|
||||||
.stab 0 (NOLOAD) : {
|
|
||||||
[ .stab ]
|
|
||||||
}
|
|
||||||
.stabstr 0 (NOLOAD) : {
|
|
||||||
[ .stabstr ]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user