From d8490491e672cef628528904df559cdc618bbfd7 Mon Sep 17 00:00:00 2001 From: oharboe Date: Wed, 14 Jan 2009 19:30:51 +0000 Subject: Alan Carvalho de Assis - testcase git-svn-id: svn://svn.berlios.de/openocd/trunk@1319 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- testing/examples/ledtest-imx31pdk/crt0.S | 47 ++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 testing/examples/ledtest-imx31pdk/crt0.S (limited to 'testing/examples/ledtest-imx31pdk/crt0.S') diff --git a/testing/examples/ledtest-imx31pdk/crt0.S b/testing/examples/ledtest-imx31pdk/crt0.S new file mode 100644 index 00000000..6c15be21 --- /dev/null +++ b/testing/examples/ledtest-imx31pdk/crt0.S @@ -0,0 +1,47 @@ +/* Sample initialization file */ + + .extern main + .extern exit + +/* .text is used instead of .section .text so it works with arm-aout too. */ + .text + .code 32 + .align 0 + + .global _mainCRTStartup + .global _start + .global start +start: +_start: +_mainCRTStartup: + +/* Start by setting up a stack */ + /* Set up the stack pointer to end of bss */ + ldr r3, .LC2 + mov sp, r3 + + sub sl, sp, #512 /* Still assumes 512 bytes below sl */ + + mov a2, #0 /* Second arg: fill value */ + mov fp, a2 /* Null frame pointer */ + mov r7, a2 /* Null frame pointer for Thumb */ + + ldr a1, .LC1 /* First arg: start of memory block */ + ldr a3, .LC2 /* Second arg: end of memory block */ + sub a3, a3, a1 /* Third arg: length of block */ + + mov r0, #0 /* no arguments */ + mov r1, #0 /* no argv either */ + + bl main + bl exit /* Should not return */ + + /* For Thumb, constants must be after the code since only + positive offsets are supported for PC relative addresses. */ + + .align 0 +.LC1: + .word __bss_start__ +.LC2: + .word __bss_end__ + -- cgit v1.2.3