Milen Pavlov / XRange_mbed_src

Dependents:   XRangePingPong XRange-LoRaWAN-lmic-app lora-transceiver

Committer:
netblocks
Date:
Thu Jan 07 13:01:25 2016 +0000
Revision:
339:ac6f3fd999f3
Parent:
335:b4678b054027
HSE_VALUE set for XTAL 16Mhz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dudmuck 335:b4678b054027 1 /**************************************************
dudmuck 335:b4678b054027 2 *
dudmuck 335:b4678b054027 3 * Part two of the system initialization code, contains C-level
dudmuck 335:b4678b054027 4 * initialization, thumb-2 only variant.
dudmuck 335:b4678b054027 5 *
dudmuck 335:b4678b054027 6 * Copyright 2006 IAR Systems. All rights reserved.
dudmuck 335:b4678b054027 7 *
dudmuck 335:b4678b054027 8 * $Revision: 59783 $
dudmuck 335:b4678b054027 9 *
dudmuck 335:b4678b054027 10 **************************************************/
dudmuck 335:b4678b054027 11
dudmuck 335:b4678b054027 12
dudmuck 335:b4678b054027 13 ; --------------------------------------------------
dudmuck 335:b4678b054027 14 ; Module ?cmain, C-level initialization.
dudmuck 335:b4678b054027 15 ;
dudmuck 335:b4678b054027 16
dudmuck 335:b4678b054027 17
dudmuck 335:b4678b054027 18 SECTION SHT$$PREINIT_ARRAY:CONST:NOROOT(2)
dudmuck 335:b4678b054027 19 SECTION SHT$$INIT_ARRAY:CONST:NOROOT(2)
dudmuck 335:b4678b054027 20
dudmuck 335:b4678b054027 21 SECTION .text:CODE:NOROOT(2)
dudmuck 335:b4678b054027 22
dudmuck 335:b4678b054027 23 PUBLIC __cmain
dudmuck 335:b4678b054027 24 ;; Keep ?main for legacy reasons, it is accessed in countless instances of cstartup.s around the world...
dudmuck 335:b4678b054027 25 PUBLIC ?main
dudmuck 335:b4678b054027 26 EXTWEAK __iar_data_init3
dudmuck 335:b4678b054027 27 EXTWEAK __iar_argc_argv
dudmuck 335:b4678b054027 28 EXTERN __low_level_init
dudmuck 335:b4678b054027 29 EXTERN __call_ctors
dudmuck 335:b4678b054027 30 EXTERN main
dudmuck 335:b4678b054027 31 EXTERN exit
dudmuck 335:b4678b054027 32 EXTERN __iar_dynamic_initialization
dudmuck 335:b4678b054027 33 EXTERN mbed_sdk_init
dudmuck 335:b4678b054027 34 EXTERN SystemInit
dudmuck 335:b4678b054027 35
dudmuck 335:b4678b054027 36 THUMB
dudmuck 335:b4678b054027 37 __cmain:
dudmuck 335:b4678b054027 38 ?main:
dudmuck 335:b4678b054027 39
dudmuck 335:b4678b054027 40 ; Initialize segments.
dudmuck 335:b4678b054027 41 ; __segment_init and __low_level_init are assumed to use the same
dudmuck 335:b4678b054027 42 ; instruction set and to be reachable by BL from the ICODE segment
dudmuck 335:b4678b054027 43 ; (it is safest to link them in segment ICODE).
dudmuck 335:b4678b054027 44
dudmuck 335:b4678b054027 45 FUNCALL __cmain, __low_level_init
dudmuck 335:b4678b054027 46 bl __low_level_init
dudmuck 335:b4678b054027 47 cmp r0,#0
dudmuck 335:b4678b054027 48 beq ?l1
dudmuck 335:b4678b054027 49 FUNCALL __cmain, __iar_data_init3
dudmuck 335:b4678b054027 50 bl __iar_data_init3
dudmuck 335:b4678b054027 51 MOVS r0,#0 ; No parameters
dudmuck 335:b4678b054027 52 FUNCALL __cmain, mbed_sdk_init
dudmuck 335:b4678b054027 53 BL mbed_sdk_init
dudmuck 335:b4678b054027 54 MOVS r0,#0 ; No parameters
dudmuck 335:b4678b054027 55 FUNCALL __cmain, __iar_dynamic_initialization
dudmuck 335:b4678b054027 56 BL __iar_dynamic_initialization ; C++ dynamic initialization
dudmuck 335:b4678b054027 57
dudmuck 335:b4678b054027 58 ?l1:
dudmuck 335:b4678b054027 59 REQUIRE ?l3
dudmuck 335:b4678b054027 60
dudmuck 335:b4678b054027 61 SECTION .text:CODE:NOROOT(2)
dudmuck 335:b4678b054027 62
dudmuck 335:b4678b054027 63 PUBLIC _main
dudmuck 335:b4678b054027 64 PUBLIC _call_main
dudmuck 335:b4678b054027 65 THUMB
dudmuck 335:b4678b054027 66
dudmuck 335:b4678b054027 67 __iar_init$$done: ; Copy initialization is done
dudmuck 335:b4678b054027 68
dudmuck 335:b4678b054027 69 ?l3:
dudmuck 335:b4678b054027 70 _call_main:
dudmuck 335:b4678b054027 71 MOVS r0,#0 ; No parameters
dudmuck 335:b4678b054027 72 FUNCALL __cmain, __iar_argc_argv
dudmuck 335:b4678b054027 73 BL __iar_argc_argv ; Maybe setup command line
dudmuck 335:b4678b054027 74
dudmuck 335:b4678b054027 75 FUNCALL __cmain, main
dudmuck 335:b4678b054027 76 BL main
dudmuck 335:b4678b054027 77 _main:
dudmuck 335:b4678b054027 78 FUNCALL __cmain, exit
dudmuck 335:b4678b054027 79 BL exit
dudmuck 335:b4678b054027 80
dudmuck 335:b4678b054027 81 END