summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports_module/cortex_m4/gnu/example_build/cortexm_crt0.s127
1 files changed, 0 insertions, 127 deletions
diff --git a/ports_module/cortex_m4/gnu/example_build/cortexm_crt0.s b/ports_module/cortex_m4/gnu/example_build/cortexm_crt0.s
deleted file mode 100644
index d4cb1636..00000000
--- a/ports_module/cortex_m4/gnu/example_build/cortexm_crt0.s
+++ /dev/null
@@ -1,127 +0,0 @@
- .global _start
- .extern main
-
-
- .section .init, "ax"
- .code 16
- .align 2
- .thumb_func
-
-
-_start:
- CPSID i
- ldr r1, =__stack_end__
- mov sp, r1
-
-
- /* Copy initialised sections into RAM if required. */
- ldr r0, =__data_load_start__
- ldr r1, =__data_start__
- ldr r2, =__data_end__
- bl crt0_memory_copy
- ldr r0, =__text_load_start__
- ldr r1, =__text_start__
- ldr r2, =__text_end__
- bl crt0_memory_copy
- ldr r0, =__fast_load_start__
- ldr r1, =__fast_start__
- ldr r2, =__fast_end__
- bl crt0_memory_copy
- ldr r0, =__ctors_load_start__
- ldr r1, =__ctors_start__
- ldr r2, =__ctors_end__
- bl crt0_memory_copy
- ldr r0, =__dtors_load_start__
- ldr r1, =__dtors_start__
- ldr r2, =__dtors_end__
- bl crt0_memory_copy
- ldr r0, =__rodata_load_start__
- ldr r1, =__rodata_start__
- ldr r2, =__rodata_end__
- bl crt0_memory_copy
-
-
- /* Zero bss. */
- ldr r0, =__bss_start__
- ldr r1, =__bss_end__
- mov r2, #0
- bl crt0_memory_set
-
-
- /* Setup heap - not recommended for Threadx but here for compatibility reasons */
- ldr r0, = __heap_start__
- ldr r1, = __heap_end__
- sub r1, r1, r0
- mov r2, #0
- str r2, [r0]
- add r0, r0, #4
- str r1, [r0]
-
-
- /* constructors in case of using C++ */
- ldr r0, =__ctors_start__
- ldr r1, =__ctors_end__
-crt0_ctor_loop:
- cmp r0, r1
- beq crt0_ctor_end
- ldr r2, [r0]
- add r0, #4
- push {r0-r1}
- blx r2
- pop {r0-r1}
- b crt0_ctor_loop
-crt0_ctor_end:
-
-
- /* Setup call frame for main() */
- mov r0, #0
- mov lr, r0
- mov r12, sp
-
-
-start:
- /* Jump to main() */
- mov r0, #0
- mov r1, #0
- ldr r2, =main
- blx r2
- /* when main returns, loop forever. */
-crt0_exit_loop:
- b crt0_exit_loop
-
-
-
- /* Startup helper functions. */
-
-
-crt0_memory_copy:
- cmp r0, r1
- beq memory_copy_done
- sub r2, r2, r1
- beq memory_copy_done
-memory_copy_loop:
- ldrb r3, [r0]
- add r0, r0, #1
- strb r3, [r1]
- add r1, r1, #1
- sub r2, r2, #1
- bne memory_copy_loop
-memory_copy_done:
- bx lr
-
-
-crt0_memory_set:
- cmp r0, r1
- beq memory_set_done
- strb r2, [r0]
- add r0, r0, #1
- b crt0_memory_set
-memory_set_done:
- bx lr
-
-
- /* Setup attibutes of stack and heap sections so they don't take up room in the elf file */
- .section .stack, "wa", %nobits
- .section .stack_process, "wa", %nobits
- .section .heap, "wa", %nobits
- \ No newline at end of file