Biomimetics MBED Library w/ Added Support for CAN3

Dependents:   CAN_TEST SPIne_Plus_DYNO_SENSORS SPIne_Plus_v2 SPIne_Plus_Dyno_v2

Committer:
adimmit
Date:
Tue Mar 09 20:33:24 2021 +0000
Revision:
3:993b4d6ff61e
Parent:
0:083111ae2a11
added CAN3

Who changed what in which revision?

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