X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/6658905f18a1eebc148836f26c731dea9c1377dc..add16a62877f52dab8e8fbb28b2c776902b82ba8:/armsrc/start.c diff --git a/armsrc/start.c b/armsrc/start.c index 52296fc2..0466a92f 100644 --- a/armsrc/start.c +++ b/armsrc/start.c @@ -6,7 +6,22 @@ #include #include "apps.h" -void Vector(void) +extern char __data_start__, __data_src_start__, __data_end__, __bss_start__, __bss_end__; +void __attribute__((section(".startos"))) Vector(void) { + /* Stack should have been set up by the bootloader */ + char *src, *dst, *end; + + /* Set up (that is: clear) BSS. */ + dst = &__bss_start__; + end = &__bss_end__; + while(dst < end) *dst++ = 0; + + /* Set up data segment: Copy from flash to ram */ + src = &__data_src_start__; + dst = &__data_start__; + end = &__data_end__; + while(dst < end) *dst++ = *src++; + AppMain(); }