forked from Imagelibrary/rtems
@@ -39,6 +39,9 @@ project_lib_DATA = start.$(OBJEXT)
|
||||
libbspstart_a_SOURCES += ../../powerpc/shared/start/rtems_crti.S
|
||||
project_lib_DATA += rtems_crti.$(OBJEXT)
|
||||
|
||||
libbspstart_a_SOURCES += ../../powerpc/shared/start/rtems_crtn.S
|
||||
project_lib_DATA += rtems_crtn.$(OBJEXT)
|
||||
|
||||
dist_project_lib_DATA += startup/linkcmds \
|
||||
../shared/startup/linkcmds.base \
|
||||
startup/linkcmds.qoriq_core_0 \
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
%{!nostdlib: %{qrtems: ecrti%O%s rtems_crti%O%s crtbegin.o%s start.o%s}}
|
||||
|
||||
*endfile:
|
||||
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s ecrtn.o%s}
|
||||
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s rtems_crtn.o%s ecrtn.o%s}
|
||||
|
||||
*link:
|
||||
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -u __vectors -N}
|
||||
|
||||
@@ -113,6 +113,10 @@ $(PROJECT_LIB)/rtems_crti.$(OBJEXT): rtems_crti.$(OBJEXT) $(PROJECT_LIB)/$(dirst
|
||||
$(INSTALL_DATA) $< $(PROJECT_LIB)/rtems_crti.$(OBJEXT)
|
||||
TMPINSTALL_FILES += $(PROJECT_LIB)/rtems_crti.$(OBJEXT)
|
||||
|
||||
$(PROJECT_LIB)/rtems_crtn.$(OBJEXT): rtems_crtn.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_LIB)/rtems_crtn.$(OBJEXT)
|
||||
TMPINSTALL_FILES += $(PROJECT_LIB)/rtems_crtn.$(OBJEXT)
|
||||
|
||||
$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
|
||||
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
|
||||
|
||||
@@ -1,7 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 2017 embedded brains GmbH. All rights reserved.
|
||||
*
|
||||
* embedded brains GmbH
|
||||
* Dornierstr. 4
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* rtems_crti.S */
|
||||
#include <rtems/asm.h>
|
||||
#include <rtems/score/cpu.h>
|
||||
|
||||
#if defined(__powerpc64__)
|
||||
.section ".init","ax"
|
||||
.align 2
|
||||
.globl _init
|
||||
.type _init,@function
|
||||
_init:
|
||||
mflr r0
|
||||
std r0,16(1)
|
||||
stdu r1,-96(1)
|
||||
|
||||
.section ".fini","ax"
|
||||
.align 2
|
||||
.globl _fini
|
||||
.type _fini,@function
|
||||
_fini:
|
||||
mflr r0
|
||||
std r0,16(r1)
|
||||
stdu r1,-96(r1)
|
||||
#else
|
||||
/* terminate the __init() function and create
|
||||
* a new head '_init' for use by RTEMS to
|
||||
* invoke C++ global constructors
|
||||
@@ -32,3 +65,4 @@ _init:
|
||||
stwu r1,-16(r1)
|
||||
mflr r0
|
||||
stw r0,20(r1)
|
||||
#endif
|
||||
|
||||
27
c/src/lib/libbsp/powerpc/shared/start/rtems_crtn.S
Normal file
27
c/src/lib/libbsp/powerpc/shared/start/rtems_crtn.S
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (c) 2017 embedded brains GmbH. All rights reserved.
|
||||
*
|
||||
* embedded brains GmbH
|
||||
* Dornierstr. 4
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#if defined(__powerpc64__)
|
||||
.section ".init","ax"
|
||||
addi 1,1,96
|
||||
ld 0,16(1)
|
||||
mtlr 0
|
||||
blr
|
||||
|
||||
.section ".fini","ax"
|
||||
addi 1,1,96
|
||||
ld 0,16(1)
|
||||
mtlr 0
|
||||
blr
|
||||
#endif
|
||||
Reference in New Issue
Block a user