]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/start.c
mifare usb update
[proxmark3-svn] / armsrc / start.c
index 52296fc206323178d8fb48c18e14c5c20be1e903..0466a92fdb28eef430e0d26805f2471a4afb2eee 100644 (file)
@@ -6,7 +6,22 @@
 #include <proxmark3.h>\r
 #include "apps.h"\r
 \r
 #include <proxmark3.h>\r
 #include "apps.h"\r
 \r
-void Vector(void)\r
+extern char __data_start__, __data_src_start__,  __data_end__, __bss_start__, __bss_end__;\r
+void __attribute__((section(".startos"))) Vector(void)\r
 {\r
 {\r
+       /* Stack should have been set up by the bootloader */\r
+       char *src, *dst, *end;\r
+       \r
+       /* Set up (that is: clear) BSS. */\r
+       dst = &__bss_start__;\r
+       end = &__bss_end__;\r
+       while(dst < end) *dst++ = 0;\r
+       \r
+       /* Set up data segment: Copy from flash to ram */\r
+       src = &__data_src_start__;\r
+       dst = &__data_start__;\r
+       end = &__data_end__;\r
+       while(dst < end) *dst++ = *src++;\r
+       \r
        AppMain();\r
 }\r
        AppMain();\r
 }\r
Impressum, Datenschutz