From 61ba976360804d85f9203821518bb4b132852188 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 22 Feb 2000 18:39:52 +0000 Subject: New port of RTEMS to TI C3x and C4x. --- c/src/lib/libbsp/c4x/c4xsim/start/Makefile.am | 32 ++++++++++++ c/src/lib/libbsp/c4x/c4xsim/start/start.S | 71 +++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 c/src/lib/libbsp/c4x/c4xsim/start/Makefile.am create mode 100644 c/src/lib/libbsp/c4x/c4xsim/start/start.S (limited to 'c/src/lib/libbsp/c4x/c4xsim/start') diff --git a/c/src/lib/libbsp/c4x/c4xsim/start/Makefile.am b/c/src/lib/libbsp/c4x/c4xsim/start/Makefile.am new file mode 100644 index 0000000000..824d7a22c5 --- /dev/null +++ b/c/src/lib/libbsp/c4x/c4xsim/start/Makefile.am @@ -0,0 +1,32 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 + +PGM = $(ARCH)/start.o + +S_FILES = start.S +S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.o) + +OBJS = $(S_O_FILES) + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/lib.am + +# +# (OPTIONAL) Add local stuff here using += +# + +$(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o: $(PGM) + $(INSTALL_DATA) $< $@ + +TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o + +all-local: $(ARCH) $(OBJS) $(PGM) $(TMPINSTALL_FILES) + +.PRECIOUS: $(PGM) + +EXTRA_DIST = start.S + +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/c4x/c4xsim/start/start.S b/c/src/lib/libbsp/c4x/c4xsim/start/start.S new file mode 100644 index 0000000000..2123fc24c3 --- /dev/null +++ b/c/src/lib/libbsp/c4x/c4xsim/start/start.S @@ -0,0 +1,71 @@ +/* + * This start.S is a combination of the files boot.s and crt0.s + * provided by Herman ...XXX + */ + + ; .file "crt0.s" + .ref _c_int00 + .global start + .global _start + + .if .tms320C40 + + .sect ".const" +mem_control: + .word 000100000h +mem_data: + .word 03ef78050h + + .text +start: +_start: + ldi 0800h,st + ldp @mem_control + ldi @mem_control,ar0 + ldp @mem_data + ldi @mem_data,r0 + sti r0,*+ar0(0) + sti r0,*+ar0(4) + br _c_int00 + + .else + + .sect ".const" +mem_control: + .word 000808000h +mem_data: + .word 000001f00h + + .text +start: +_start: + ldi 0800h,st + ldp @mem_control + ldi @mem_control,ar0 + ldp @mem_data + ldi @mem_data,r0 + sti r0,*+ar0(0) + sti r0,*+ar0(4) + br _c_int00 + + .endif + ; .file "boot.s" + .global __stack + .global _c_int00 + .ref .bss + .ref _boot_card + .ref _exit + +__stack: .usect ".stack",0 + .text +stack_addr: .word __stack + +_c_int00: + ldp stack_addr + ldi @stack_addr,sp + ldi sp,ar3 + ldp .bss ; For the small model, set up the DP to .bss + ldi 0,ar2 ; make sure argc=0 with regparm + push ar2 ; and memparm + call _boot_card + call _sim_exit -- cgit v1.2.3