CM3: add support to the IAR Embedded Workbench(TM) compiler
[bertos.git] / bertos / cpu / cortex-m3 / hw / crt_cm3_iar.S
1   MODULE  ?cstartup
2   
3 CONTROL_UNPRIVILEGED SET 1
4 CONTROL_PSP SET 2
5   
6   AAPCS INTERWORK, VFP_COMPATIBLE, ROPI
7   PRESERVE8
8
9   SECTION .vtable:CODE:NOROOT(3)
10
11   RSEG IRQ_STACK:DATA(3)
12   RSEG CSTACK:DATA(3)
13   RSEG DATABSS:DATA(3)
14
15   EXTERN  __cmain
16   EXTERN __init2
17   EXTERN  __region_RAM_end__
18   PUBLIC  __iar_program_start
19   
20   SECTION .text:CODE:REORDER(2)
21   
22   PUBWEAK __dummy_init
23   __dummy_init:
24         bx lr
25   
26   THUMB
27   __iar_program_start:
28         cpsid i
29         ldr     r0, =__region_RAM_end__
30         sub     r0, r0, #16
31         msr     psp, r0
32   
33         movs r0, #CONTROL_PSP
34         msr control, r0
35         isb
36   
37         bl __init2
38   
39         cpsie i
40         mov r0, #0
41         mov r1, #0
42         bl __cmain
43   end:
44         wfi
45         b end
46
47   END