You could cause to main() produce a backtrace and see for your self who called it. For a glibc based system it could look like this:
Code:
#include <stdlib.h>
#include <execinfo.h>
int main(int argc, char *argv[]) {
void *apRaw[16];
char **pasReadable;
size_t iSize;
size_t i;
iSize= backtrace(apRaw, 16);
pasReadable= backtrace_symbols(apRaw, iSize);
printf("Backtrace, %zd calls:\n", iSize);
for (i= 0; i < iSize; i++)
printf("%s\n", pasReadable[i]);
free(pasReadable);
return 0;
}
edit: I don't know why the the board messes up the code like this. sorry.