aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source
diff options
context:
space:
mode:
authorJohn Hansen2010-11-29 13:26:57 +0100
committerNicolas Schodet2011-01-21 23:15:36 +0100
commit297e078de44336eb37e59c31638988de4adfb88b (patch)
treefa2024d0f72561696512024c20564902496b0b67 /AT91SAM7S256/Source
parent495cc1df494505378977995eeb76b05f20f0b235 (diff)
add support for native executable
Enable the use of native compiled program from standard firmware interface. See http://www.tau.ac.il/~stoledo/lego/nxt-native/ for more details. Imported from NXT Enhanced Firmware.
Diffstat (limited to 'AT91SAM7S256/Source')
-rw-r--r--AT91SAM7S256/Source/c_cmd.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/AT91SAM7S256/Source/c_cmd.c b/AT91SAM7S256/Source/c_cmd.c
index 4ce9829..7483846 100644
--- a/AT91SAM7S256/Source/c_cmd.c
+++ b/AT91SAM7S256/Source/c_cmd.c
@@ -1425,6 +1425,16 @@ NXT_STATUS cCmdReadFileHeader(UBYTE* pData, ULONG DataSize,
NXT_ASSERT(pData != NULL);
+ if (strncmp((PSZ)pData, "NXTBINARY", VM_FORMAT_STRING_SIZE) == 0)
+ {
+ ULONG NativeOffset;
+ pCursor = (pData + 12);
+ NativeOffset = (ULONG)(*pCursor);
+ void (*native)(ULONG, ULONG) = (void (*)())(pData + NativeOffset);
+ (*native)((ULONG)pData, DataSize);
+ NXT_BREAK;
+ return (ERR_VER);
+ }
//Assign pCursor to point to version word inside file header
pCursor = (pData + VM_FORMAT_STRING_SIZE - 2);