mirror of https://github.com/ARMmbed/mbed-os.git
Merge branch 'master' into K20D50
commit
15e246fc9f
|
@ -145,6 +145,7 @@ SECTIONS
|
|||
. = ALIGN(4) ;
|
||||
_ebss = .;
|
||||
PROVIDE(end = .);
|
||||
__end__ = .;
|
||||
} > RamLoc8
|
||||
|
||||
PROVIDE(_pvHeapStart = .);
|
||||
|
|
|
@ -9,7 +9,7 @@ extern "C" {
|
|||
void ResetISR (void);
|
||||
WEAK void NMI_Handler (void);
|
||||
WEAK void HardFault_Handler (void);
|
||||
WEAK void SVCall_Handler (void);
|
||||
WEAK void SVC_Handler (void);
|
||||
WEAK void PendSV_Handler (void);
|
||||
WEAK void SysTick_Handler (void);
|
||||
WEAK void IntDefaultHandler (void);
|
||||
|
@ -57,7 +57,7 @@ void (* const g_pfnVectors[])(void) = {
|
|||
0,
|
||||
0,
|
||||
0,
|
||||
SVCall_Handler,
|
||||
SVC_Handler,
|
||||
0,
|
||||
0,
|
||||
PendSV_Handler,
|
||||
|
@ -113,6 +113,8 @@ extern unsigned int __data_section_table;
|
|||
extern unsigned int __data_section_table_end;
|
||||
extern unsigned int __bss_section_table_end;
|
||||
|
||||
extern "C" void software_init_hook(void) __attribute__((weak));
|
||||
|
||||
AFTER_VECTORS void ResetISR(void) {
|
||||
unsigned int LoadAddr, ExeAddr, SectionLen;
|
||||
unsigned int *SectionTableAddr;
|
||||
|
@ -134,14 +136,18 @@ AFTER_VECTORS void ResetISR(void) {
|
|||
}
|
||||
|
||||
SystemInit();
|
||||
__libc_init_array();
|
||||
main();
|
||||
if (software_init_hook) // give control to the RTOS
|
||||
software_init_hook(); // this will also call __libc_init_array
|
||||
else {
|
||||
__libc_init_array();
|
||||
main();
|
||||
}
|
||||
while (1) {;}
|
||||
}
|
||||
|
||||
AFTER_VECTORS void NMI_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void HardFault_Handler(void) {while(1){}}
|
||||
AFTER_VECTORS void SVCall_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void SVC_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void PendSV_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void SysTick_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void IntDefaultHandler(void) {while(1){}}
|
||||
|
|
|
@ -9,7 +9,7 @@ extern "C" {
|
|||
void ResetISR (void);
|
||||
WEAK void NMI_Handler (void);
|
||||
WEAK void HardFault_Handler (void);
|
||||
WEAK void SVCall_Handler (void);
|
||||
WEAK void SVC_Handler (void);
|
||||
WEAK void PendSV_Handler (void);
|
||||
WEAK void SysTick_Handler (void);
|
||||
WEAK void IntDefaultHandler (void);
|
||||
|
@ -57,7 +57,7 @@ void (* const g_pfnVectors[])(void) = {
|
|||
0,
|
||||
0,
|
||||
0,
|
||||
SVCall_Handler,
|
||||
SVC_Handler,
|
||||
0,
|
||||
0,
|
||||
PendSV_Handler,
|
||||
|
@ -113,6 +113,8 @@ extern unsigned int __data_section_table;
|
|||
extern unsigned int __data_section_table_end;
|
||||
extern unsigned int __bss_section_table_end;
|
||||
|
||||
extern "C" void software_init_hook(void) __attribute__((weak));
|
||||
|
||||
AFTER_VECTORS void ResetISR(void) {
|
||||
unsigned int LoadAddr, ExeAddr, SectionLen;
|
||||
unsigned int *SectionTableAddr;
|
||||
|
@ -134,14 +136,18 @@ AFTER_VECTORS void ResetISR(void) {
|
|||
}
|
||||
|
||||
SystemInit();
|
||||
__libc_init_array();
|
||||
main();
|
||||
if (software_init_hook) // give control to the RTOS
|
||||
software_init_hook(); // this will also call __libc_init_array
|
||||
else {
|
||||
__libc_init_array();
|
||||
main();
|
||||
}
|
||||
while (1) {;}
|
||||
}
|
||||
|
||||
AFTER_VECTORS void NMI_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void HardFault_Handler(void) {while(1){}}
|
||||
AFTER_VECTORS void SVCall_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void SVC_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void PendSV_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void SysTick_Handler (void) {while(1){}}
|
||||
AFTER_VECTORS void IntDefaultHandler(void) {while(1){}}
|
||||
|
|
|
@ -146,6 +146,7 @@ SECTIONS
|
|||
. = ALIGN(4) ;
|
||||
_ebss = .;
|
||||
PROVIDE(end = .);
|
||||
__end__ = .;
|
||||
} > RamLoc32
|
||||
|
||||
PROVIDE(_pvHeapStart = .);
|
||||
|
|
|
@ -22,7 +22,7 @@ WEAK void HardFault_Handler (void);
|
|||
WEAK void MemManage_Handler (void);
|
||||
WEAK void BusFault_Handler (void);
|
||||
WEAK void UsageFault_Handler(void);
|
||||
WEAK void SVCall_Handler (void);
|
||||
WEAK void SVC_Handler (void);
|
||||
WEAK void DebugMon_Handler (void);
|
||||
WEAK void PendSV_Handler (void);
|
||||
WEAK void SysTick_Handler (void);
|
||||
|
@ -75,7 +75,7 @@ void (* const g_pfnVectors[])(void) = {
|
|||
0,
|
||||
0,
|
||||
0,
|
||||
SVCall_Handler,
|
||||
SVC_Handler,
|
||||
DebugMon_Handler,
|
||||
0,
|
||||
PendSV_Handler,
|
||||
|
@ -130,6 +130,8 @@ AFTER_VECTORS void bss_init(unsigned int start, unsigned int len) {
|
|||
for (loop = 0; loop < len; loop = loop + 4) *pulDest++ = 0;
|
||||
}
|
||||
|
||||
extern "C" void software_init_hook(void) __attribute__((weak));
|
||||
|
||||
AFTER_VECTORS void ResetISR(void) {
|
||||
unsigned int LoadAddr, ExeAddr, SectionLen;
|
||||
unsigned int *SectionTableAddr;
|
||||
|
@ -149,8 +151,12 @@ AFTER_VECTORS void ResetISR(void) {
|
|||
}
|
||||
|
||||
SystemInit();
|
||||
__libc_init_array();
|
||||
main();
|
||||
if (software_init_hook) // give control to the RTOS
|
||||
software_init_hook(); // this will also call __libc_init_array
|
||||
else {
|
||||
__libc_init_array();
|
||||
main();
|
||||
}
|
||||
while (1) {;}
|
||||
}
|
||||
|
||||
|
@ -159,7 +165,7 @@ AFTER_VECTORS void HardFault_Handler (void) {}
|
|||
AFTER_VECTORS void MemManage_Handler (void) {}
|
||||
AFTER_VECTORS void BusFault_Handler (void) {}
|
||||
AFTER_VECTORS void UsageFault_Handler(void) {}
|
||||
AFTER_VECTORS void SVCall_Handler (void) {}
|
||||
AFTER_VECTORS void SVC_Handler (void) {}
|
||||
AFTER_VECTORS void DebugMon_Handler (void) {}
|
||||
AFTER_VECTORS void PendSV_Handler (void) {}
|
||||
AFTER_VECTORS void SysTick_Handler (void) {}
|
||||
|
|
|
@ -156,6 +156,7 @@ SECTIONS
|
|||
. = ALIGN(4) ;
|
||||
_ebss = .;
|
||||
PROVIDE(end = .);
|
||||
__end__ = .;
|
||||
} > RamLoc64
|
||||
|
||||
/* NOINIT section for RamPeriph32 */
|
||||
|
|
|
@ -259,6 +259,9 @@ extern unsigned int __bss_section_table_end;
|
|||
// Sets up a simple runtime environment and initializes the C/C++
|
||||
// library.
|
||||
//*****************************************************************************
|
||||
|
||||
extern "C" void software_init_hook(void) __attribute__((weak));
|
||||
|
||||
__attribute__ ((section(".after_vectors")))
|
||||
void
|
||||
ResetISR(void) {
|
||||
|
@ -319,21 +322,23 @@ ResetISR(void) {
|
|||
//#ifdef __USE_CMSIS
|
||||
SystemInit();
|
||||
//#endif
|
||||
|
||||
if (software_init_hook) // give control to the RTOS
|
||||
software_init_hook(); // this will also call __libc_init_array
|
||||
else {
|
||||
#if defined (__cplusplus)
|
||||
//
|
||||
// Call C++ library initialisation
|
||||
//
|
||||
__libc_init_array();
|
||||
//
|
||||
// Call C++ library initialisation
|
||||
//
|
||||
__libc_init_array();
|
||||
#endif
|
||||
|
||||
#if defined (__REDLIB__)
|
||||
// Call the Redlib library, which in turn calls main()
|
||||
__main() ;
|
||||
// Call the Redlib library, which in turn calls main()
|
||||
__main() ;
|
||||
#else
|
||||
main();
|
||||
main();
|
||||
#endif
|
||||
|
||||
}
|
||||
//
|
||||
// main() shouldn't return, but if it does, we'll just enter an infinite loop
|
||||
//
|
||||
|
|
|
@ -312,6 +312,9 @@ extern unsigned int __bss_section_table_end;
|
|||
// library.
|
||||
//
|
||||
// *****************************************************************************
|
||||
|
||||
extern "C" void software_init_hook(void) __attribute__((weak));
|
||||
|
||||
void
|
||||
ResetISR(void) {
|
||||
|
||||
|
@ -342,20 +345,23 @@ ResetISR(void) {
|
|||
bss_init(ExeAddr, SectionLen);
|
||||
}
|
||||
|
||||
#if defined(__cplusplus)
|
||||
//
|
||||
// Call C++ library initialisation
|
||||
//
|
||||
__libc_init_array();
|
||||
#endif
|
||||
|
||||
#if defined(__REDLIB__)
|
||||
// Call the Redlib library, which in turn calls main()
|
||||
__main();
|
||||
#else
|
||||
main();
|
||||
#endif
|
||||
if (software_init_hook) // give control to the RTOS
|
||||
software_init_hook(); // this will also call __libc_init_array
|
||||
else {
|
||||
#if defined(__cplusplus)
|
||||
//
|
||||
// Call C++ library initialisation
|
||||
//
|
||||
__libc_init_array();
|
||||
#endif
|
||||
|
||||
#if defined(__REDLIB__)
|
||||
// Call the Redlib library, which in turn calls main()
|
||||
__main();
|
||||
#else
|
||||
main();
|
||||
#endif
|
||||
}
|
||||
//
|
||||
// main() shouldn't return, but if it does, we'll just enter an infinite loop
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue