forked from Imagelibrary/rtems
committed by
Joel Sherrill
parent
ebcf458d03
commit
f5201df0dc
@@ -18,7 +18,6 @@ _RTEMS_CPU_SUBDIR([h8300],[$1]);;
|
|||||||
_RTEMS_CPU_SUBDIR([i386],[$1]);;
|
_RTEMS_CPU_SUBDIR([i386],[$1]);;
|
||||||
_RTEMS_CPU_SUBDIR([lm32],[$1]);;
|
_RTEMS_CPU_SUBDIR([lm32],[$1]);;
|
||||||
_RTEMS_CPU_SUBDIR([m32c],[$1]);;
|
_RTEMS_CPU_SUBDIR([m32c],[$1]);;
|
||||||
_RTEMS_CPU_SUBDIR([m32r],[$1]);;
|
|
||||||
_RTEMS_CPU_SUBDIR([m68k],[$1]);;
|
_RTEMS_CPU_SUBDIR([m68k],[$1]);;
|
||||||
_RTEMS_CPU_SUBDIR([mips],[$1]);;
|
_RTEMS_CPU_SUBDIR([mips],[$1]);;
|
||||||
_RTEMS_CPU_SUBDIR([moxie],[$1]);;
|
_RTEMS_CPU_SUBDIR([moxie],[$1]);;
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
ACLOCAL_AMFLAGS = -I ../../../aclocal
|
|
||||||
|
|
||||||
## Descend into the @RTEMS_BSP_FAMILY@ directory
|
|
||||||
SUBDIRS = @RTEMS_BSP_FAMILY@
|
|
||||||
|
|
||||||
EXTRA_DIST =
|
|
||||||
|
|
||||||
include $(top_srcdir)/../../../automake/subdirs.am
|
|
||||||
include $(top_srcdir)/../../../automake/local.am
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY)
|
|
||||||
AC_DEFUN([RTEMS_CHECK_BSPDIR],
|
|
||||||
[
|
|
||||||
case "$1" in
|
|
||||||
*)
|
|
||||||
AC_MSG_ERROR([Invalid BSP]);;
|
|
||||||
esac
|
|
||||||
])
|
|
||||||
@@ -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-m32r],[_RTEMS_VERSION],[https://devel.rtems.org/newticket])
|
|
||||||
AC_CONFIG_SRCDIR([Makefile.am])
|
|
||||||
RTEMS_TOP(../../../../..)
|
|
||||||
|
|
||||||
RTEMS_CANONICAL_TARGET_CPU
|
|
||||||
AM_INIT_AUTOMAKE([no-define foreign 1.12.2])
|
|
||||||
AM_MAINTAINER_MODE
|
|
||||||
|
|
||||||
RTEMS_ENV_RTEMSBSP
|
|
||||||
|
|
||||||
RTEMS_PROJECT_ROOT
|
|
||||||
|
|
||||||
RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY])
|
|
||||||
|
|
||||||
# Explicitly list all Makefiles here
|
|
||||||
AC_CONFIG_FILES([Makefile])
|
|
||||||
AC_OUTPUT
|
|
||||||
@@ -388,8 +388,7 @@ AM_CONDITIONAL([RPCTOOLS],[test "$RPCGEN" = rpcgen \
|
|||||||
# reloc backends
|
# reloc backends
|
||||||
AC_MSG_CHECKING([whether CPU supports libdl])
|
AC_MSG_CHECKING([whether CPU supports libdl])
|
||||||
case $RTEMS_CPU in
|
case $RTEMS_CPU in
|
||||||
arm | i386 | m32r | m68k | mips | \
|
arm | i386 | m68k | mips | moxie | powerpc | sparc)
|
||||||
moxie | powerpc | sparc)
|
|
||||||
HAVE_LIBDL=yes ;;
|
HAVE_LIBDL=yes ;;
|
||||||
# bfin has an issue to resolve with libdl. See ticket #2252
|
# bfin has an issue to resolve with libdl. See ticket #2252
|
||||||
bfin)
|
bfin)
|
||||||
@@ -463,7 +462,6 @@ score/cpu/i386/Makefile
|
|||||||
score/cpu/lm32/Makefile
|
score/cpu/lm32/Makefile
|
||||||
score/cpu/m68k/Makefile
|
score/cpu/m68k/Makefile
|
||||||
score/cpu/m32c/Makefile
|
score/cpu/m32c/Makefile
|
||||||
score/cpu/m32r/Makefile
|
|
||||||
score/cpu/mips/Makefile
|
score/cpu/mips/Makefile
|
||||||
score/cpu/moxie/Makefile
|
score/cpu/moxie/Makefile
|
||||||
score/cpu/nios2/Makefile
|
score/cpu/nios2/Makefile
|
||||||
|
|||||||
@@ -22,9 +22,7 @@
|
|||||||
/* FIXME: These defines are a blatant hack */
|
/* FIXME: These defines are a blatant hack */
|
||||||
|
|
||||||
#if defined(__USE_INIT_FINI__)
|
#if defined(__USE_INIT_FINI__)
|
||||||
#if defined(__m32r__)
|
#if defined(__ARM_EABI__)
|
||||||
#define FINI_SYMBOL __fini
|
|
||||||
#elif defined(__ARM_EABI__)
|
|
||||||
#define FINI_SYMBOL __libc_fini_array
|
#define FINI_SYMBOL __libc_fini_array
|
||||||
#else
|
#else
|
||||||
#define FINI_SYMBOL _fini
|
#define FINI_SYMBOL _fini
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
#define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
|
|
||||||
|
|
||||||
#define ELF32_MACHDEP_ID_CASES \
|
|
||||||
case EM_M32R: \
|
|
||||||
break;
|
|
||||||
|
|
||||||
#define ELF32_MACHDEP_ID EM_M32R
|
|
||||||
|
|
||||||
#define ARCH_ELFSIZE 32
|
|
||||||
|
|
||||||
#define R_M32R_NONE 0
|
|
||||||
/*-----------OLD TYPE-------------*/
|
|
||||||
#define R_M32R_16 1
|
|
||||||
#define R_M32R_32 2
|
|
||||||
#define R_M32R_24 3
|
|
||||||
#define R_M32R_10_PCREL 4
|
|
||||||
#define R_M32R_18_PCREL 5
|
|
||||||
#define R_M32R_26_PCREL 6
|
|
||||||
#define R_M32R_HI16_ULO 7
|
|
||||||
#define R_M32R_HI16_SLO 8
|
|
||||||
#define R_M32R_LO16 9
|
|
||||||
#define R_M32R_SDA16 10
|
|
||||||
#define R_M32R_GNU_VTINHERIT 11
|
|
||||||
#define R_M32R_GNU_VTENTRY 12
|
|
||||||
/*--------------------------------*/
|
|
||||||
|
|
||||||
#define R_M32R_16_RELA 33
|
|
||||||
#define R_M32R_32_RELA 34
|
|
||||||
#define R_M32R_24_RELA 35
|
|
||||||
#define R_M32R_18_PCREL_RELA 37
|
|
||||||
#define R_M32R_26_PCREL_RELA 38
|
|
||||||
#define R_M32R_HI16_ULO_RELA 39
|
|
||||||
#define R_M32R_HI16_SLO_RELA 40
|
|
||||||
#define R_M32R_LO16_RELA 41
|
|
||||||
#define R_M32R_SDA16_RELA 42
|
|
||||||
#define R_M32R_RELA_GNU_VTINHERIT 43
|
|
||||||
#define R_M32R_RELA_GNU_VTENTRY 44
|
|
||||||
|
|
||||||
#define R_TYPE(name) __CONCAT(R_M32R_,name)
|
|
||||||
@@ -1,156 +0,0 @@
|
|||||||
#include <sys/cdefs.h>
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
|
|
||||||
#include <rtems/rtl/rtl.h>
|
|
||||||
#include "rtl-elf.h"
|
|
||||||
#include "rtl-error.h"
|
|
||||||
#include "rtl-trace.h"
|
|
||||||
|
|
||||||
static inline Elf_Addr
|
|
||||||
load_ptr(void *where)
|
|
||||||
{
|
|
||||||
Elf_Addr res;
|
|
||||||
|
|
||||||
memcpy(&res, where, sizeof(res));
|
|
||||||
|
|
||||||
return (res);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
store_ptr(void *where, Elf_Addr val)
|
|
||||||
{
|
|
||||||
memcpy(where, &val, sizeof(val));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
rtems_rtl_elf_rel_resolve_sym (Elf_Word type)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
rtems_rtl_elf_relocate_rela (const rtems_rtl_obj_t* obj,
|
|
||||||
const Elf_Rela* rela,
|
|
||||||
const rtems_rtl_obj_sect_t* sect,
|
|
||||||
const char* symname,
|
|
||||||
const Elf_Byte syminfo,
|
|
||||||
const Elf_Word symvalue)
|
|
||||||
{
|
|
||||||
|
|
||||||
Elf_Addr *where;
|
|
||||||
Elf_Word tmp;
|
|
||||||
|
|
||||||
where = (Elf_Addr *)(sect->base + rela->r_offset);
|
|
||||||
if (rtems_rtl_trace (RTEMS_RTL_TRACE_RELOC)) {
|
|
||||||
printf("relocated address 0x%08lx\n", (Elf_Addr)where);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (ELF_R_TYPE(rela->r_info)) {
|
|
||||||
case R_TYPE(NONE):
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_TYPE(16_RELA):
|
|
||||||
/*
|
|
||||||
* half16: S + A
|
|
||||||
*/
|
|
||||||
*(uint16_t *)where = (symvalue + rela->r_addend) & 0xffff;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_TYPE(24_RELA):
|
|
||||||
/*
|
|
||||||
* imm24: (S + A) & 0xFFFFFF
|
|
||||||
*/
|
|
||||||
tmp = symvalue + rela->r_addend;
|
|
||||||
if (((Elf_Sword)tmp > 0x7fffff) || ((Elf_Sword)tmp < -0x800000)) {
|
|
||||||
printf("24_RELA Overflow\n");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
*where = (*where & 0xff000000) | (tmp & 0xffffff);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_TYPE(32_RELA):
|
|
||||||
/*
|
|
||||||
* word32: S + A
|
|
||||||
*/
|
|
||||||
*where += symvalue + rela->r_addend;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_TYPE(26_PCREL_RELA):
|
|
||||||
/*
|
|
||||||
* disp24: ((S + A - P) >> 2) & 0xFFFFFF
|
|
||||||
*/
|
|
||||||
tmp = symvalue + rela->r_addend - (Elf_Addr)where;
|
|
||||||
tmp = (Elf_Sword)tmp >> 2;
|
|
||||||
if (((Elf_Sword)tmp > 0x7fffff) || ((Elf_Sword)tmp < -0x800000)) {
|
|
||||||
printf("26_PCREL_RELA Overflow\n");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
*where = (*where & 0xff000000) | (tmp & 0xffffff);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_TYPE(18_PCREL_RELA):
|
|
||||||
/*
|
|
||||||
* disp16: ((S + A - P) >> 2) & 0xFFFFFF
|
|
||||||
*/
|
|
||||||
tmp = symvalue + rela->r_addend - (Elf_Addr)where;
|
|
||||||
tmp = (Elf_Sword)tmp >> 2;
|
|
||||||
if (((Elf_Sword)tmp > 0x7fff) || ((Elf_Sword)tmp < -0x8000)) {
|
|
||||||
printf("18_PCREL_RELA Overflow\n");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
*where = (*where & 0xffff0000) | (tmp & 0xffff);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_TYPE(HI16_ULO_RELA):
|
|
||||||
/*
|
|
||||||
* imm16: ((S + A) >> 16)
|
|
||||||
*/
|
|
||||||
tmp = *where;
|
|
||||||
tmp += ((symvalue + rela->r_addend) >> 16) & 0xffff;
|
|
||||||
*where = tmp;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_TYPE(HI16_SLO_RELA):
|
|
||||||
/*
|
|
||||||
* imm16: ((S + A) >> 16) or ((S + A + 0x10000) >> 16)
|
|
||||||
*/
|
|
||||||
tmp = symvalue + rela->r_addend;
|
|
||||||
if (tmp & 0x8000) tmp += 0x10000;
|
|
||||||
tmp = (tmp >> 16) & 0xffff;
|
|
||||||
*where += tmp;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_TYPE(LO16_RELA):
|
|
||||||
/*
|
|
||||||
* imm16: (S + A) & 0xFFFF
|
|
||||||
*/
|
|
||||||
tmp = symvalue + rela->r_addend;
|
|
||||||
*where = (*where & 0xffff0000) | (tmp & 0xffff);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
rtems_rtl_set_error (EINVAL, "rela type record not supported");
|
|
||||||
printf("Unsupported rela reloc types\n");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
rtems_rtl_elf_relocate_rel (const rtems_rtl_obj_t* obj,
|
|
||||||
const Elf_Rel* rel,
|
|
||||||
const rtems_rtl_obj_sect_t* sect,
|
|
||||||
const char* symname,
|
|
||||||
const Elf_Byte syminfo,
|
|
||||||
const Elf_Word symvalue)
|
|
||||||
{
|
|
||||||
|
|
||||||
rtems_rtl_set_error (EINVAL, "rel type record not supported");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
* Flag the targets where off_t is 32 bits. This is not a compiler type
|
* Flag the targets where off_t is 32 bits. This is not a compiler type
|
||||||
* so we can't rely on prerdefines.
|
* so we can't rely on prerdefines.
|
||||||
*/
|
*/
|
||||||
#if defined(__m32r__) || defined(__moxie__)
|
#if defined(__moxie__)
|
||||||
#define PRIdoff_t PRIo32
|
#define PRIdoff_t PRIo32
|
||||||
#else
|
#else
|
||||||
#define PRIdoff_t PRIo64
|
#define PRIdoff_t PRIo64
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ static char *rcsid = "$FreeBSD: src/lib/libc/xdr/xdr_float.c,v 1.7 1999/08/28 00
|
|||||||
defined(__AVR__) || \
|
defined(__AVR__) || \
|
||||||
defined(__BFIN__) || \
|
defined(__BFIN__) || \
|
||||||
defined(__m32c__) || \
|
defined(__m32c__) || \
|
||||||
defined(__M32R__) || \
|
|
||||||
defined(__v850)
|
defined(__v850)
|
||||||
|
|
||||||
#include <rtems/endian.h>
|
#include <rtems/endian.h>
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ DIST_SUBDIRS += h8300
|
|||||||
DIST_SUBDIRS += i386
|
DIST_SUBDIRS += i386
|
||||||
DIST_SUBDIRS += lm32
|
DIST_SUBDIRS += lm32
|
||||||
DIST_SUBDIRS += m32c
|
DIST_SUBDIRS += m32c
|
||||||
DIST_SUBDIRS += m32r
|
|
||||||
DIST_SUBDIRS += m68k
|
DIST_SUBDIRS += m68k
|
||||||
DIST_SUBDIRS += mips
|
DIST_SUBDIRS += mips
|
||||||
DIST_SUBDIRS += moxie
|
DIST_SUBDIRS += moxie
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
include $(top_srcdir)/automake/compile.am
|
|
||||||
|
|
||||||
include_HEADERS =
|
|
||||||
|
|
||||||
include_rtemsdir = $(includedir)/rtems
|
|
||||||
include_rtems_HEADERS = rtems/asm.h
|
|
||||||
|
|
||||||
include_rtems_scoredir = $(includedir)/rtems/score
|
|
||||||
include_rtems_score_HEADERS = rtems/score/cpu.h
|
|
||||||
include_rtems_score_HEADERS += rtems/score/m32r.h
|
|
||||||
include_rtems_score_HEADERS += rtems/score/cpu_asm.h
|
|
||||||
include_rtems_score_HEADERS += rtems/score/types.h
|
|
||||||
include_rtems_score_HEADERS += rtems/score/cpuatomic.h
|
|
||||||
|
|
||||||
noinst_LIBRARIES = libscorecpu.a
|
|
||||||
libscorecpu_a_SOURCES = cpu.c cpu_asm.c context_switch.S context_init.c
|
|
||||||
libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c
|
|
||||||
libscorecpu_a_SOURCES += m32r-exception-frame-print.c
|
|
||||||
libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS)
|
|
||||||
|
|
||||||
include $(srcdir)/preinstall.am
|
|
||||||
include $(top_srcdir)/automake/local.am
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* @brief M32R CPU Context Initialize
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <rtems/system.h>
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
uint32_t marker;
|
|
||||||
} Starting_Frame;
|
|
||||||
|
|
||||||
#define _get_r12( _r12 ) \
|
|
||||||
__asm__ volatile( "mv r12, %0" : "=r" (_r12))
|
|
||||||
|
|
||||||
void _CPU_Context_Initialize(
|
|
||||||
Context_Control *the_context,
|
|
||||||
uint32_t *stack_base,
|
|
||||||
uint32_t size,
|
|
||||||
uint32_t new_level,
|
|
||||||
void *entry_point,
|
|
||||||
bool is_fp,
|
|
||||||
void *tls_area
|
|
||||||
)
|
|
||||||
{
|
|
||||||
void *stackEnd = stack_base;
|
|
||||||
Starting_Frame *frame;
|
|
||||||
uint32_t r12;
|
|
||||||
|
|
||||||
stackEnd += size;
|
|
||||||
|
|
||||||
frame = (Starting_Frame *)stackEnd;
|
|
||||||
frame--;
|
|
||||||
frame->marker = 0xa5a5a5a5;
|
|
||||||
|
|
||||||
_get_r12( r12 );
|
|
||||||
|
|
||||||
the_context->r8 = 0x88888888;
|
|
||||||
the_context->r9 = 0x99999999;
|
|
||||||
the_context->r10 = 0xaaaaaaaa;
|
|
||||||
the_context->r11 = 0xbbbbbbbb;
|
|
||||||
the_context->r12 = r12;
|
|
||||||
the_context->r13_fp = 0;
|
|
||||||
the_context->r14_lr = (uintptr_t) entry_point;
|
|
||||||
the_context->r15_sp = (uintptr_t) frame;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* Context switch for the Reneas M32C
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ARG_EXECUTING 8
|
|
||||||
#define ARG_HEIR 12
|
|
||||||
|
|
||||||
#define CONTEXT_R8 0x00
|
|
||||||
#define CONTEXT_R9 0x04
|
|
||||||
#define CONTEXT_R10 0x08
|
|
||||||
#define CONTEXT_R11 0x0C
|
|
||||||
#define CONTEXT_R12 0x10
|
|
||||||
#define CONTEXT_R13_FP 0x14
|
|
||||||
#define CONTEXT_R14_LR 0x18
|
|
||||||
#define CONTEXT_R15_SP 0x1C
|
|
||||||
#define CONTEXT_ACC_LOW 0x20
|
|
||||||
#define CONTEXT_ACC_HIGH 0x24
|
|
||||||
|
|
||||||
.file "context_switch.S"
|
|
||||||
.text
|
|
||||||
.global _CPU_Context_switch
|
|
||||||
.type _CPU_Context_switch, @function
|
|
||||||
_CPU_Context_switch:
|
|
||||||
st r8, @(CONTEXT_R8,r0)
|
|
||||||
st r9, @(CONTEXT_R9,r0)
|
|
||||||
st r10, @(CONTEXT_R10,r0)
|
|
||||||
st r11, @(CONTEXT_R11,r0)
|
|
||||||
st r12, @(CONTEXT_R12,r0)
|
|
||||||
st r13, @(CONTEXT_R13_FP,r0)
|
|
||||||
st r14, @(CONTEXT_R14_LR,r0)
|
|
||||||
st r15, @(CONTEXT_R15_SP,r0)
|
|
||||||
mvfaclo r2
|
|
||||||
st r2, @(CONTEXT_ACC_LOW,r0)
|
|
||||||
mvfachi r2
|
|
||||||
st r2, @(CONTEXT_ACC_HIGH,r0)
|
|
||||||
|
|
||||||
restore:
|
|
||||||
ld r8, @(CONTEXT_R8,r1)
|
|
||||||
ld r9, @(CONTEXT_R9,r1)
|
|
||||||
ld r10, @(CONTEXT_R10,r1)
|
|
||||||
ld r11, @(CONTEXT_R11,r1)
|
|
||||||
ld r12, @(CONTEXT_R12,r1)
|
|
||||||
ld r13, @(CONTEXT_R13_FP,r1)
|
|
||||||
ld r14, @(CONTEXT_R14_LR,r1)
|
|
||||||
ld r15, @(CONTEXT_R15_SP,r1)
|
|
||||||
ld r2, @(CONTEXT_ACC_LOW,r1)
|
|
||||||
mvtaclo r2
|
|
||||||
ld r2, @(CONTEXT_ACC_HIGH,r1)
|
|
||||||
mvtachi r2
|
|
||||||
jmp lr
|
|
||||||
|
|
||||||
.global _CPU_Context_Restart_self
|
|
||||||
.type _CPU_Context_Restart_self, @function
|
|
||||||
_CPU_Context_Restart_self:
|
|
||||||
mv r1, r0
|
|
||||||
bra restore
|
|
||||||
@@ -1,125 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* @brief M32R CPU Support
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <rtems/system.h>
|
|
||||||
#include <rtems/score/isr.h>
|
|
||||||
|
|
||||||
/* _CPU_Initialize
|
|
||||||
*
|
|
||||||
* This routine performs processor dependent initialization.
|
|
||||||
*
|
|
||||||
* INPUT PARAMETERS: NONE
|
|
||||||
*
|
|
||||||
* NO_CPU Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
|
|
||||||
void _CPU_Initialize(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This routine returns the current interrupt level.
|
|
||||||
*
|
|
||||||
* NO_CPU Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
|
|
||||||
uint32_t _CPU_ISR_Get_level( void )
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* _CPU_ISR_install_raw_handler
|
|
||||||
*
|
|
||||||
* NO_CPU Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
|
|
||||||
void _CPU_ISR_install_raw_handler(
|
|
||||||
uint32_t vector,
|
|
||||||
proc_ptr new_handler,
|
|
||||||
proc_ptr *old_handler
|
|
||||||
)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* This is where we install the interrupt handler into the "raw" interrupt
|
|
||||||
* table used by the CPU to dispatch interrupt handlers.
|
|
||||||
*/
|
|
||||||
/* _set_var_vect(new_handler,vector); */
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* _CPU_ISR_install_vector
|
|
||||||
*
|
|
||||||
* This kernel routine installs the RTEMS handler for the
|
|
||||||
* specified vector.
|
|
||||||
*
|
|
||||||
* Input parameters:
|
|
||||||
* vector - interrupt vector number
|
|
||||||
* old_handler - former ISR for this vector number
|
|
||||||
* new_handler - replacement ISR for this vector number
|
|
||||||
*
|
|
||||||
* Output parameters: NONE
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* NO_CPU Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
|
|
||||||
void _CPU_ISR_install_vector(
|
|
||||||
uint32_t vector,
|
|
||||||
proc_ptr new_handler,
|
|
||||||
proc_ptr *old_handler
|
|
||||||
)
|
|
||||||
{
|
|
||||||
*old_handler = _ISR_Vector_table[ vector ];
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If the interrupt vector table is a table of pointer to isr entry
|
|
||||||
* points, then we need to install the appropriate RTEMS interrupt
|
|
||||||
* handler for this vector number.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_ISR_install_raw_handler( vector, new_handler, old_handler );
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We put the actual user ISR address in '_ISR_vector_table'. This will
|
|
||||||
* be used by the _ISR_Handler so the user gets control.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_ISR_Vector_table[ vector ] = new_handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* _CPU_Install_interrupt_stack
|
|
||||||
*
|
|
||||||
* NO_CPU Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
|
|
||||||
void _CPU_Install_interrupt_stack( void )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* @brief M32R ISR Handler
|
|
||||||
*
|
|
||||||
* cpu_asm.c ===> cpu_asm.S or cpu_asm.s
|
|
||||||
*
|
|
||||||
* @note This is supposed to be a .S or .s file NOT a C file.
|
|
||||||
*
|
|
||||||
* M32R does not yet have interrupt support. When this functionality
|
|
||||||
* is written, this file should become obsolete.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <rtems/system.h>
|
|
||||||
#include <rtems/score/cpu.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Prototypes
|
|
||||||
*/
|
|
||||||
void _ISR_Handler(void);
|
|
||||||
|
|
||||||
/* void __ISR_Handler()
|
|
||||||
*
|
|
||||||
* This routine provides the RTEMS interrupt management.
|
|
||||||
*
|
|
||||||
* NO_CPU Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
|
|
||||||
void _ISR_Handler(void)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* This discussion ignores a lot of the ugly details in a real
|
|
||||||
* implementation such as saving enough registers/state to be
|
|
||||||
* able to do something real. Keep in mind that the goal is
|
|
||||||
* to invoke a user's ISR handler which is written in C and
|
|
||||||
* uses a certain set of registers.
|
|
||||||
*
|
|
||||||
* Also note that the exact order is to a large extent flexible.
|
|
||||||
* Hardware will dictate a sequence for a certain subset of
|
|
||||||
* _ISR_Handler while requirements for setting
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* At entry to "common" _ISR_Handler, the vector number must be
|
|
||||||
* available. On some CPUs the hardware puts either the vector
|
|
||||||
* number or the offset into the vector table for this ISR in a
|
|
||||||
* known place. If the hardware does not give us this information,
|
|
||||||
* then the assembly portion of RTEMS for this port will contain
|
|
||||||
* a set of distinct interrupt entry points which somehow place
|
|
||||||
* the vector number in a known place (which is safe if another
|
|
||||||
* interrupt nests this one) and branches to _ISR_Handler.
|
|
||||||
*
|
|
||||||
* save some or all context on stack
|
|
||||||
* may need to save some special interrupt information for exit
|
|
||||||
*
|
|
||||||
* #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE )
|
|
||||||
* if ( _ISR_Nest_level == 0 )
|
|
||||||
* switch to software interrupt stack
|
|
||||||
* #endif
|
|
||||||
*
|
|
||||||
* _ISR_Nest_level++;
|
|
||||||
*
|
|
||||||
* _Thread_Dispatch_disable_level++;
|
|
||||||
*
|
|
||||||
* (*_ISR_Vector_table[ vector ])( vector );
|
|
||||||
*
|
|
||||||
* _Thread_Dispatch_disable_level--;
|
|
||||||
*
|
|
||||||
* --_ISR_Nest_level;
|
|
||||||
*
|
|
||||||
* if ( _ISR_Nest_level )
|
|
||||||
* goto the label "exit interrupt (simple case)"
|
|
||||||
*
|
|
||||||
* if ( _Thread_Dispatch_disable_level )
|
|
||||||
* goto the label "exit interrupt (simple case)"
|
|
||||||
*
|
|
||||||
* if ( _Thread_Dispatch_necessary ) {
|
|
||||||
* call _Thread_Dispatch() or prepare to return to _ISR_Dispatch
|
|
||||||
* prepare to get out of interrupt
|
|
||||||
* return from interrupt (maybe to _ISR_Dispatch)
|
|
||||||
*
|
|
||||||
* LABEL "exit interrupt (simple case):
|
|
||||||
* #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE )
|
|
||||||
* if outermost interrupt
|
|
||||||
* restore stack
|
|
||||||
* #endif
|
|
||||||
* prepare to get out of interrupt
|
|
||||||
* return from interrupt
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
|
|
||||||
*
|
|
||||||
* embedded brains GmbH
|
|
||||||
* Obere Lagerstr. 30
|
|
||||||
* 82178 Puchheim
|
|
||||||
* Germany
|
|
||||||
* <rtems@embedded-brains.de>
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <rtems/score/cpu.h>
|
|
||||||
|
|
||||||
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame )
|
|
||||||
{
|
|
||||||
/* TODO */
|
|
||||||
}
|
|
||||||
@@ -1,54 +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)
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/$(dirstamp):
|
|
||||||
@$(MKDIR_P) $(PROJECT_INCLUDE)
|
|
||||||
@: > $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/rtems/$(dirstamp):
|
|
||||||
@$(MKDIR_P) $(PROJECT_INCLUDE)/rtems
|
|
||||||
@: > $(PROJECT_INCLUDE)/rtems/$(dirstamp)
|
|
||||||
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems/$(dirstamp)
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/rtems/asm.h: rtems/asm.h $(PROJECT_INCLUDE)/rtems/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/asm.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/asm.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/rtems/score/$(dirstamp):
|
|
||||||
@$(MKDIR_P) $(PROJECT_INCLUDE)/rtems/score
|
|
||||||
@: > $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
|
||||||
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/rtems/score/cpu.h: rtems/score/cpu.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/cpu.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/cpu.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/rtems/score/m32r.h: rtems/score/m32r.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/m32r.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/m32r.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/rtems/score/cpu_asm.h: rtems/score/cpu_asm.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/cpu_asm.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/cpu_asm.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/rtems/score/types.h: rtems/score/types.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/types.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/types.h
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/rtems/score/cpuatomic.h: rtems/score/cpuatomic.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
|
||||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/cpuatomic.h
|
|
||||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/cpuatomic.h
|
|
||||||
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* @brief Address the Problems Caused by Incompatible Flavor of
|
|
||||||
* Assemblers and Toolsets
|
|
||||||
*
|
|
||||||
* This include file attempts to address the problems
|
|
||||||
* caused by incompatible flavors of assemblers and
|
|
||||||
* toolsets. It primarily addresses variations in the
|
|
||||||
* use of leading underscores on symbols and the requirement
|
|
||||||
* that register names be preceded by a %.
|
|
||||||
*
|
|
||||||
* NOTE: The spacing in the use of these macros
|
|
||||||
* is critical to them working as advertised.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* COPYRIGHT:
|
|
||||||
*
|
|
||||||
* This file is based on similar code found in newlib available
|
|
||||||
* from ftp.cygnus.com. The file which was used had no copyright
|
|
||||||
* notice. This file is freely distributable as long as the source
|
|
||||||
* of the file is noted. This file is:
|
|
||||||
*
|
|
||||||
* COPYRIGHT (c) 1994-2006.
|
|
||||||
* On-Line Applications Research Corporation (OAR).
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _RTEMS_ASM_H
|
|
||||||
#define _RTEMS_ASM_H
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Indicate we are in an assembly file and get the basic CPU definitions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef ASM
|
|
||||||
#define ASM
|
|
||||||
#endif
|
|
||||||
#include <rtems/score/cpuopts.h>
|
|
||||||
#include <rtems/score/m32r.h>
|
|
||||||
|
|
||||||
#ifndef __USER_LABEL_PREFIX__
|
|
||||||
/**
|
|
||||||
* Recent versions of GNU cpp define variables which indicate the
|
|
||||||
* need for underscores and percents. If not using GNU cpp or
|
|
||||||
* the version does not support this, then you will obviously
|
|
||||||
* have to define these as appropriate.
|
|
||||||
*
|
|
||||||
* This symbol is prefixed to all C program symbols.
|
|
||||||
*/
|
|
||||||
#define __USER_LABEL_PREFIX__ _
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __REGISTER_PREFIX__
|
|
||||||
/**
|
|
||||||
* Recent versions of GNU cpp define variables which indicate the
|
|
||||||
* need for underscores and percents. If not using GNU cpp or
|
|
||||||
* the version does not support this, then you will obviously
|
|
||||||
* have to define these as appropriate.
|
|
||||||
*
|
|
||||||
* This symbol is prefixed to all register names.
|
|
||||||
*/
|
|
||||||
#define __REGISTER_PREFIX__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <rtems/concat.h>
|
|
||||||
|
|
||||||
/** Use the right prefix for global labels. */
|
|
||||||
#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
|
|
||||||
|
|
||||||
/** Use the right prefix for registers. */
|
|
||||||
#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* define macros for all of the registers on this CPU
|
|
||||||
*
|
|
||||||
* EXAMPLE: #define d0 REG (d0)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Define macros to handle section beginning and ends.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/** This macro is used to denote the beginning of a code declaration. */
|
|
||||||
#define BEGIN_CODE_DCL .text
|
|
||||||
/** This macro is used to denote the end of a code declaration. */
|
|
||||||
#define END_CODE_DCL
|
|
||||||
/** This macro is used to denote the beginning of a data declaration section. */
|
|
||||||
#define BEGIN_DATA_DCL .data
|
|
||||||
/** This macro is used to denote the end of a data declaration section. */
|
|
||||||
#define END_DATA_DCL
|
|
||||||
/** This macro is used to denote the beginning of a code section. */
|
|
||||||
#define BEGIN_CODE .text
|
|
||||||
/** This macro is used to denote the end of a code section. */
|
|
||||||
#define END_CODE
|
|
||||||
/** This macro is used to denote the beginning of a data section. */
|
|
||||||
#define BEGIN_DATA
|
|
||||||
/** This macro is used to denote the end of a data section. */
|
|
||||||
#define END_DATA
|
|
||||||
/**
|
|
||||||
* This macro is used to denote the beginning of the
|
|
||||||
* unitialized data section.
|
|
||||||
*/
|
|
||||||
#define BEGIN_BSS
|
|
||||||
/** This macro is used to denote the end of the unitialized data section. */
|
|
||||||
#define END_BSS
|
|
||||||
/** This macro is used to denote the end of the assembly file. */
|
|
||||||
#define END
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This macro is used to declare a public global symbol.
|
|
||||||
*
|
|
||||||
* NOTE: This must be tailored for a particular flavor of the C compiler.
|
|
||||||
* They may need to put underscores in front of the symbols.
|
|
||||||
*/
|
|
||||||
#define PUBLIC(sym) .globl SYM (sym)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This macro is used to prototype a public global symbol.
|
|
||||||
*
|
|
||||||
* NOTE: This must be tailored for a particular flavor of the C compiler.
|
|
||||||
* They may need to put underscores in front of the symbols.
|
|
||||||
*/
|
|
||||||
#define EXTERN(sym) .globl SYM (sym)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,72 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* @brief Intel M32R Assembly File
|
|
||||||
*
|
|
||||||
* Very loose template for an include file for the cpu_asm.? file
|
|
||||||
* if it is implemented as a ".S" file (preprocessed by cpp) instead
|
|
||||||
* of a ".s" file (preprocessed by gm4 or gasp).
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* COPYRIGHT (c) 1989-1999.
|
|
||||||
* 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 _RTEMS_SCORE_CPU_ASM_H
|
|
||||||
#define _RTEMS_SCORE_CPU_ASM_H
|
|
||||||
|
|
||||||
/* pull in the generated offsets */
|
|
||||||
|
|
||||||
#include <rtems/score/offsets.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Hardware General Registers
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* put something here */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Hardware Floating Point Registers
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* put something here */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Hardware Control Registers
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* put something here */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Calling Convention
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* put something here */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Temporary registers
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* put something here */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Floating Point Registers - SW Conventions
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* put something here */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Temporary floating point registers
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* put something here */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* end of file */
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
/*
|
|
||||||
* COPYRIGHT (c) 2012-2013 Deng Hengyi.
|
|
||||||
*
|
|
||||||
* 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 _RTEMS_SCORE_ATOMIC_CPU_H
|
|
||||||
#define _RTEMS_SCORE_ATOMIC_CPU_H
|
|
||||||
|
|
||||||
#include <rtems/score/cpustdatomic.h>
|
|
||||||
|
|
||||||
#endif /* _RTEMS_SCORE_ATOMIC_CPU_H */
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* @brief Set up Basic CPU Dependency Settings Based on Compiler Settings
|
|
||||||
*
|
|
||||||
* This file sets up basic CPU dependency settings based on
|
|
||||||
* compiler settings. For example, it can determine if
|
|
||||||
* floating point is available. This particular implementation
|
|
||||||
* is specified to the NO CPU port.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* COPYRIGHT (c) 1989-1999.
|
|
||||||
* 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 _RTEMS_SCORE_NO_CPU_H
|
|
||||||
#define _RTEMS_SCORE_NO_CPU_H
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file contains the information required to build
|
|
||||||
* RTEMS for a particular member of the NO CPU family.
|
|
||||||
* It does this by setting variables to indicate which
|
|
||||||
* implementation dependent features are present in a particular
|
|
||||||
* member of the family.
|
|
||||||
*
|
|
||||||
* This is a good place to list all the known CPU models
|
|
||||||
* that this port supports and which RTEMS CPU model they correspond
|
|
||||||
* to.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(rtems_multilib)
|
|
||||||
/*
|
|
||||||
* Figure out all CPU Model Feature Flags based upon compiler
|
|
||||||
* predefines.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define CPU_MODEL_NAME "rtems_multilib"
|
|
||||||
#define NOCPU_HAS_FPU 1
|
|
||||||
|
|
||||||
#elif defined(__m32r__)
|
|
||||||
|
|
||||||
#define CPU_MODEL_NAME "m32r"
|
|
||||||
#define NOCPU_HAS_FPU 1
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#error "Unsupported CPU Model"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Define the name of the CPU family.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define CPU_NAME "NO CPU"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _RTEMS_SCORE_NO_CPU_H */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* @brief Intel M32R CPU Type Definitions
|
|
||||||
*
|
|
||||||
* This include file contains type definitions pertaining to the Intel
|
|
||||||
* m32r processor family.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* COPYRIGHT (c) 1989-2006.
|
|
||||||
* 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 _RTEMS_SCORE_TYPES_H
|
|
||||||
#define _RTEMS_SCORE_TYPES_H
|
|
||||||
|
|
||||||
#include <rtems/score/basedefs.h>
|
|
||||||
|
|
||||||
#ifndef ASM
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This section defines the basic types for this processor.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** Type that can store a 32-bit integer or a pointer. */
|
|
||||||
typedef uintptr_t CPU_Uint32ptr;
|
|
||||||
|
|
||||||
/** This defines the type for a priority bit map entry. */
|
|
||||||
typedef uint16_t Priority_bit_map_Word;
|
|
||||||
|
|
||||||
/** This defines the return type for an ISR entry point. */
|
|
||||||
typedef void m32r_isr;
|
|
||||||
|
|
||||||
/** This defines the prototype for an ISR entry point. */
|
|
||||||
typedef m32r_isr ( *m32r_isr_entry )( void );
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !ASM */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -28,9 +28,7 @@
|
|||||||
* initialization this target and compiler version uses.
|
* initialization this target and compiler version uses.
|
||||||
*/
|
*/
|
||||||
#if defined(__USE_INIT_FINI__)
|
#if defined(__USE_INIT_FINI__)
|
||||||
#if defined(__M32R__)
|
#if defined(__ARM_EABI__)
|
||||||
#define INIT_NAME __init
|
|
||||||
#elif defined(__ARM_EABI__)
|
|
||||||
#define INIT_NAME __libc_init_array
|
#define INIT_NAME __libc_init_array
|
||||||
#else
|
#else
|
||||||
#define INIT_NAME _init
|
#define INIT_NAME _init
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# COPYRIGHT (c) 1988-2012.
|
# COPYRIGHT (c) 1988-2015.
|
||||||
# On-Line Applications Research Corporation (OAR).
|
# On-Line Applications Research Corporation (OAR).
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
@@ -20,7 +20,6 @@ GENERATED_FILES += h8300.texi
|
|||||||
GENERATED_FILES += i386.texi
|
GENERATED_FILES += i386.texi
|
||||||
GENERATED_FILES += lm32.texi
|
GENERATED_FILES += lm32.texi
|
||||||
GENERATED_FILES += m32c.texi
|
GENERATED_FILES += m32c.texi
|
||||||
GENERATED_FILES += m32r.texi
|
|
||||||
GENERATED_FILES += m68k.texi
|
GENERATED_FILES += m68k.texi
|
||||||
GENERATED_FILES += microblaze.texi
|
GENERATED_FILES += microblaze.texi
|
||||||
GENERATED_FILES += mips.texi
|
GENERATED_FILES += mips.texi
|
||||||
@@ -83,11 +82,6 @@ m32c.texi: m32c.t
|
|||||||
-u "Top" \
|
-u "Top" \
|
||||||
-n "" < $< > $@
|
-n "" < $< > $@
|
||||||
|
|
||||||
m32r.texi: m32r.t
|
|
||||||
$(BMENU2) -p "" \
|
|
||||||
-u "Top" \
|
|
||||||
-n "" < $< > $@
|
|
||||||
|
|
||||||
lm32.texi: lm32.t
|
lm32.texi: lm32.t
|
||||||
$(BMENU2) -p "" \
|
$(BMENU2) -p "" \
|
||||||
-u "Top" \
|
-u "Top" \
|
||||||
|
|||||||
@@ -70,7 +70,6 @@
|
|||||||
* Intel/AMD x86 Specific Information::
|
* Intel/AMD x86 Specific Information::
|
||||||
* Lattice Mico32 Specific Information::
|
* Lattice Mico32 Specific Information::
|
||||||
* Renesas M32C Specific Information::
|
* Renesas M32C Specific Information::
|
||||||
* Renesas M32R Specific Information::
|
|
||||||
* M68xxx and Coldfire Specific Information::
|
* M68xxx and Coldfire Specific Information::
|
||||||
* Xilinx MicroBlaze Specific Information::
|
* Xilinx MicroBlaze Specific Information::
|
||||||
* MIPS Specific Information::
|
* MIPS Specific Information::
|
||||||
@@ -95,7 +94,6 @@
|
|||||||
@include i386.texi
|
@include i386.texi
|
||||||
@include lm32.texi
|
@include lm32.texi
|
||||||
@include m32c.texi
|
@include m32c.texi
|
||||||
@include m32r.texi
|
|
||||||
@include m68k.texi
|
@include m68k.texi
|
||||||
@include microblaze.texi
|
@include microblaze.texi
|
||||||
@include mips.texi
|
@include mips.texi
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
@c Copyright (c) 2014 embedded brains GmbH. All rights reserved.
|
|
||||||
|
|
||||||
@chapter Renesas M32R Specific Information
|
|
||||||
|
|
||||||
@section Symmetric Multiprocessing
|
|
||||||
|
|
||||||
SMP is not supported.
|
|
||||||
|
|
||||||
@section Thread-Local Storage
|
|
||||||
|
|
||||||
Thread-local storage is not implemented.
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
@c
|
@c
|
||||||
@c COPYRIGHT (c) 1989-2011.
|
@c COPYRIGHT (c) 1989-2015.
|
||||||
@c On-Line Applications Research Corporation (OAR).
|
@c On-Line Applications Research Corporation (OAR).
|
||||||
@c All rights reserved.
|
@c All rights reserved.
|
||||||
|
|
||||||
@@ -161,7 +161,6 @@ It has been ported to the following processor families:
|
|||||||
@item Renesas (formerly Hitachi) SuperH
|
@item Renesas (formerly Hitachi) SuperH
|
||||||
@item Renesas (formerly Hitachi) H8/300
|
@item Renesas (formerly Hitachi) H8/300
|
||||||
@item Renesas M32C
|
@item Renesas M32C
|
||||||
@item Renesas M32R
|
|
||||||
@item SPARC v7, v8, and V9
|
@item SPARC v7, v8, and V9
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
|||||||
@@ -48,8 +48,7 @@ AM_CONDITIONAL(HAS_POSIX,test x"${rtems_cv_RTEMS_POSIX_API}" = x"yes")
|
|||||||
# Must match the list in cpukit.
|
# Must match the list in cpukit.
|
||||||
AC_MSG_CHECKING([whether CPU supports libdl])
|
AC_MSG_CHECKING([whether CPU supports libdl])
|
||||||
case $RTEMS_CPU in
|
case $RTEMS_CPU in
|
||||||
arm | i386 | m32r | m68k | mips | \
|
arm | i386 | m68k | mips | moxie | powerpc | sparc)
|
||||||
moxie | powerpc | sparc)
|
|
||||||
TEST_LIBDL=yes ;;
|
TEST_LIBDL=yes ;;
|
||||||
# bfin has an issue to resolve with libdl. See ticket #2252
|
# bfin has an issue to resolve with libdl. See ticket #2252
|
||||||
bfin)
|
bfin)
|
||||||
|
|||||||
Reference in New Issue
Block a user