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