mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-18 19:38:13 +08:00
30 lines
824 B
C
30 lines
824 B
C
|
/*
|
||
|
* Copyright (c) 2014-2016 Cesanta Software Limited
|
||
|
* All rights reserved
|
||
|
*/
|
||
|
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
/*
|
||
|
* STM's startup script requires __libc_init_array for successfull
|
||
|
* initialization.
|
||
|
* Oficially supported IDE (Keil, IAR...) provide this function.
|
||
|
* We use our own
|
||
|
*/
|
||
|
|
||
|
extern void (*__preinit_array_start[])(void) __attribute__((weak));
|
||
|
extern void (*__preinit_array_end[])(void) __attribute__((weak));
|
||
|
extern void (*__init_array_start[])(void) __attribute__((weak));
|
||
|
extern void (*__init_array_end[])(void) __attribute__((weak));
|
||
|
|
||
|
void __libc_init_array(void) {
|
||
|
size_t count;
|
||
|
size_t i;
|
||
|
|
||
|
count = __preinit_array_end - __preinit_array_start;
|
||
|
for (i = 0; i < count; i++) __preinit_array_start[i]();
|
||
|
|
||
|
count = __init_array_end - __init_array_start;
|
||
|
for (i = 0; i < count; i++) __init_array_start[i]();
|
||
|
}
|