mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 189:f392fc9709a3 1 /**************************************************
AnnaBridge 189:f392fc9709a3 2 *
AnnaBridge 189:f392fc9709a3 3 * Part two of the system initialization code, contains C-level
AnnaBridge 189:f392fc9709a3 4 * initialization, thumb-2 only variant.
AnnaBridge 189:f392fc9709a3 5 *
AnnaBridge 189:f392fc9709a3 6 * $Revision: 59783 $
AnnaBridge 189:f392fc9709a3 7 *
AnnaBridge 189:f392fc9709a3 8 **************************************************/
AnnaBridge 189:f392fc9709a3 9 /* Copyright 2008-2017, IAR Systems AB.
AnnaBridge 189:f392fc9709a3 10 This source code is the property of IAR Systems. The source code may only
AnnaBridge 189:f392fc9709a3 11 be used together with the IAR Embedded Workbench. Redistribution and use
AnnaBridge 189:f392fc9709a3 12 in source and binary forms, with or without modification, is permitted
AnnaBridge 189:f392fc9709a3 13 provided that the following conditions are met:
AnnaBridge 189:f392fc9709a3 14 - Redistributions of source code, in whole or in part, must retain the
AnnaBridge 189:f392fc9709a3 15 above copyright notice, this list of conditions and the disclaimer below.
AnnaBridge 189:f392fc9709a3 16 - IAR Systems name may not be used to endorse or promote products
AnnaBridge 189:f392fc9709a3 17 derived from this software without specific prior written permission.
AnnaBridge 189:f392fc9709a3 18
AnnaBridge 189:f392fc9709a3 19 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
AnnaBridge 189:f392fc9709a3 20 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
AnnaBridge 189:f392fc9709a3 21 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
AnnaBridge 189:f392fc9709a3 22 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
AnnaBridge 189:f392fc9709a3 23 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
AnnaBridge 189:f392fc9709a3 24 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
AnnaBridge 189:f392fc9709a3 25 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
AnnaBridge 189:f392fc9709a3 26 */
AnnaBridge 189:f392fc9709a3 27
AnnaBridge 189:f392fc9709a3 28 ; --------------------------------------------------
AnnaBridge 189:f392fc9709a3 29 ; Module ?cmain, C-level initialization.
AnnaBridge 189:f392fc9709a3 30 ;
AnnaBridge 189:f392fc9709a3 31
AnnaBridge 189:f392fc9709a3 32
AnnaBridge 189:f392fc9709a3 33 SECTION SHT$$PREINIT_ARRAY:CONST:NOROOT(2)
AnnaBridge 189:f392fc9709a3 34 SECTION SHT$$INIT_ARRAY:CONST:NOROOT(2)
AnnaBridge 189:f392fc9709a3 35
AnnaBridge 189:f392fc9709a3 36 SECTION .text:CODE:NOROOT(2)
AnnaBridge 189:f392fc9709a3 37
AnnaBridge 189:f392fc9709a3 38 PUBLIC __cmain
AnnaBridge 189:f392fc9709a3 39 ;; Keep ?main for legacy reasons, it is accessed in countless instances of cstartup.s around the world...
AnnaBridge 189:f392fc9709a3 40 PUBLIC ?main
AnnaBridge 189:f392fc9709a3 41 EXTWEAK __iar_data_init3
AnnaBridge 189:f392fc9709a3 42 EXTWEAK __iar_argc_argv
AnnaBridge 189:f392fc9709a3 43 EXTERN __low_level_init
AnnaBridge 189:f392fc9709a3 44 EXTERN __call_ctors
AnnaBridge 189:f392fc9709a3 45 EXTERN main
AnnaBridge 189:f392fc9709a3 46 EXTERN exit
AnnaBridge 189:f392fc9709a3 47 EXTERN __iar_dynamic_initialization
AnnaBridge 189:f392fc9709a3 48 EXTERN mbed_sdk_init
AnnaBridge 189:f392fc9709a3 49 EXTERN mbed_main
AnnaBridge 189:f392fc9709a3 50 EXTERN SystemInit
AnnaBridge 189:f392fc9709a3 51
AnnaBridge 189:f392fc9709a3 52 THUMB
AnnaBridge 189:f392fc9709a3 53 __cmain:
AnnaBridge 189:f392fc9709a3 54 ?main:
AnnaBridge 189:f392fc9709a3 55
AnnaBridge 189:f392fc9709a3 56 ; Initialize segments.
AnnaBridge 189:f392fc9709a3 57 ; __segment_init and __low_level_init are assumed to use the same
AnnaBridge 189:f392fc9709a3 58 ; instruction set and to be reachable by BL from the ICODE segment
AnnaBridge 189:f392fc9709a3 59 ; (it is safest to link them in segment ICODE).
AnnaBridge 189:f392fc9709a3 60
AnnaBridge 189:f392fc9709a3 61 FUNCALL __cmain, __low_level_init
AnnaBridge 189:f392fc9709a3 62 bl __low_level_init
AnnaBridge 189:f392fc9709a3 63 cmp r0,#0
AnnaBridge 189:f392fc9709a3 64 beq ?l1
AnnaBridge 189:f392fc9709a3 65 FUNCALL __cmain, __iar_data_init3
AnnaBridge 189:f392fc9709a3 66 bl __iar_data_init3
AnnaBridge 189:f392fc9709a3 67 MOVS r0,#0 ; No parameters
AnnaBridge 189:f392fc9709a3 68 FUNCALL __cmain, mbed_sdk_init
AnnaBridge 189:f392fc9709a3 69 BL mbed_sdk_init
AnnaBridge 189:f392fc9709a3 70 MOVS r0,#0 ; No parameters
AnnaBridge 189:f392fc9709a3 71 FUNCALL __cmain, __iar_dynamic_initialization
AnnaBridge 189:f392fc9709a3 72 BL __iar_dynamic_initialization ; C++ dynamic initialization
AnnaBridge 189:f392fc9709a3 73
AnnaBridge 189:f392fc9709a3 74 ?l1:
AnnaBridge 189:f392fc9709a3 75 REQUIRE ?l3
AnnaBridge 189:f392fc9709a3 76
AnnaBridge 189:f392fc9709a3 77 SECTION .text:CODE:NOROOT(2)
AnnaBridge 189:f392fc9709a3 78
AnnaBridge 189:f392fc9709a3 79 PUBLIC _main
AnnaBridge 189:f392fc9709a3 80 PUBLIC _call_main
AnnaBridge 189:f392fc9709a3 81 THUMB
AnnaBridge 189:f392fc9709a3 82
AnnaBridge 189:f392fc9709a3 83 __iar_init$$done: ; Copy initialization is done
AnnaBridge 189:f392fc9709a3 84
AnnaBridge 189:f392fc9709a3 85 ?l3:
AnnaBridge 189:f392fc9709a3 86 _call_main:
AnnaBridge 189:f392fc9709a3 87 MOVS r0,#0 ; No parameters
AnnaBridge 189:f392fc9709a3 88 FUNCALL __cmain, __iar_argc_argv
AnnaBridge 189:f392fc9709a3 89 BL __iar_argc_argv ; Maybe setup command line
AnnaBridge 189:f392fc9709a3 90
AnnaBridge 189:f392fc9709a3 91 MOVS r0,#0 ; No parameters
AnnaBridge 189:f392fc9709a3 92 FUNCALL __cmain, mbed_main
AnnaBridge 189:f392fc9709a3 93 BL mbed_main
AnnaBridge 189:f392fc9709a3 94
AnnaBridge 189:f392fc9709a3 95 FUNCALL __cmain, main
AnnaBridge 189:f392fc9709a3 96 BL main
AnnaBridge 189:f392fc9709a3 97 _main:
AnnaBridge 189:f392fc9709a3 98 FUNCALL __cmain, exit
AnnaBridge 189:f392fc9709a3 99 BL exit
AnnaBridge 189:f392fc9709a3 100
AnnaBridge 189:f392fc9709a3 101 END