File tree Expand file tree Collapse file tree 2 files changed +12
-36
lines changed Expand file tree Collapse file tree 2 files changed +12
-36
lines changed Original file line number Diff line number Diff line change 33
33
*---------------------------------------------------------------------------*/
34
34
35
35
#if defined (__CC_ARM )
36
+ #include <rt_misc.h>
36
37
#pragma O3
37
38
#define __USED __attribute__((used))
38
39
#elif defined (__GNUC__ )
@@ -442,25 +443,12 @@ void pre_main()
442
443
void * armcc_heap_base ;
443
444
void * armcc_heap_top ;
444
445
445
- __asm void pre_main (void )
446
- {
447
- IMPORT __rt_lib_init
448
- IMPORT main
449
- IMPORT armcc_heap_base
450
- IMPORT armcc_heap_top
446
+ int main (void );
451
447
452
- LDR R0 ,= armcc_heap_base
453
- LDR R1 ,= armcc_heap_top
454
- LDR R0 , [R0 ]
455
- LDR R1 , [R1 ]
456
- /* Save link register (keep 8 byte alignment with dummy R4) */
457
- PUSH {R4 , LR }
458
- BL __rt_lib_init
459
- BL main
460
- /* Return to the thread destroy function.
461
- */
462
- POP {R4 , PC }
463
- ALIGN
448
+ void pre_main (void )
449
+ {
450
+ __rt_lib_init ((unsigned )armcc_heap_base , (unsigned )armcc_heap_top );
451
+ main ();
464
452
}
465
453
466
454
__asm void __rt_entry (void ) {
Original file line number Diff line number Diff line change 34
34
#include "mbed_error.h"
35
35
36
36
#if defined (__CC_ARM )
37
+ #include <rt_misc.h>
37
38
#pragma O3
38
39
#define __USED __attribute__((used))
39
40
#elif defined (__GNUC__ )
@@ -593,25 +594,12 @@ void pre_main()
593
594
void * armcc_heap_base ;
594
595
void * armcc_heap_top ;
595
596
596
- __asm void pre_main (void )
597
- {
598
- IMPORT __rt_lib_init
599
- IMPORT main
600
- IMPORT armcc_heap_base
601
- IMPORT armcc_heap_top
597
+ int main (void );
602
598
603
- LDR R0 ,= armcc_heap_base
604
- LDR R1 ,= armcc_heap_top
605
- LDR R0 , [R0 ]
606
- LDR R1 , [R1 ]
607
- /* Save link register (keep 8 byte alignment with dummy R4) */
608
- PUSH {R4 , LR }
609
- BL __rt_lib_init
610
- BL main
611
- /* Return to the thread destroy function.
612
- */
613
- POP {R4 , PC }
614
- ALIGN
599
+ void pre_main (void )
600
+ {
601
+ __rt_lib_init ((unsigned )armcc_heap_base , (unsigned )armcc_heap_top );
602
+ main ();
615
603
}
616
604
617
605
/* The single memory model is checking for stack collision at run time, verifing
You can’t perform that action at this time.
0 commit comments