aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2011-06-20 09:36:09 +0800
committerTat-Chee Wan (USM)2011-06-20 09:36:09 +0800
commit17b2827aeff34b69ecb98305d9890f58acb99461 (patch)
treebc810177c03a7f91a62c4f3b10b4c5ffc4de2243
parent724f0cab2008109102428c6a7393f1ec85281574 (diff)
parent4814854ff7149f3b9dae2d5f1bf49d2bdeeaed6d (diff)
Merge branch 'master' of ssh://svc.cs.usm.my/~/gitrepo-bare/armdebug
-rw-r--r--AT91SAM7S256/armdebug/Debugger/debug_comm.S481
-rw-r--r--AT91SAM7S256/armdebug/Debugger/debug_hexutils.S457
-rw-r--r--AT91SAM7S256/armdebug/Debugger/debug_internals.h3
-rw-r--r--AT91SAM7S256/armdebug/Debugger/debug_runlooptasks.S174
-rw-r--r--AT91SAM7S256/armdebug/Debugger/debug_stub.S199
-rw-r--r--AT91SAM7S256/armdebug/Debugger/debug_stub.h4
-rw-r--r--AT91SAM7S256/armdebug/Debugger/undef_handler.S4
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/FantomModule.cpp305
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/FantomModule.h60
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/FantomModule.xcodeproj/project.pbxproj295
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/FantomModulePriv.h19
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/FantomModuleProj.xcconfig6
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/FantomModuleTarget.xcconfig11
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/FantomModule_Prefix.pch6
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/fantom/iFile.h280
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/fantom/iFileIterator.h133
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/fantom/iModule.h154
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/fantom/iModuleIterator.h123
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/fantom/iNXT.h666
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/fantom/iNXTIterator.h120
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/fantom/platform.h94
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/fantom/tStatus.h458
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceFileIterator.vibin52507 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceModuleIterator.vibin49641 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceNXTIterator.vibin49658 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/bluetoothFactoryReset.vibin44169 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/bootSamba.vibin30013 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/closeFile.vibin42973 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createFile.vibin53398 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createFileIterator.vibin59566 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createModule.vibin60580 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createModuleIterator.vibin59588 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createNXT.vibin77937 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createNXTIterator.vibin61697 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyFile.vibin44491 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyFileIterator.vibin44715 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyModule.vibin44733 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyModuleIterator.vibin44657 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyNXT.vibin54226 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyNXTIterator.vibin44090 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/downloadFirmware.vibin51788 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/eraseUserFlash.vibin53218 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/findDeviceInFirmwareDownloadMode.vibin33424 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/findNXT.vibin57487 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getAvailableSize.vibin46052 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getDeviceInfo.vibin77397 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFile.vibin46879 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileName.vibin57503 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileSize.vibin49827 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileSizeFromIterator.vibin46119 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFilenameFromIterator.vibin50359 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFirmwareVersion.vibin54438 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getIOMapSize.vibin47320 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModule.vibin45677 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleID.vibin47455 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleName.vibin51125 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleNameFromIterator.vibin50373 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleSize.vibin47365 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getNXTFromIterator.vibin45554 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getResourceString.vibin50629 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getStringFromNXTIterator.vibin50832 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/isPaired.vibin33180 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nakedRead.vibin56833 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nakedWrite.vibin53942 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nxt.ctlbin12924 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/openForRead.vibin46847 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/openForWrite.vibin61344 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/pairBluetooth.vibin37997 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/pollAvailableLength.vibin48927 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/read.vibin57324 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/readBufferData.vibin60250 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/readIOMap.vibin56653 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/remove.vibin46762 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/sendDirectCommand.vibin62289 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/setNXTName.vibin46126 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/unpairBluetooth.vibin28927 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/write.vibin53525 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/writeIOMap.vibin54282 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceFileIterator.vibin50807 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceModuleIterator.vibin47697 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceNXTIterator.vibin47430 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/bluetoothFactoryReset.vibin42289 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/bootSamba.vibin28245 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/closeFile.vibin41293 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createFile.vibin51566 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createFileIterator.vibin57766 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createModule.vibin58556 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createModuleIterator.vibin57524 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createNXT.vibin75773 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createNXTIterator.vibin59605 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyFile.vibin42775 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyFileIterator.vibin43063 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyModule.vibin43017 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyModuleIterator.vibin42989 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyNXT.vibin52394 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyNXTIterator.vibin42110 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/downloadFirmware.vibin49704 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/eraseUserFlash.vibin50750 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/findDeviceInFirmwareDownloadMode.vibin31524 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/findNXT.vibin55779 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getAvailableSize.vibin43996 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getDeviceInfo.vibin73869 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFile.vibin45059 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileName.vibin55387 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileSize.vibin47899 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileSizeFromIterator.vibin44047 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFilenameFromIterator.vibin48447 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFirmwareVersion.vibin52298 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getIOMapSize.vibin45256 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModule.vibin43873 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleID.vibin45675 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleName.vibin49113 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleNameFromIterator.vibin48477 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleSize.vibin45533 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getNXTFromIterator.vibin43762 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getResourceString.vibin48689 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getStringFromNXTIterator.vibin48664 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/isPaired.vibin31428 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nakedRead.vibin55097 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nakedWrite.vibin51866 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nxt.ctlbin12692 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/openForRead.vibin44755 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/openForWrite.vibin58108 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/pairBluetooth.vibin35997 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/pollAvailableLength.vibin46951 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/read.vibin55444 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/readBufferData.vibin58354 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/readIOMap.vibin54409 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/remove.vibin45010 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/sendDirectCommand.vibin60249 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/setNXTName.vibin44182 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/unpairBluetooth.vibin27139 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/write.vibin51589 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/include/labview/win32/writeIOMap.vibin52014 -> 0 bytes
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/pyfantom/__init__.py0
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/setup.py40
-rw-r--r--AT91SAM7S256/armdebug/FantomModule/visatype.h155
-rwxr-xr-xAT91SAM7S256/armdebug/Host/nxt-gdb-server.py4
-rwxr-xr-xAT91SAM7S256/armdebug/Host/pyenv-nxt-gdb-server2
-rw-r--r--AT91SAM7S256/armdebug/README8
140 files changed, 760 insertions, 3501 deletions
diff --git a/AT91SAM7S256/armdebug/Debugger/debug_comm.S b/AT91SAM7S256/armdebug/Debugger/debug_comm.S
index 821d0c8..570fedc 100644
--- a/AT91SAM7S256/armdebug/Debugger/debug_comm.S
+++ b/AT91SAM7S256/armdebug/Debugger/debug_comm.S
@@ -22,6 +22,22 @@
#include "debug_internals.h"
#include "debug_comm.h"
+ /* Hexutils function references */
+ .extern hex2char
+ .extern char2hex
+ .extern byte2ascii
+ .extern halfword2ascii_be
+ .extern halfword2ascii_le
+ .extern word2ascii_be
+ .extern word2ascii_le
+ .extern ascii2hex_varlen_be
+ .extern ascii2byte
+ .extern ascii2halfword_be
+ .extern ascii2halfword_le
+ .extern ascii2word_be
+ .extern ascii2word_le
+
+
.bss
.align 4
@@ -46,10 +62,11 @@ debug_msgTxBuf_AppendPtr:
debug_segmentRxNum: /* Current Rx Segment Number */
.word 0x0
-/* Incoming Message Length and Comm Channel is now common to both NxOS and NXT Firmware */
debug_nxtMsgLength: /* NXT Firmware Received Message Length */
.word 0x0
+/* Comm Channel is now common to both NxOS and NXT Firmware */
+ .global debug_nxtCommChannel
debug_nxtCommChannel:
.word 0x0
@@ -61,443 +78,9 @@ debug_nxtCommChannel:
nxt_commcmd_header:
.byte NXT_GDBMSG_TELEGRAMTYPE, 0x00, 0x00 /* padded to 3 bytes */
-hex2char_lut:
- .ascii "0123456789ABCDEF"
-
-/* Macros
- */
-
-
-/* _hex2char_lut
- * Internal routine to intialize the LUT address pointer
- */
- .macro _hex2char_lut addrptr
- ldr \addrptr, =hex2char_lut
- .endm
-
-/* _hex2char_cont
- * Internal routine that assumes that the LUT has been loaded.
- * This macro accepts a byte sized hex value as a parameter register(7:0) and returns the
- * ASCII equivalent in in the same register(7:0)
- * The second parameter is the LUT address pointer register to use (assumed to be initialized)
- * WARNING: Assumes that the value in register is sanity checked before invoking macro
- */
- .macro _hex2char_cont reg, addrptr
- ldrb \reg, [\addrptr, \reg]
- .endm
-
-/* _hex2char
- * This macro accepts a byte sized hex value as a parameter register(7:0) and returns the
- * ASCII equivalent in in the same register(7:0)
- * The second parameter is the LUT address pointer register to use (register content is destroyed)
- * WARNING: Assumes that the value in register is sanity checked before invoking macro
- */
- .macro _hex2char reg, addrptr
- _hex2char_lut \addrptr
- _hex2char_cont \reg, \addrptr
- .endm
-
-/* _char2hex
- * This macro accepts an ASCII char as a parameter register(7:0) and returns the
- * equivalent byte sized hex value in in the same register(7:0)
- * WARNING: Assumes that the char in register is a valid hex char before invoking macro
- */
- .macro _char2hex reg
- cmp \reg, #'A' /* If Alpha */
- bichs \reg, \reg, #ASCII_LOWER2UPPER_MASK /* Convert to Uppercase */
- subhs \reg, \reg, #7 /* Adjustment to allow for subtraction with 0x30 */
- sub \reg, \reg, #0x30 /* get final hex value */
- .endm
-
-
.code 32
.text
.align 4
-
-
-/* Utility Routines
- * GDB requires command parameters to be specified as Big Endian values.
- * However, the read/write register command expect the register contents to be specified in target byte order.
- * Hence we need both versions of multibyte conversion routines for word sized values.
- */
-
-/* hex2char
- * This routine accepts a byte sized hex value in R0(7:0) and returns the
- * ASCII equivalent in R0(7:0)
- */
- .global hex2char
-
-hex2char:
- stmfd sp!, {r1,lr}
- and r0, #NIBBLE0 /* make sure that input is sane */
- _hex2char r0, r1
- ldmfd sp!, {r1,pc}
-
-/* char2hex
- * This routine accepts an ASCII character in R0(7:0) and returns the
- * equivalent byte sized hex value in R0(7:0).
- * It accepts lowercase and uppercase ASCII Hex char inputs.
- * Invalid inputs return -1 as the value
-* On entry:
- * R0: ASCII character
- * On exit:
- * R0: Hex value
- */
- .global char2hex
-
-char2hex:
- and r0, r0, #BYTE0 /* make sure that input is sane */
- cmp r0, #'0'
- blo char2hex_error
- cmp r0, #'9'
- bls perform_char2hex
- cmp r0, #'A'
- blo char2hex_error
- cmp r0, #'F'
- bls perform_char2hex
- cmp r0, #'a'
- blo char2hex_error
- cmp r0, #'f'
- bhi char2hex_error
- /* Validated Hex Char */
-perform_char2hex:
- _char2hex r0 /* Return hex value in R0 */
- bx lr
-
-char2hex_error:
- mov r0, #-1 /* Set Return value to Error value */
- bx lr
-
-/* byte2ascii_cont
- * (Shared routine, does not perform sanity checks)
- * On entry:
- * R0: ASCII buffer pointer
- * R1[7:0]: byte value
- * On exit:
- * R0: Address of next empty char slot in buffer
- * R1: Destroyed
- *
- * This routine accepts an ASCII buffer pointer in R0 and a byte value in R1,
- * and stores the ASCII equivalent byte value in the buffer pointed to by R0.
- * Note: On return, R0 points to next empty char slot in buffer
- */
-byte2ascii_cont:
- stmfd sp!, {r2,r3,r4, lr}
- lsl r2, r1, #24 /* Keep copy of input byte value R1[7:0], shifted to MSB R2[31:24] */
- mov r4, #2 /* Loop counter */
- _hex2char_lut r3 /* initialize LUT pointer */
-1: ror r2, r2, #28 /* Rotate MSNibble R2[31:28] into LSNibble position R2[3:0] */
- and r1, r2, #NIBBLE0 /* Mask out everything else, store Nibble in R1 */
- _hex2char_cont r1, r3 /* Convert nibble to ASCII char */
- strb r1, [r0], #1
- subs r4, r4, #1 /* decrement loop counter */
- bne 1b
- ldmfd sp!, {r2,r3,r4, pc}
-
-/* byte2ascii
- * On entry:
- * R0: ASCII buffer pointer
- * R1[7:0]: Byte value
- * On exit:
- * R0: Address of next empty char slot in buffer
- * R1: Original Address of Buffer
- *
- * This routine accepts an ASCII buffer pointer in R0 and a byte value in R1,
- * and stores the ASCII equivalent byte value in the buffer pointed to by R0.
- * Note: On return, R0 points to the next empty char slot in buffer
- */
- .global byte2ascii
-
-byte2ascii:
- stmfd sp!, {r0, lr} /* Keep ASCII buffer pointer */
- and r1, #BYTE0 /* sanitize input */
- bl byte2ascii_cont
- ldmfd sp!, {r1, pc} /* return original string pointer in R1 */
-
-/* halfword2ascii_be
- * Big Endian version of halfword2ascii conversion routine
- * On entry:
- * R0: ASCII buffer pointer
- * R1[15:0]: Halfword value
- * On exit:
- * R0: Address of next empty char slot in buffer
- * R1: Original Address of Buffer
- *
- * This routine accepts an ASCII buffer pointer in R0 and a halfword value in R1,
- * and stores the ASCII equivalent halfword value in the buffer pointed to by R0.
- * Note: On return, R0 points to the next empty char slot in buffer
- */
- .global halfword2ascii_be
-halfword2ascii_be:
- stmfd sp!, {r0,r2,r3, lr} /* Keep ASCII buffer pointer */
- mov r3, #2 /* Loop Counter */
- mov r2, r1, lsl #16 /* copy of input halfword value R1[15:0], shifted to MSH R2[31:16] */
- b _conv_byte2ascii_be /* goto Byte conversion loop */
-
-/* halfword2ascii_le
- * Little Endian version of halfword2ascii conversion routine
- * On entry:
- * R0: ASCII buffer pointer
- * R1[15:0]: Halfword value
- * On exit:
- * R0: Address of next empty char slot in buffer
- * R1: Original Address of Buffer
- *
- * This routine accepts an ASCII buffer pointer in R0 and a halfword value in R1,
- * and stores the ASCII equivalent halfword value in the buffer pointed to by R0.
- * Note: On return, R0 points to the next empty char slot in buffer
- */
- .global halfword2ascii_le
-halfword2ascii_le:
- stmfd sp!, {r0,r2,r3, lr} /* Keep ASCII buffer pointer */
- mov r3, #2 /* Loop Counter */
- b _conv_byte2ascii_le /* goto Byte conversion loop */
-
-
-/* word2ascii_be
- * Big Endian version of word2ascii conversion routine
- * On entry:
- * R0: ASCII buffer pointer
- * R1[31:0]: Word value
- * On exit:
- * R0: Address of next empty char slot in buffer
- * R1: Original Address of Buffer
- *
- * This routine accepts an ASCII buffer pointer in R0 and a word value in R1,
- * and stores the ASCII equivalent word value in the buffer pointed to by R0.
- * Note: On return, R0 points to the next empty char slot in buffer
- */
- .global word2ascii_be
-word2ascii_be:
- stmfd sp!, {r0,r2,r3, lr} /* Keep ASCII buffer pointer */
- mov r2, r1 /* copy of input word value R1[31:0] */
- mov r3, #4 /* Loop Counter */
-
- /* Fall through to byte coversion loop */
-
-
-/* Big Endian Multibyte Convert: Rotate then convert */
-_conv_byte2ascii_be:
- ror r2, r2, #24 /* Rotate MSB R2[31:24] into LSB position R2[7:0] */
- and r1, r2, #BYTE0 /* Copy byte value in R2[7:0] into R1 */
- bl byte2ascii_cont /* R0: next ASCII buffer location pointer, R1: destroyed */
- subs r3, r3, #1
- bne _conv_byte2ascii_be
- ldmfd sp!, {r1,r2,r3, pc}
-
-/* word2ascii_le
- * Little Endian version of word2ascii conversion routine
- * On entry:
- * R0: ASCII buffer pointer
- * R1[31:0]: Word value
- * On exit:
- * R0: Address of next empty char slot in buffer
- * R1: Original Address of Buffer
- *
- * This routine accepts an ASCII buffer pointer in R0 and a word value in R1,
- * and stores the ASCII equivalent word value in the buffer pointed to by R0.
- * Note: On return, R0 points to the next empty char slot in buffer
- */
- .global word2ascii_le
-word2ascii_le:
- stmfd sp!, {r0,r2,r3, lr} /* Keep ASCII buffer pointer */
- mov r2, r1 /* copy of input word value R1[31:0] */
- mov r3, #4 /* Loop Counter */
-
- /* Fall through to byte coversion loop */
-
-/* Little Endian Multibyte Convert: Convert then rotate */
-_conv_byte2ascii_le:
- and r1, r2, #BYTE0 /* Copy byte value in R2[7:0] into R1 */
- bl byte2ascii_cont /* R0: next ASCII buffer location pointer, R1: destroyed */
- ror r2, r2, #8 /* Rotate LSB+1 R2[15:8] into LSB position R2[7:0] */
- subs r3, r3, #1
- bne _conv_byte2ascii_le
- ldmfd sp!, {r1,r2,r3, pc}
-
-
-/* ascii2hex_varlen_be
- * Big Endian version of ascii2hex_varlen conversion routine
- * (There is no Little Endian Version)
- * On entry:
- * R0: ASCII buffer pointer
- * On exit:
- * R0: Hex value
- * R1: Address of next char slot in buffer
- *
- * This routine accepts an ASCII buffer pointer in R0,
- * and returns the hex value in R0 for up to 8 Hex characters.
- * Note: On return, R1 points to the ASCII buffer location after the hex value chars.
- */
- .global ascii2hex_varlen_be
-
-ascii2hex_varlen_be:
- stmfd sp!, {r2,r3, lr}
- mov r3, #CMD_REG_REGPARAMLEN /* Set max count to 8 (Max Register size) */
- mov r1, r0 /* Use R1 as ASCII buffer pointer */
- mov r2, #0 /* Initialize Cummulative Results */
-2: ldrb r0, [r1] /* Load ASCII char for Hex Value */
- bl char2hex /* on return, hex value in R0, -1 for error */
- cmp r0, #-1
- beq _exit_ascii2hex_varlen
- orr r2, r0, r2, lsl #4 /* combined byte value */
- subs r3, r3, #1 /* Decrement Counter */
- add r1, r1, #1 /* Go to next char slot */
- bne 2b
-_exit_ascii2hex_varlen:
- mov r0, r2 /* Return results in R0 */
- ldmfd sp!, {r2,r3, pc}
-
-
-/* ascii2byte
- * On entry:
- * R0: ASCII buffer pointer
- * On exit:
- * R0[7:0]: Byte value
- * R1: Address of next char slot in buffer
- *
- * This routine accepts an ASCII buffer pointer in R0,
- * and returns the byte value in R0[7:0].
- * Note: On return, R1 points to the ASCII buffer location after the current 2 chars.
- * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
- * otherwise it will return invalid results.
- */
- .global ascii2byte
-
-ascii2byte:
- stmfd sp!, {r2, lr}
- mov r1, r0 /* Use R1 as ASCII buffer pointer */
- ldrb r0, [r1], #1 /* Load ASCII char for MSN */
- bl char2hex /* on return, hex value in R0, -1 for error (ignored) */
- mov r2, r0, lsl #4 /* Intermediate Results register */
- ldrb r0, [r1], #1 /* Load ASCII char for LSN */
- bl char2hex /* on return, hex value in R0, -1 for error (ignored) */
- orr r0, r2, r0 /* combined byte value */
- ldmfd sp!, {r2, pc}
-
-/* ascii2halfword_be
- * Big Endian version of ascii2halfword conversion routine
- * On entry:
- * R0: ASCII buffer pointer
- * On exit:
- * R0[15:0]: Halfword value
- * R1: Address of next char slot in buffer
- *
- * This routine accepts an ASCII buffer pointer in R0,
- * and returns the Halfword value in R0[15:0].
- * Note: On return, R1 points to the ASCII buffer location after the current 4 chars.
- * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
- * otherwise it will return invalid results.
- */
- .global ascii2halfword_be
-
-ascii2halfword_be:
- stmfd sp!, {r2,r3, lr}
- mov r3, #2 /* Loop counter */
- b _conv_ascii2byte_be
-
-/* ascii2halfword_le
- * Little Endian version of ascii2halfword conversion routine
- * On entry:
- * R0: ASCII buffer pointer
- * On exit:
- * R0[15:0]: Halfword value
- * R1: Address of next char slot in buffer
- *
- * This routine accepts an ASCII buffer pointer in R0,
- * and returns the Halfword value in R0[15:0].
- * Note: On return, R1 points to the ASCII buffer location after the current 4 chars.
- * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
- * otherwise it will return invalid results.
- */
- .global ascii2halfword_le
-
-ascii2halfword_le:
- stmfd sp!, {r2,r3, lr}
- mov r3, #2 /* Loop counter */
- b _conv_ascii2byte_le
-
-
-/* ascii2word_be
- * Big Endian version of ascii2word conversion routine
- * On entry:
- * R0: ASCII buffer pointer
- * On exit:
- * R0[31:0]: Word value
- * R1: Address of next char slot in buffer
- *
- * This routine accepts an ASCII buffer pointer in R0,
- * and returns the word value in R0[31:0].
- * Note: On return, R1 points to the ASCII buffer location after the current 8 chars.
- * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
- * otherwise it will return invalid results.
- */
- .global ascii2word_be
-
-ascii2word_be:
- stmfd sp!, {r2,r3, lr}
- mov r3, #4 /* Loop counter */
-
- /* Fall through to byte coversion loop */
-
-_conv_ascii2byte_be:
- teq r0, #0
- beq _exit_conv_ascii2byte_be /* exit if NULL pointer in R0 */
- mov r2, #0 /* Initialize Cummulative value */
-2: bl ascii2byte
- orr r2, r0, r2, lsl #8 /* Merge current byte with cummulative value */
- mov r0, r1 /* Copy next char pointer to R0 for next byte */
- subs r3, r3, #1
- bne 2b
- mov r0, r2 /* Copy it to R0 as return value */
-
-_exit_conv_ascii2byte_be:
- ldmfd sp!, {r2,r3, pc} /* return hex value in R0 */
-
-/* ascii2word_le
- * Litle Endian version of ascii2word conversion routine
- * On entry:
- * R0: ASCII buffer pointer
- * On exit:
- * R0[31:0]: Word value
- * R1: Address of next char slot in buffer
- *
- * This routine accepts an ASCII buffer pointer in R0,
- * and returns the word value in R0[31:0].
- * Note: On return, R1 points to the ASCII buffer location after the current 8 chars.
- * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
- * otherwise it will return invalid results.
- */
- .global ascii2word_le
-
-ascii2word_le:
- stmfd sp!, {r2,r3, lr}
- mov r3, #4 /* Loop counter */
-
- /* Fall through to byte coversion loop */
-
-_conv_ascii2byte_le:
- teq r0, #0
- beq _exit_conv_ascii2byte_le /* exit if NULL pointer in R0 */
- push {r3} /* Need to keep couter for final value adjustment */
- mov r2, #0 /* Initialize Cummulative value */
-2: bl ascii2byte
- orr r2, r0, r2, ror #8 /* Merge current byte with cummulative value */
- mov r0, r1 /* Copy next char pointer to R0 for next byte */
- subs r3, r3, #1
- bne 2b
- /* Cummulative value done, need to rotate it into the correct position for return value */
- pop {r3} /* retrieve counter */
- rsb r3, r3, #5 /* 5 - count */
- lsl r3, r3, #3 /* [(5-count) x 8] bits to rotate */
- mov r0, r2, ror r3 /* Copy it to R0 as return value */
-
-_exit_conv_ascii2byte_le:
- ldmfd sp!, {r2,r3, pc} /* return hex value in R0 */
-
-
-
-
/* Debugger Communications Routines
* It does not make sense to pass information from the Debugger Module to the Comm. link one character
* at a time, especially if we're not using a native serial interface (e.g., EIA-232). Consequently
@@ -577,24 +160,26 @@ dbg__comm_init:
str r0, [r1, #NXTCOMMCHANNEL_OFFSET] /* Clear NXT Channel on INIT */
ldmfd sp!, {pc}
-_dbg__comm_readbuf_reset:
#ifdef __NXOS__
+_dbg__comm_readbuf_reset:
stmfd sp!, {lr}
ldr r0, =debug_InCommBuf
mov r1, #USB_BUFSIZE
- ldr r2, =nx_usb_read
+ ldr r2, =fantom_init
mov lr, pc
bx r2
+#if 0
ldr r1, =debug_nxtMsgLength
mov r0, #0
str r0, [r1] /* Clear NxOS Received Message Length */
+#endif
ldmfd sp!, {pc}
#else
+_dbg__comm_readbuf_reset:
ldr r1, =debug_nxtMsgLength
mov r0, #0
str r0, [r1] /* Clear NXT Received Message Length */
bx lr
-#endif
.global dbg__copyNxtDebugMsg
/* dbg__copyNxtDebugMsg
@@ -616,6 +201,7 @@ dbg__copyNxtDebugMsg:
*/
_dbg_memcpy r1, r0, r2, r3 /* r3: scratch register */
bx lr
+#endif
/* _dbg_reset_msgTxBuf_AppendPtr
* Internal variable to reset pointers.
@@ -638,7 +224,7 @@ _dbg_reset_msgTxBuf_AppendPtr:
_dbg__commHasMsg:
stmfd sp!, {lr}
#ifdef __NXOS__
- ldr r2, =nx_usb_data_read
+ ldr r2, =nx_usb_fantom_data_read
mov lr,pc
bx r2 /* Number of bytes read in R0 */
/* Note: The return value in R0 is the Comm Buffer Size, includes NXT Direct Command Header */
@@ -662,7 +248,8 @@ _dbg__commHasMsg:
b _exit_dbg__commHasMsg
invalid_CommMsg:
- mov r0, #0
+ bl _dbg__comm_readbuf_reset /* Next Comm telegram transaction */
+ mov r0, #0
_exit_dbg__commHasMsg:
ldmfd sp!, {pc}
@@ -837,9 +424,11 @@ _dbg__sendCommMsg:
mov r4, r0 /* Keep Comm Buffer length in R4 */
#ifdef __NXOS__
/* Check USB bus status, transmit message if possible */
- bl nx_usb_is_connected /* R0 = True if USB is ready */
- cmp r0, #TRUE
- bne _exit_dbg__sendCommMsg
+ bl nx_usb_is_connected /* R0 = TRUE (#1) if USB is ready */
+ teq r0, #0 /* FALSE == #0;
+ We can't check for True condition since values
+ used by C-Compiler & ARMDEBUG are different */
+ beq _dbg__sendCommMsgFailed
/* Actual transmission (blocking) */
ldr r0, =debug_OutCommBuf /* data pointer parameter */
@@ -847,9 +436,11 @@ _dbg__sendCommMsg:
bl nx_usb_write
1: bl nx_usb_data_written /* R0 = True if data has been sent */
- cmp r0, #TRUE
+ teq r0, #0 /* FALSE == #0;
+ We can't check for True condition since values
+ used by C-Compiler & ARMDEBUG are different */
/* FIXME: implement timeout */
- bne 1b /* Busy Wait Loop */
+ beq 1b /* Busy Wait Loop */
#else
ldr r0, =debug_nxtCommChannel
ldr r0, [r0] /* Get Channel Enum */
diff --git a/AT91SAM7S256/armdebug/Debugger/debug_hexutils.S b/AT91SAM7S256/armdebug/Debugger/debug_hexutils.S
new file mode 100644
index 0000000..d54445b
--- /dev/null
+++ b/AT91SAM7S256/armdebug/Debugger/debug_hexutils.S
@@ -0,0 +1,457 @@
+/** @file debug_hexutils.S
+ * @brief GDB hexadecimal conversion utility routines
+ *
+ */
+
+/* Copyright (C) 2007-2011 the NxOS developers
+ *
+ * Module Developed by: TC Wan <tcwan@cs.usm.my>
+ *
+ * See AUTHORS for a full list of the developers.
+ *
+ * See COPYING for redistribution license
+ *
+ */
+
+
+#define __ASSEMBLY__
+
+#include "debug_internals.h"
+
+.data
+.align 4
+
+hex2char_lut:
+ .ascii "0123456789ABCDEF"
+
+/* Macros
+ */
+
+
+/* _hex2char_lut
+ * Internal routine to intialize the LUT address pointer
+ */
+ .macro _hex2char_lut addrptr
+ ldr \addrptr, =hex2char_lut
+ .endm
+
+/* _hex2char_cont
+ * Internal routine that assumes that the LUT has been loaded.
+ * This macro accepts a byte sized hex value as a parameter register(7:0) and returns the
+ * ASCII equivalent in in the same register(7:0)
+ * The second parameter is the LUT address pointer register to use (assumed to be initialized)
+ * WARNING: Assumes that the value in register is sanity checked before invoking macro
+ */
+ .macro _hex2char_cont reg, addrptr
+ ldrb \reg, [\addrptr, \reg]
+ .endm
+
+/* _hex2char
+ * This macro accepts a byte sized hex value as a parameter register(7:0) and returns the
+ * ASCII equivalent in in the same register(7:0)
+ * The second parameter is the LUT address pointer register to use (register content is destroyed)
+ * WARNING: Assumes that the value in register is sanity checked before invoking macro
+ */
+ .macro _hex2char reg, addrptr
+ _hex2char_lut \addrptr
+ _hex2char_cont \reg, \addrptr
+ .endm
+
+/* _char2hex
+ * This macro accepts an ASCII char as a parameter register(7:0) and returns the
+ * equivalent byte sized hex value in in the same register(7:0)
+ * WARNING: Assumes that the char in register is a valid hex char before invoking macro
+ */
+ .macro _char2hex reg
+ cmp \reg, #'A' /* If Alpha */
+ bichs \reg, \reg, #ASCII_LOWER2UPPER_MASK /* Convert to Uppercase */
+ subhs \reg, \reg, #7 /* Adjustment to allow for subtraction with 0x30 */
+ sub \reg, \reg, #0x30 /* get final hex value */
+ .endm
+
+
+.code 32
+.text
+.align 4
+
+
+/* Utility Routines
+ * GDB requires command parameters to be specified as Big Endian values.
+ * However, the read/write register command expect the register contents to be specified in target byte order.
+ * Hence we need both versions of multibyte conversion routines for word sized values.
+ */
+
+/* hex2char
+ * This routine accepts a byte sized hex value in R0(7:0) and returns the
+ * ASCII equivalent in R0(7:0)
+ */
+ .global hex2char
+
+hex2char:
+ stmfd sp!, {r1,lr}
+ and r0, #NIBBLE0 /* make sure that input is sane */
+ _hex2char r0, r1
+ ldmfd sp!, {r1,pc}
+
+/* char2hex
+ * This routine accepts an ASCII character in R0(7:0) and returns the
+ * equivalent byte sized hex value in R0(7:0).
+ * It accepts lowercase and uppercase ASCII Hex char inputs.
+ * Invalid inputs return -1 as the value
+* On entry:
+ * R0: ASCII character
+ * On exit:
+ * R0: Hex value
+ */
+ .global char2hex
+
+char2hex:
+ and r0, r0, #BYTE0 /* make sure that input is sane */
+ cmp r0, #'0'
+ blo char2hex_error
+ cmp r0, #'9'
+ bls perform_char2hex
+ cmp r0, #'A'
+ blo char2hex_error
+ cmp r0, #'F'
+ bls perform_char2hex
+ cmp r0, #'a'
+ blo char2hex_error
+ cmp r0, #'f'
+ bhi char2hex_error
+ /* Validated Hex Char */
+perform_char2hex:
+ _char2hex r0 /* Return hex value in R0 */
+ bx lr
+
+char2hex_error:
+ mov r0, #-1 /* Set Return value to Error value */
+ bx lr
+
+/* byte2ascii_cont
+ * (Shared routine, does not perform sanity checks)
+ * On entry:
+ * R0: ASCII buffer pointer
+ * R1[7:0]: byte value
+ * On exit:
+ * R0: Address of next empty char slot in buffer
+ * R1: Destroyed
+ *
+ * This routine accepts an ASCII buffer pointer in R0 and a byte value in R1,
+ * and stores the ASCII equivalent byte value in the buffer pointed to by R0.
+ * Note: On return, R0 points to next empty char slot in buffer
+ */
+byte2ascii_cont:
+ stmfd sp!, {r2,r3,r4, lr}
+ lsl r2, r1, #24 /* Keep copy of input byte value R1[7:0], shifted to MSB R2[31:24] */
+ mov r4, #2 /* Loop counter */
+ _hex2char_lut r3 /* initialize LUT pointer */
+1: ror r2, r2, #28 /* Rotate MSNibble R2[31:28] into LSNibble position R2[3:0] */
+ and r1, r2, #NIBBLE0 /* Mask out everything else, store Nibble in R1 */
+ _hex2char_cont r1, r3 /* Convert nibble to ASCII char */
+ strb r1, [r0], #1
+ subs r4, r4, #1 /* decrement loop counter */
+ bne 1b
+ ldmfd sp!, {r2,r3,r4, pc}
+
+/* byte2ascii
+ * On entry:
+ * R0: ASCII buffer pointer
+ * R1[7:0]: Byte value
+ * On exit:
+ * R0: Address of next empty char slot in buffer
+ * R1: Original Address of Buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0 and a byte value in R1,
+ * and stores the ASCII equivalent byte value in the buffer pointed to by R0.
+ * Note: On return, R0 points to the next empty char slot in buffer
+ */
+ .global byte2ascii
+
+byte2ascii:
+ stmfd sp!, {r0, lr} /* Keep ASCII buffer pointer */
+ and r1, #BYTE0 /* sanitize input */
+ bl byte2ascii_cont
+ ldmfd sp!, {r1, pc} /* return original string pointer in R1 */
+
+/* halfword2ascii_be
+ * Big Endian version of halfword2ascii conversion routine
+ * On entry:
+ * R0: ASCII buffer pointer
+ * R1[15:0]: Halfword value
+ * On exit:
+ * R0: Address of next empty char slot in buffer
+ * R1: Original Address of Buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0 and a halfword value in R1,
+ * and stores the ASCII equivalent halfword value in the buffer pointed to by R0.
+ * Note: On return, R0 points to the next empty char slot in buffer
+ */
+ .global halfword2ascii_be
+halfword2ascii_be:
+ stmfd sp!, {r0,r2,r3, lr} /* Keep ASCII buffer pointer */
+ mov r3, #2 /* Loop Counter */
+ mov r2, r1, lsl #16 /* copy of input halfword value R1[15:0], shifted to MSH R2[31:16] */
+ b _conv_byte2ascii_be /* goto Byte conversion loop */
+
+/* halfword2ascii_le
+ * Little Endian version of halfword2ascii conversion routine
+ * On entry:
+ * R0: ASCII buffer pointer
+ * R1[15:0]: Halfword value
+ * On exit:
+ * R0: Address of next empty char slot in buffer
+ * R1: Original Address of Buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0 and a halfword value in R1,
+ * and stores the ASCII equivalent halfword value in the buffer pointed to by R0.
+ * Note: On return, R0 points to the next empty char slot in buffer
+ */
+ .global halfword2ascii_le
+halfword2ascii_le:
+ stmfd sp!, {r0,r2,r3, lr} /* Keep ASCII buffer pointer */
+ mov r3, #2 /* Loop Counter */
+ b _conv_byte2ascii_le /* goto Byte conversion loop */
+
+
+/* word2ascii_be
+ * Big Endian version of word2ascii conversion routine
+ * On entry:
+ * R0: ASCII buffer pointer
+ * R1[31:0]: Word value
+ * On exit:
+ * R0: Address of next empty char slot in buffer
+ * R1: Original Address of Buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0 and a word value in R1,
+ * and stores the ASCII equivalent word value in the buffer pointed to by R0.
+ * Note: On return, R0 points to the next empty char slot in buffer
+ */
+ .global word2ascii_be
+word2ascii_be:
+ stmfd sp!, {r0,r2,r3, lr} /* Keep ASCII buffer pointer */
+ mov r2, r1 /* copy of input word value R1[31:0] */
+ mov r3, #4 /* Loop Counter */
+
+ /* Fall through to byte coversion loop */
+
+
+/* Big Endian Multibyte Convert: Rotate then convert */
+_conv_byte2ascii_be:
+ ror r2, r2, #24 /* Rotate MSB R2[31:24] into LSB position R2[7:0] */
+ and r1, r2, #BYTE0 /* Copy byte value in R2[7:0] into R1 */
+ bl byte2ascii_cont /* R0: next ASCII buffer location pointer, R1: destroyed */
+ subs r3, r3, #1
+ bne _conv_byte2ascii_be
+ ldmfd sp!, {r1,r2,r3, pc}
+
+/* word2ascii_le
+ * Little Endian version of word2ascii conversion routine
+ * On entry:
+ * R0: ASCII buffer pointer
+ * R1[31:0]: Word value
+ * On exit:
+ * R0: Address of next empty char slot in buffer
+ * R1: Original Address of Buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0 and a word value in R1,
+ * and stores the ASCII equivalent word value in the buffer pointed to by R0.
+ * Note: On return, R0 points to the next empty char slot in buffer
+ */
+ .global word2ascii_le
+word2ascii_le:
+ stmfd sp!, {r0,r2,r3, lr} /* Keep ASCII buffer pointer */
+ mov r2, r1 /* copy of input word value R1[31:0] */
+ mov r3, #4 /* Loop Counter */
+
+ /* Fall through to byte coversion loop */
+
+/* Little Endian Multibyte Convert: Convert then rotate */
+_conv_byte2ascii_le:
+ and r1, r2, #BYTE0 /* Copy byte value in R2[7:0] into R1 */
+ bl byte2ascii_cont /* R0: next ASCII buffer location pointer, R1: destroyed */
+ ror r2, r2, #8 /* Rotate LSB+1 R2[15:8] into LSB position R2[7:0] */
+ subs r3, r3, #1
+ bne _conv_byte2ascii_le
+ ldmfd sp!, {r1,r2,r3, pc}
+
+
+/* ascii2hex_varlen_be
+ * Big Endian version of ascii2hex_varlen conversion routine
+ * (There is no Little Endian Version)
+ * On entry:
+ * R0: ASCII buffer pointer
+ * On exit:
+ * R0: Hex value
+ * R1: Address of next char slot in buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0,
+ * and returns the hex value in R0 for up to 8 Hex characters.
+ * Note: On return, R1 points to the ASCII buffer location after the hex value chars.
+ */
+ .global ascii2hex_varlen_be
+
+ascii2hex_varlen_be:
+ stmfd sp!, {r2,r3, lr}
+ mov r3, #CMD_REG_REGPARAMLEN /* Set max count to 8 (Max Register size) */
+ mov r1, r0 /* Use R1 as ASCII buffer pointer */
+ mov r2, #0 /* Initialize Cummulative Results */
+2: ldrb r0, [r1] /* Load ASCII char for Hex Value */
+ bl char2hex /* on return, hex value in R0, -1 for error */
+ cmp r0, #-1
+ beq _exit_ascii2hex_varlen
+ orr r2, r0, r2, lsl #4 /* combined byte value */
+ subs r3, r3, #1 /* Decrement Counter */
+ add r1, r1, #1 /* Go to next char slot */
+ bne 2b
+_exit_ascii2hex_varlen:
+ mov r0, r2 /* Return results in R0 */
+ ldmfd sp!, {r2,r3, pc}
+
+
+/* ascii2byte
+ * On entry:
+ * R0: ASCII buffer pointer
+ * On exit:
+ * R0[7:0]: Byte value
+ * R1: Address of next char slot in buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0,
+ * and returns the byte value in R0[7:0].
+ * Note: On return, R1 points to the ASCII buffer location after the current 2 chars.
+ * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
+ * otherwise it will return invalid results.
+ */
+ .global ascii2byte
+
+ascii2byte:
+ stmfd sp!, {r2, lr}
+ mov r1, r0 /* Use R1 as ASCII buffer pointer */
+ ldrb r0, [r1], #1 /* Load ASCII char for MSN */
+ bl char2hex /* on return, hex value in R0, -1 for error (ignored) */
+ mov r2, r0, lsl #4 /* Intermediate Results register */
+ ldrb r0, [r1], #1 /* Load ASCII char for LSN */
+ bl char2hex /* on return, hex value in R0, -1 for error (ignored) */
+ orr r0, r2, r0 /* combined byte value */
+ ldmfd sp!, {r2, pc}
+
+/* ascii2halfword_be
+ * Big Endian version of ascii2halfword conversion routine
+ * On entry:
+ * R0: ASCII buffer pointer
+ * On exit:
+ * R0[15:0]: Halfword value
+ * R1: Address of next char slot in buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0,
+ * and returns the Halfword value in R0[15:0].
+ * Note: On return, R1 points to the ASCII buffer location after the current 4 chars.
+ * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
+ * otherwise it will return invalid results.
+ */
+ .global ascii2halfword_be
+
+ascii2halfword_be:
+ stmfd sp!, {r2,r3, lr}
+ mov r3, #2 /* Loop counter */
+ b _conv_ascii2byte_be
+
+/* ascii2halfword_le
+ * Little Endian version of ascii2halfword conversion routine
+ * On entry:
+ * R0: ASCII buffer pointer
+ * On exit:
+ * R0[15:0]: Halfword value
+ * R1: Address of next char slot in buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0,
+ * and returns the Halfword value in R0[15:0].
+ * Note: On return, R1 points to the ASCII buffer location after the current 4 chars.
+ * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
+ * otherwise it will return invalid results.
+ */
+ .global ascii2halfword_le
+
+ascii2halfword_le:
+ stmfd sp!, {r2,r3, lr}
+ mov r3, #2 /* Loop counter */
+ b _conv_ascii2byte_le
+
+
+/* ascii2word_be
+ * Big Endian version of ascii2word conversion routine
+ * On entry:
+ * R0: ASCII buffer pointer
+ * On exit:
+ * R0[31:0]: Word value
+ * R1: Address of next char slot in buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0,
+ * and returns the word value in R0[31:0].
+ * Note: On return, R1 points to the ASCII buffer location after the current 8 chars.
+ * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
+ * otherwise it will return invalid results.
+ */
+ .global ascii2word_be
+
+ascii2word_be:
+ stmfd sp!, {r2,r3, lr}
+ mov r3, #4 /* Loop counter */
+
+ /* Fall through to byte coversion loop */
+
+_conv_ascii2byte_be:
+ teq r0, #0
+ beq _exit_conv_ascii2byte_be /* exit if NULL pointer in R0 */
+ mov r2, #0 /* Initialize Cummulative value */
+2: bl ascii2byte
+ orr r2, r0, r2, lsl #8 /* Merge current byte with cummulative value */
+ mov r0, r1 /* Copy next char pointer to R0 for next byte */
+ subs r3, r3, #1
+ bne 2b
+ mov r0, r2 /* Copy it to R0 as return value */
+
+_exit_conv_ascii2byte_be:
+ ldmfd sp!, {r2,r3, pc} /* return hex value in R0 */
+
+/* ascii2word_le
+ * Litle Endian version of ascii2word conversion routine
+ * On entry:
+ * R0: ASCII buffer pointer
+ * On exit:
+ * R0[31:0]: Word value
+ * R1: Address of next char slot in buffer
+ *
+ * This routine accepts an ASCII buffer pointer in R0,
+ * and returns the word value in R0[31:0].
+ * Note: On return, R1 points to the ASCII buffer location after the current 8 chars.
+ * WARNING: This routine assumes that the input buffer was sanitized and contains valid Hex chars,
+ * otherwise it will return invalid results.
+ */
+ .global ascii2word_le
+
+ascii2word_le:
+ stmfd sp!, {r2,r3, lr}
+ mov r3, #4 /* Loop counter */
+
+ /* Fall through to byte coversion loop */
+
+_conv_ascii2byte_le:
+ teq r0, #0
+ beq _exit_conv_ascii2byte_le /* exit if NULL pointer in R0 */
+ push {r3} /* Need to keep couter for final value adjustment */
+ mov r2, #0 /* Initialize Cummulative value */
+2: bl ascii2byte
+ orr r2, r0, r2, ror #8 /* Merge current byte with cummulative value */
+ mov r0, r1 /* Copy next char pointer to R0 for next byte */
+ subs r3, r3, #1
+ bne 2b
+ /* Cummulative value done, need to rotate it into the correct position for return value */
+ pop {r3} /* retrieve counter */
+ rsb r3, r3, #5 /* 5 - count */
+ lsl r3, r3, #3 /* [(5-count) x 8] bits to rotate */
+ mov r0, r2, ror r3 /* Copy it to R0 as return value */
+
+_exit_conv_ascii2byte_le:
+ ldmfd sp!, {r2,r3, pc} /* return hex value in R0 */
+
diff --git a/AT91SAM7S256/armdebug/Debugger/debug_internals.h b/AT91SAM7S256/armdebug/Debugger/debug_internals.h
index 82c0e38..c7f5d16 100644
--- a/AT91SAM7S256/armdebug/Debugger/debug_internals.h
+++ b/AT91SAM7S256/armdebug/Debugger/debug_internals.h
@@ -88,6 +88,9 @@
#define CMD_REG_SETONE_MINPARAMLEN (2 + CMD_REG_REGPARAMLEN)
#define CMD_REG_SETONE_MAXPARAMLEN (3 + CMD_REG_REGPARAMLEN)
#define CMD_REG_SETALL_PARAMLEN (CMD_REG_NUMREGS*CMD_REG_REGPARAMLEN)
+#define CMD_KILL_PARAMLEN 0
+#define CMD_DETACH_PARAMLEN 0
+
/*@}*/
/** @name Debug Memory Command Constants.
diff --git a/AT91SAM7S256/armdebug/Debugger/debug_runlooptasks.S b/AT91SAM7S256/armdebug/Debugger/debug_runlooptasks.S
index fd17412..48b7e5a 100644
--- a/AT91SAM7S256/armdebug/Debugger/debug_runlooptasks.S
+++ b/AT91SAM7S256/armdebug/Debugger/debug_runlooptasks.S
@@ -1,4 +1,4 @@
-/** @file debug_runloop.S
+/** @file debug_runlooptasks.S
* @brief GDB Server platform Run Loop
*
*/
@@ -13,6 +13,11 @@
*
*/
+/*
+ * This file contains platform specific code.
+ * This include ABORT Mode Debugger Run Loop operation,
+ * as well as Debugger Interfacing code to the platform code.
+ */
/*
* The Debugger has to implement a Run Loop in ABORT mode
@@ -48,11 +53,10 @@
* ^-------v v-------^
*
* The Platform will invoke dbg__bkpt_init() after hardware and system initialization,
- * before entering the Platform Run Loop. This switches processing over to the
- * Debugger Run Loop which will wait for the GDB command to Go/Step/Cont before
- * returning control to the Platform Run Loop.
+ * before entering the Platform Run Loop. This configures the Debugger, but does not
+ * invoke the Debugger Run Loop unless a Manual Breakpoint is found in the platform code.
*
- * Subsequently, Debugger Run Loop will be triggered by Breakpoints, or
+ * Subsequently, the Debugger Run Loop will be triggered by Breakpoints, or
* when the communications subsystem receives a GDB Command.
*
* The Debugger Run Loop is actually dbg__bkpt_waitCMD(), this file contains
@@ -65,17 +69,31 @@
*/
#define __ASSEMBLY__
- .global dbg__runloopTasks
+#include "debug_internals.h"
+#include "debug_macros.h"
+#include "debug_stub.h"
+ .code 32
+ .align 4
+ .global dbg__runloopTasks
+ .global dbg__reboot
#ifdef __NXOS__
-/* NxOS Run Loop */
+/****************************************************************************
+ *
+ * NxOS Run Loop
+ *
+ ****************************************************************************/
dbg__runloopTasks:
/* Currently, there's nothing that needs to be done in the NxOS Run Loop */
bx lr
#else
-/* NXT Firmware Run Loop */
+/****************************************************************************
+ *
+ * NXT Firmware Run Loop
+ *
+ ****************************************************************************/
.extern cCommCtrl
dbg__runloopTasks:
@@ -85,3 +103,143 @@ dbg__runloopTasks:
/* OSWatchdogWrite is a NULL function in the NXT Firmware?! */
pop {pc}
#endif
+
+#ifdef __NXOS__
+ .extern nx_core_reset
+/****************************************************************************
+ *
+ * NxOS Reboot Routine
+ *
+ ****************************************************************************/
+ dbg__reboot:
+ b nx_core_reset /* Reboot Brick, won't return */
+
+#else
+/****************************************************************************
+ *
+ * NXT Firmware Reboot Routine
+ *
+ ****************************************************************************/
+dbg__reboot:
+ bx lr
+#endif
+
+
+#ifdef __NXOS__
+/****************************************************************************
+ *
+ * GDB Debugger Invocation Routine for NxOS
+ *
+ ****************************************************************************/
+ .code 32
+ .align 4
+
+ .extern dbg__install_singlestep
+ .extern dbg__activate_singlestep
+ .extern irq_stack_frame_address
+ .global nxos__handleDebug
+/* nxos__handleDebug
+ * Prepare to switch to Debug Mode
+ * int nxos__handleDebug(comm_chan_t channel);
+ *
+ * This routine is called from NxOS Fantom library to setup
+ * Single Step Breakpoint in preparation for Debugger invocation if we're in
+ * normal execution mode.
+ *
+ * It returns to complete the IRQ handling normally, after which the single
+ * step breakpoint will be triggered, and the incoming GDB message will then
+ * be processed in the dbg__bkpt_waitCMD() loop.
+ *
+ * If we're in Debugger Mode already, then just return and let the
+ * dbg__bkpt_waitCMD() loop handle it normally.
+ *
+ * If we're operating in normal NxOS mode, return True (!0)
+ * If we're already in Debugger Mode, return False (0)
+ */
+nxos__handleDebug:
+ push {lr}
+ /* This routine is called from nx__irq_handler() via fantom_filter_packet().
+ * The operating mode should already have been configured by the IRQ interrupt handler.
+ *
+ * The IRQ Stack Frame Pointer will contains the LR and SPSR from the topmost interrupted task
+ * if it is non-zero (NxOS supports nested IRQs)
+ */
+
+ ldr r3, =debug_nxtCommChannel
+ str r0, [r3] /* Keep track of which communications link was used (USB/Bluetooth) */
+
+ /* Check our current operating mode */
+ mov r0, #FALSE /* Setup Default Return value (False) */
+ mrs r3, cpsr /* Copy CPSR to r3 */
+ and r3, r3, #CPSR_MODE /* Get current mode */
+ teq r3, #MODE_ABT /* Are we in Abort (Debug) mode? */
+ beq exit_nxos__handleDebug /* Yes, return False */
+
+ /* Retrieve ISR Return Address */
+ ldr r3, =irq_stack_frame_address
+ ldr r3, [r3] /* Get Interrupt Stack Pointer */
+ teq r3, #0
+ beq exit_nxos__handleDebug /* NULL Interrupt Stack Frame Pointer, exit (status: False) */
+
+nxos_switch2debug:
+ /* Since the Interrupt Stack Frame Pointer points to the top of the stack frame,
+ * we'll have to use Load Empty Ascending Stack (LDMEA == LDMDB) to access the variables
+ */
+ ldmdb r3, {r1,r2} /* R1: LR, R2: SPSR */
+ tst r2, #CPSR_THUMB /* Check for Thumb Mode */
+ orrne r1, r1, #1 /* Configure for Thumb Single Step Breakpoint */
+ bl dbg__install_singlestep /* Setup Single Step, next instruction address returned in r1 */
+ bl dbg__activate_singlestep
+ mov r0, #TRUE /* We're going to switch to Debug Mode (via Single Step Breakpoint) */
+
+exit_nxos__handleDebug:
+ pop {r1}
+ bx r1 /* In case we have Interworking from different caller mode */
+
+#else
+
+/****************************************************************************
+ *
+ * GDB Debugger Invocation Routine for NXT Firmware
+ *
+ ****************************************************************************/
+ .code 16
+ .align 2
+
+ .extern dbg__copyNxtDebugMsg
+ .global cCommHandleDebug
+ .thumb_func
+/* cCommHandleDebug
+ * Switch Mode to Debugger.
+ * Used by NXT Firmware only
+ *
+ * UWORD cCommHandleDebug(UBYTE *pInBuf, UBYTE CmdBit, UWORD MsgLength);
+ *
+ * This routine is called from cCommInterprete either in normal operation mode (SVC)
+ * or else when we're in debug mode (ABORT) which uses the cCommCtrl() routine to handle
+ * I/O with the Host.
+ *
+ * On entry, the message is copied from the NXT buffer into our own buffers.
+ *
+ * If this is accessed from normal operation mode, we need to switch mode to
+ * ABORT mode to handle the incoming message using a Manual Breakpoint instruction.
+ * When DEBUG is exited, the execution resumes from the instruction following the Breakpoint.
+ */
+cCommHandleDebug:
+/* Arg Registers are not preserved since this is invoked explicitly */
+ push {lr} /* store arg registers */
+ bl dbg__copyNxtDebugMsg /* setup Debugger Message Buffers, validate input, CPSR returned in R0 */
+ _dbg_getmode r0 /* Get Debug Mode */
+ cmp r0, #(TRUE & BYTE0) /* Confine it to Byte size */
+
+ /* If Debug Mode is TRUE, this means that we're already running the Debugger */
+ beq _cCommHandleDebug_cont
+ /* Else, we're in normal operation mode (SVC), or other mode (??!) and need to force a switch to Debug mode */
+ dbg__bkpt_thumb
+_cCommHandleDebug_cont:
+ mov r0, #0 /* FIXME: Return Status */
+ pop {r1} /* Can't Pop LR directly */
+ bx r1 /* Safe code: actually we should be able to Pop PC since the caller is Thumb Mode */
+
+ .ltorg
+#endif
diff --git a/AT91SAM7S256/armdebug/Debugger/debug_stub.S b/AT91SAM7S256/armdebug/Debugger/debug_stub.S
index 4e26da3..b987d7c 100644
--- a/AT91SAM7S256/armdebug/Debugger/debug_stub.S
+++ b/AT91SAM7S256/armdebug/Debugger/debug_stub.S
@@ -79,6 +79,8 @@
* MAA..AA,LLLL:bb..bb
* Write LLLL bytes at address AA.AA OK or ENN
*
+ * D Detach (equivalent to continue Ack Only
+ * at current address)
* c Resume at current address SNN ( signal NN)
* cAA..AA Continue at address AA..AA SNN
*
@@ -142,6 +144,21 @@
#include "debug_internals.h"
#include "debug_macros.h"
+ /* Hexutils function references */
+ .extern hex2char
+ .extern char2hex
+ .extern byte2ascii
+ .extern halfword2ascii_be
+ .extern halfword2ascii_le
+ .extern word2ascii_be
+ .extern word2ascii_le
+ .extern ascii2hex_varlen_be
+ .extern ascii2byte
+ .extern ascii2halfword_be
+ .extern ascii2halfword_le
+ .extern ascii2word_be
+ .extern ascii2word_le
+
/* Macro definitions */
/* _check_msgseparator
@@ -196,6 +213,12 @@ debug_InMsgBuf:
debug_OutMsgBuf:
.space MSGBUF_SIZE,0
+ /* Make Debugger State accessible from other modules */
+ .global debug_state
+ .global debug_mode
+ .global debug_bkpt_type
+ .global debug_curr_breakpoint
+
debug_state:
.byte 0x0 /* dbg_state_t variable */
debug_mode:
@@ -227,7 +250,7 @@ debug_OkResponse:
/* The CmdIndexTable and CmdJumpTable must be kept in sync */
debug_cmdIndexTable:
- .byte 'g','G','p','P','m','M','c','s','k','z','Z','?','q','Q',0
+ .byte 'g','G','p','P','m','M','D','c','s','k','z','Z','?','q','Q',0
/* Command Handlers
* On entry:
@@ -241,9 +264,15 @@ debug_cmdJumpTable:
.word _dbg__cmd_SetOneReg /* 'P' */
.word _dbg__cmd_ReadMem /* 'm' */
.word _dbg__cmd_WriteMem /* 'M' */
+ .word _dbg__cmd_Detach /* 'D' */
.word _dbg__cmd_Continue /* 'c' */
+#ifdef __NXOS__
+ .word _dbg__cmd_Step /* 's' */
+#else
+ /* NXT Firmware does not support Stepping */
.word _dbg__nop /* 's' */
- .word _dbg__nop /* 'k' */
+#endif
+ .word _dbg__cmd_Kill /* 'k' */
.word _dbg__cmd_RemoveBreakpoint /* 'z' */
.word _dbg__cmd_InsertBreakpoint /* 'Z' */
.word _dbg__cmd_Status /* '?' */
@@ -469,99 +498,6 @@ debug_armComplexCCTable:
/* FIXME: The Debugger Stack Frame is probably not 100% consistent with the order that
GDB expects in the g/G messages. CSPR is probably located above R15 */
-#ifdef __NXOS__
-/****************************************************************************
- *
- * GDB Debugger Invocation Routine for NxOS
- *
- ****************************************************************************/
- .code 32
- .align 4
- .global nxos__handleDebug
-/* nxos__handleDebug
- * Prepare to switch to Debug Mode
- * int nxos__handleDebug(unsigned char *msg, comm_chan_t channel, long len, void *isrRetAddr);
- *
- * This routine is called from NxOS Fantom library to setup
- * Single Step Breakpoint and copy Incoming Message to
- * Debugger Message Buffers in preparation for Debugger invocation.
- *
- * If we're operating in normal NxOS mode, return True (!0)
- * If we're already in Debugger Mode, return False (0)
- */
-nxos__handleDebug:
- push {r4, lr}
- /* When called, NxOS is in ISR servicing mode (MODE_IRQ) */
- /* R0-R3 has received message related parameters */
- mov r4, r3 /* Keep isrRetAddr in R4 */
- mrs r3, spsr /* Copy SPSR to r3 */
- and r3, r3, #CPSR_MODE /* Get previous mode */
- teq r3, #MODE_ABT /* Are we in Abort (Debug) mode? */
- moveq r0, #FALSE
- beq exit_nxos__handleDebug /* Yes, return False */
-
-_nxos_switch2debug:
- bl dbg__copyNxtDebugMsg /* setup Debugger Message Buffers, validate input, CPSR returned in R0 */
-
- /* Retrieve ISR Return Address */
- mrs r3, spsr /* Copy SPSR to r3 */
- tst r3, #CPSR_THUMB /* Check for Thumb Mode */
- sub r1, r4, #4 /* R3 (isrRetAddr) has PC + 4, need to setup Single Step Breakpoint at PC */
- orrne r1, r1, #1 /* Configure for Thumb Single Step Breakpoint */
- bl _dbg__install_singlestep /* Setup Single Step, next instruction address returned in r1 */
- bl _dbg__activate_singlestep
- mov r0, #TRUE /* We're going to switch to Debug Mode */
-exit_nxos__handleDebug:
- pop {r4, lr}
- mov r1, lr /* Safe code: Thumb mode can't access lr */
- bx r1 /* In case we have Interworking from different caller mode */
-#endif
-
-#ifndef __NXOS__
-/****************************************************************************
- *
- * GDB Debugger Invocation Routine for NXT Firmware
- *
- ****************************************************************************/
- .code 16
- .align 2
- .global cCommHandleDebug
- .thumb_func
-/* cCommHandleDebug
- * Switch Mode to Debugger.
- * Used by NXT Firmware only
- *
- * UWORD cCommHandleDebug(UBYTE *pInBuf, UBYTE CmdBit, UWORD MsgLength);
- *
- * This routine is called from cCommInterprete either in normal operation mode (SVC)
- * or else when we're in debug mode (ABORT) which uses the cCommCtrl() routine to handle
- * I/O with the Host.
- *
- * On entry, the message is copied from the NXT buffer into our own buffers.
- *
- * If this is accessed from normal operation mode, we need to switch mode to
- * ABORT mode to handle the incoming message using a Manual Breakpoint instruction.
- * When DEBUG is exited, the execution resumes from the instruction following the Breakpoint.
- */
-cCommHandleDebug:
-/* Arg Registers are not preserved since this is invoked explicitly */
- push {lr} /* store arg registers */
- bl dbg__copyNxtDebugMsg /* setup Debugger Message Buffers, validate input, CPSR returned in R0 */
- _dbg_getmode r0 /* Get Debug Mode */
- cmp r0, #(TRUE & BYTE0) /* Confine it to Byte size */
-
- /* If Debug Mode is TRUE, this means that we're already running the Debugger */
- beq _cCommHandleDebug_cont
- /* Else, we're in normal operation mode (SVC), or other mode (??!) and need to force a switch to Debug mode */
- dbg__bkpt_thumb
-_cCommHandleDebug_cont:
- mov r0, #0 /* FIXME: Return Status */
- pop {r1} /* Can't Pop LR directly */
- bx r1 /* Safe code: actually we should be able to Pop PC since the caller is Thumb Mode */
-
- .ltorg
-#endif
-
/****************************************************************************
*
* GDB Debugger Init and Breakpoint Handler Routines
@@ -607,7 +543,7 @@ _dbg__flush_icache:
*/
dbg__thumb_bkpt_handler:
/* On entry, r0 contains breakpoint index value */
- mov r4, #BKPT16_AUTO_BKPT
+ /* mov r4, #BKPT16_AUTO_BKPT Redundant?! */
and r4, r0, #BKPT16_AUTO_BKPT /* keep AUTO flag value in r4 */
bic r0, r0, #BKPT16_AUTO_BKPT /* mask out AUTO flag */
_dbg_setcurrbkpt_index r0 /* keep current breakpoint index in memory */
@@ -630,7 +566,7 @@ dbg__thumb_bkpt_handler:
*/
dbg__arm_bkpt_handler:
/* On entry, r0 contains breakpoint index value */
- mov r4, #BKPT32_AUTO_BKPT
+ /* mov r4, #BKPT32_AUTO_BKPT Redundant?! */
and r4, r0, #BKPT32_AUTO_BKPT /* keep AUTO flag value in r4 */
bic r0, r0, #BKPT32_AUTO_BKPT /* mask out AUTO flag */
_dbg_setcurrbkpt_index r0 /* keep current breakpoint index in memory */
@@ -648,8 +584,8 @@ dbg__arm_bkpt_handler:
/* b _process_normal_breakpoint */
_process_normal_breakpoint:
- bl _dbg__restore_breakpoints
- bl _dbg__restore_singlestep
+ bl _dbg__restore_breakpoints /* includes restoring single step */
+/* bl _dbg__restore_singlestep */
bl _dbg__clear_singlestep
bl _dbg__flush_icache
b dbg__bkpt_waitCMD
@@ -706,6 +642,8 @@ dbg__bkpt_offset_outofrange:
dbg__bkpt_waitCMD:
/* We enter this code section when a Breakpoint Triggers */
_dbg_setmode TRUE /* Debug Mode = True */
+ msr cpsr_c, #(MODE_ABT) /* Re-enable Interrupts */
+
_dbg_getstate r0
cmp r0, #DBG_CONFIGURED
blo dbg__bkpt_waitCMD_cont /* Not configured yet, don't send Breakpoint Signal Response */
@@ -1233,6 +1171,27 @@ _dbg__cmd_WriteMem:
bne 1b
b __dbg__procCmdOk
+/* _dbg__cmd_Detach
+ * Detach User Program Execution Command Handler
+ * Treat this as being equivalent to 'Continue' without any arguments
+ *
+ * On entry:
+ * r0: parameter buffer pointer (contents after '$' and '<cmdchar>')
+ * <NULL> (No Parameters)
+ * On exit:
+ * r0-r7: destroyed
+ * Note: This routine does not return to caller. Instead it switches
+ * operating mode to UNDEF and returns to previously active program
+ */
+_dbg__cmd_Detach:
+ stmfd sp!, {lr} /* In case unexpected parameters were received */
+ bl __dbg__cmdParamLen
+ teq r1, #CMD_DETACH_PARAMLEN /* Check for correct length */
+ bne __dbg__procCmdParamError /* Unexpected input, report error */
+
+ ldmfd sp!, {lr} /* Cleanup stack, since we won't return to the Debugger Run Loop */
+ b _dbg__cont_check_breakpoint_type /* Continue from current PC */
+
/* _dbg__cmd_Continue
* Continue User Program Execution Command Handler
* Setup breakpoints before resuming execution of program.
@@ -1281,7 +1240,7 @@ _dbg__cont_is_normal_breakpoint:
mov r2, #DBGSTACK_NEXTINSTR_INDEX /* The Next Instruction Pointer for Resume is in index 0 of the Debug Stack */
_setdbgregisterfromindex r2, r0, r1 /* Set Register contents in R0, using index in R2, and scratch register R1 */
bl _dbg_following_instruction_addr /* following instruction address returned in r1 */
- bl _dbg__install_singlestep /* Setup Single Step, next instruction address returned in r1 */
+ bl dbg__install_singlestep /* Setup Single Step, next instruction address returned in r1 */
_dbg_getcurrbkpt_index r0 /* load current breakpoint index in memory */
bl _dbg__activate_autobreakpoint /* pass next instruction address in r1 */
b _dbg__switch2undefmode_withAck
@@ -1294,7 +1253,7 @@ _dbg__cont_is_manual_bkpt_or_address_specified:
* Step User Program Execution Command Handler
* Setup breakpoints before resuming execution of program.
*
- * If Address is specified, update the next instruction address to specified address
+ * If Address is specified, update the next instruction address to specified address
*
* If this is a Normal Breakpoint, then we need to install a Step Breakpoint at next instruction address
* and resume from current (Breakpoint) exception address
@@ -1347,10 +1306,30 @@ _dbg__step_is_manual_bkpt:
_dbg__step_is_manual_bkpt_or_address_specified:
bl _dbg_following_instruction_addr /* following instruction address returned in r1 */
- bl _dbg__install_singlestep /* Setup Single Step, next instruction address returned in r1 */
- bl _dbg__activate_singlestep
+ bl dbg__install_singlestep /* Setup Single Step, next instruction address returned in r1 */
+ bl dbg__activate_singlestep
b _dbg__switch2undefmode_withAck
+/* _dbg__cmd_Kill
+ * Kill User Program Execution Command Handler
+ * Kill Program, this is accomplished by rebooting the Brick
+ *
+ * On entry:
+ * r0: parameter buffer pointer (contents after '$' and '<cmdchar>')
+ * <NULL> (No Parameters)
+ * On exit:
+ * r0-r7: destroyed
+ * Note: This routine does not return to caller. Instead it calls
+ * the relevant system routine to reboot the Brick
+ */
+_dbg__cmd_Kill:
+ stmfd sp!, {lr} /* In case unexpected parameters were received */
+ bl __dbg__cmdParamLen
+ teq r1, #CMD_KILL_PARAMLEN /* Check for correct length */
+ bne __dbg__procCmdParamError /* Unexpected input, report error */
+
+ bl __dbg__procAckOnly /* send Ack to keep GDB server happy */
+ b dbg__reboot /* Goodbye.... */
/* _dbg__proc_brkpt_params
* Process Breakpoint Parameters
@@ -2800,12 +2779,13 @@ _dbg__clear_breakpoints:
blo 3b
ldmfd sp!, {pc}
-/* _dbg__install_singlestep
+ .global dbg__install_singlestep
+/* dbg__install_singlestep
* Install the Single Step Breakpoint
* On entry:
* R1: Instruction Address (31 bits, b0 = THUMB flag)
*/
-_dbg__install_singlestep:
+dbg__install_singlestep:
mov r0, #0
/* b _dbg__install_one_breakpoint */
@@ -2866,10 +2846,11 @@ _dbg__restore_breakpoints:
ldr r5, =_dbg__restore_one_breakpoint
b __dbg__iterate_breakpoint_array
-/* _dbg__activate_singlestep
+ .global dbg__activate_singlestep
+/* dbg__activate_singlestep
* Activate the single step breakpoint to memory
*/
-_dbg__activate_singlestep:
+dbg__activate_singlestep:
mov r0, #0 /* single step breakpoint index */
_index2bkptindex_addr r0, r1 /* Calculate Single Step Breakpoint Entry Address */
ldm r1, {r1, r2} /* r1: Breakpoint Address, r2: Breakpoint Instruction */
@@ -2894,7 +2875,7 @@ _nx_is_arm_bp:
teq r2, r3 /* check that the two instructions are identical */
bne _dbg__breakpoint_invalid_arm
ldr r2, =BKPT32_INSTR /* ARM BKPT instruction */
- and r2, r2, r0 /* Merge Breakpoint index */
+ orr r2, r2, r0 /* Merge Breakpoint index */
str r2, [r1] /* Store it into memory location */
_dbg__breakpoint_invalid_arm:
bx lr
@@ -2904,7 +2885,7 @@ _nx_is_thumb_bp:
teq r2, r3 /* check that the two instructions are identical */
bne _dbg__breakpoint_invalid_thumb
ldr r2, =BKPT16_INSTR /* Thumb BKPT instruction */
- and r2, r2, r0 /* Merge Breakpoint index */
+ orr r2, r2, r0 /* Merge Breakpoint index */
strh r2, [r1] /* Store it into memory location */
_dbg__breakpoint_invalid_thumb:
bx lr
diff --git a/AT91SAM7S256/armdebug/Debugger/debug_stub.h b/AT91SAM7S256/armdebug/Debugger/debug_stub.h
index c5cbeee..a4cbdda 100644
--- a/AT91SAM7S256/armdebug/Debugger/debug_stub.h
+++ b/AT91SAM7S256/armdebug/Debugger/debug_stub.h
@@ -71,7 +71,7 @@ ENUM_END(comm_chan_t)
* !0 if mode switch will happen
* Used by NxOS only
*/
-FUNCDEF int nxos__handleDebug(unsigned char *msg, comm_chan_t channel, long len, void *isrRetAddr);
+FUNCDEF int nxos__handleDebug(comm_chan_t channel);
#endif
#ifndef __NXOS__
@@ -138,7 +138,7 @@ static inline void dbg_breakpoint_thumb(void) { asm volatile (".hword 0xBE7F" /*
.word (BKPT32_INSTR | BKPT32_MANUAL_BKPT)
.endm
-/* dbg__bkpt_arm
+/* dbg__bkpt_thumb
* GDB breakpoint() for Thumb mode
*/
.macro dbg__bkpt_thumb
diff --git a/AT91SAM7S256/armdebug/Debugger/undef_handler.S b/AT91SAM7S256/armdebug/Debugger/undef_handler.S
index f185fbd..11d3cbc 100644
--- a/AT91SAM7S256/armdebug/Debugger/undef_handler.S
+++ b/AT91SAM7S256/armdebug/Debugger/undef_handler.S
@@ -100,8 +100,8 @@ _is_arm:
ldr r2, =dbg__arm_bkpt_handler /* handle BKPT, BKPT index in r0 */
_exit_undef_handler:
and r0, r1, r0 /* Keep index value */
- msr cpsr_c, #(MODE_ABT) /* Configure Abort Mode */
- mov pc, r2 /* Invoke Debugger State (Supervisor Mode) */
+ msr cpsr_c, #(MODE_ABT | CPSR_FIQ | CPSR_IRQ) /* Switch to Abort Mode, Disable Interrupts */
+ mov pc, r2 /* Invoke Debugger */
.global resume_execution
diff --git a/AT91SAM7S256/armdebug/FantomModule/FantomModule.cpp b/AT91SAM7S256/armdebug/FantomModule/FantomModule.cpp
deleted file mode 100644
index b3380f1..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/FantomModule.cpp
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * FantomModule.cp
- * FantomModule
- *
- * Created by tcmac on 01/03/2011.
- * Copyright 2011 TC Wan. All rights reserved.
- *
- * Based on code from Fantom Driver 1.0.2f0 Example
- * Copyright 2006, National Instruments Corporation.
- * All rights reserved. Originated: 10 March 2006
- *
- */
-
-#include <iostream>
-#include <string.h>
-#include "FantomModule.h"
-#include "FantomModulePriv.h"
-
-static PyMethodDef FantomMethods[] = {
- {"finddevices", fantom_finddevices, METH_VARARGS,
- "Discover NXT Devices (BT Discovery)"},
- {"find_bricks", fantom_find_bricks, METH_VARARGS,
- "Find and Create NXT Devices (USB)"},
- {"socket", fantom_socket, METH_VARARGS,
- "Create a Socket for a NXT Brick"},
- {"connect", fantom_connect, METH_VARARGS,
- "Connect the Socket to a NXT Brick"},
- {"send", fantom_send, METH_VARARGS,
- "Send Data via the Socket to a NXT Brick"},
- {"recv", fantom_recv, METH_VARARGS,
- "Receive Data via the Socket from a NXT Brick"},
- {"close", fantom_close, METH_VARARGS,
- "Close the Socket to a NXT Brick"},
- {NULL, NULL, 0, NULL} /* Sentinel */
-};
-
-extern "C" PyMODINIT_FUNC
-initfantom(void)
-{
- (void) Py_InitModule("fantom", FantomMethods);
-}
-
-extern "C" PyObject *fantom_finddevices(PyObject *py_self, PyObject *py_args)
-{
-
- PyObject *list = FantomModule::finddevices(py_self,py_args);
-
- return list; // of resource names
-}
-
-extern "C" PyObject *fantom_find_bricks(PyObject *py_self, PyObject *py_args)
-{
-
- PyObject *list = FantomModule::find_bricks(py_self,py_args);
-
- return list; // of FantomModule objects
-}
-
-extern "C" PyObject *fantom_socket(PyObject *py_self, PyObject *py_args)
-{
-
- ViChar newPasskey[FANTOM_PASSKEY_LEN] = FANTOM_NXT_PASSKEY; // Default Passkey
-
- // FIXME: Retrieve PyObject's proto setting
- const char *proto;
- if (!PyArg_ParseTuple(py_args, "s", &proto))
- return NULL;
- ViBoolean enableBT = strcmp(proto, FANTOM_BT) ? true : false;
-
- // Get new passkey from Python args if specified
-
- // Create a FantomModule object, which has not been connected to an actual NXT yet
- FantomModule *fantomObject;
- fantomObject = new FantomModule;
-
- fantomObject->socket(enableBT, newPasskey); // Internal object setup
-
- // FIXME: Convert fantomObject to PyObject and return.
-
-}
-
-extern "C" PyObject *fantom_connect(PyObject *py_self, PyObject *py_args)
-{
- FantomModule *fantomObject;
- // FIXME: Retrieve FantomObject from PyObject variable
- ViChar resourceName[FANTOM_NXTNAME_LEN];
- ViBoolean success;
-
- success = fantomObject->connect(resourceName);
-}
-
-extern "C" PyObject *fantom_send(PyObject *py_self, PyObject *py_args)
-{
- FantomModule *fantomObject;
- // FIXME: Retrieve FantomObject from PyObject variable
-
- ViByte bufferPtr[FANTOM_DATA_BUFLEN];
- ViUInt32 numberOfBytes;
- ViUInt32 bytesSent;
-
- bytesSent = fantomObject->send(bufferPtr,numberOfBytes);
-}
-
-extern "C" PyObject *fantom_recv(PyObject *py_self, PyObject *py_args)
-{
- FantomModule *fantomObject;
- // FIXME: Retrieve FantomObject from PyObject variable
-
- ViByte bufferPtr[FANTOM_DATA_BUFLEN];
- ViUInt32 numberOfBytes;
- ViUInt32 bytesReceived;
-
- bytesReceived = fantomObject->recv(bufferPtr,numberOfBytes);
-}
-
-extern "C" PyObject *fantom_close(PyObject *py_self, PyObject *py_args)
-{
- FantomModule *fantomObject;
- // FIXME: Retrieve FantomObject from PyObject variable
-
- ViBoolean success = fantomObject->close();
- delete fantomObject;
-
- // Return success/failure
-}
-
-
-// Static method called directly from C
-PyObject *FantomModule::finddevices(PyObject *py_self, PyObject *py_args)
-{
- const char *proto;
- if (!PyArg_ParseTuple(py_args, "s", &proto))
- return NULL;
-
- ViBoolean useBT = strcmp(proto, FANTOM_BT) ? true : false;
-
- PyObject *list = NULL;
-
- nFANTOM100::iNXTIterator* nxtIteratorPtr;
- nFANTOM100::tStatus status;
-
- // Create an NXT iterator object which is used to find all accessible NXT devices.
- nxtIteratorPtr = nFANTOM100::iNXT::createNXTIterator(useBT, (useBT ? FANTOM_BT_TIMEOUTSEC : 0), status);
-
- // Creating the NXT iterator object could fail, better check status before dereferencing a
- // potentially NULL pointer.
- while (status.isNotFatal())
- {
- ViChar nxtName[FANTOM_NXTNAME_LEN];
- nxtIteratorPtr->getName(nxtName, status);
-
- std::cout << "Found: " << nxtName << std::endl;
-
- if (status.isNotFatal())
- {
- // Split nxtName into NXT ID (h) and NXT Name (n)
- // return as [(h,n),...]
- // FIXME: Append to Python list
- /*
- return Py_BuildValue("i", sts);
- */
- }
- nxtIteratorPtr->advance(status);
-
- }
- // Destroy the NXT iterator object which we no longer need
- nFANTOM100::iNXT::destroyNXTIterator( nxtIteratorPtr );
- return list;
-
-}
-
-// Static method called directly from C
-PyObject *FantomModule::find_bricks(PyObject *py_self, PyObject *py_args)
-{
- const char *host, *name;
- if (!PyArg_ParseTuple(py_args, "ss", &host, &name))
- return NULL;
-
- ViBoolean useBT = false;
-
- PyObject *list = NULL;
-
-
- nFANTOM100::iNXTIterator* nxtIteratorPtr;
- nFANTOM100::tStatus status;
-
- // Create an NXT iterator object which is used to find all accessible NXT devices.
- nxtIteratorPtr = nFANTOM100::iNXT::createNXTIterator(useBT, (useBT ? FANTOM_BT_TIMEOUTSEC : 0), status);
-
- // Creating the NXT iterator object could fail, better check status before dereferencing a
- // potentially NULL pointer.
- while (status.isNotFatal())
- {
- ViChar nxtName[FANTOM_NXTNAME_LEN];
- nFANTOM100::iNXT* aNXT = NULL;
-
- nxtIteratorPtr->getName(nxtName, status);
- std::cout << "Found: " << nxtName << std::endl;
- aNXT = nxtIteratorPtr->getNXT(status);
- if (status.isNotFatal())
- {
- FantomModule *aFantomObject = new FantomModule;
- aFantomObject->nxtPtr = aNXT;
- aFantomObject->status.assign(status);
- if (strlcpy(aFantomObject->pairedResourceName, nxtName, FANTOM_NXTNAME_LEN) >= FANTOM_NXTNAME_LEN)
- {
- // Exceeded Name Length
- std::cout << "NXTName Length Exceeded: " << nxtName << std::endl;
- delete aFantomObject;
- }
- else
- {
- // FIXME: Append to Python list
- /*
- return Py_BuildValue("i", sts);
- */
- }
-
- }
- nxtIteratorPtr->advance(status);
-
- }
- // Destroy the NXT iterator object which we no longer need
- nFANTOM100::iNXT::destroyNXTIterator( nxtIteratorPtr );
- return list;
-
-}
-
-ViBoolean FantomModule::socket(ViBoolean enableBT, ViConstString BTkey)
-{
- // Internal class object setup
- nxtPtr = NULL;
- useBT = enableBT;
- if (strlcpy(passkey, BTkey, FANTOM_PASSKEY_LEN) >= FANTOM_PASSKEY_LEN)
- return false;
- return true;
-
-}
-
-ViBoolean FantomModule::connect(ViConstString resourceName)
-{
- // If a NXT is found over BT, the computer and the NXT must be paired before an NXT object can be
- // created. This can be done programatically using the iNXT::pairBluetooth method.
- // FIXME: Retrieve resource String
-
-
- if (useBT and !nFANTOM100::iNXT::isPaired((ViConstString)resourceName,status))
- nFANTOM100::iNXT::pairBluetooth((ViConstString) resourceName, (ViConstString) passkey, (ViChar *) pairedResourceName, status);
-
- if (status.isNotFatal())
- {
- nxtPtr = nFANTOM100::iNXT::createNXT((ViConstString) resourceName, status, false);
- }
-}
-
-ViUInt32 FantomModule::send(const ViByte *bufferPtr, ViUInt32 numberOfBytes)
-{
- nFANTOM100::tStatus status;
-
- return nxtPtr->write(bufferPtr, numberOfBytes, status);
-}
-
-ViUInt32 FantomModule::recv(ViByte *bufferPtr, ViUInt32 numberOfBytes)
-{
- nFANTOM100::tStatus status;
-
- return nxtPtr->read(bufferPtr, numberOfBytes, status);
-}
-
-ViBoolean FantomModule::close()
-{
-
- const char *proto;
- useBT = strcmp(proto, FANTOM_BT) ? true : false;
- if (useBT and nFANTOM100::iNXT::isPaired((ViConstString)pairedResourceName,status))
- nFANTOM100::iNXT::unpairBluetooth((ViConstString) pairedResourceName, status); // No Effect on Mac OSX
-
- if (nxtPtr)
- nFANTOM100::iNXT::destroyNXT(nxtPtr);
- nxtPtr = NULL;
-
- return true;
-}
-
-FantomModule::~FantomModule()
-{
- if (nxtPtr)
- nFANTOM100::iNXT::destroyNXT(nxtPtr);
- nxtPtr = NULL;
-
-}
-
-// Skeleton functions from Xcode
-void FantomModule::HelloWorld(const char * s)
-{
- FantomModulePriv *theObj = new FantomModulePriv;
- theObj->HelloWorldPriv(s);
- delete theObj;
-};
-
-void FantomModulePriv::HelloWorldPriv(const char * s)
-{
- std::cout << s << std::endl;
-};
-
diff --git a/AT91SAM7S256/armdebug/FantomModule/FantomModule.h b/AT91SAM7S256/armdebug/FantomModule/FantomModule.h
deleted file mode 100644
index e2d99cb..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/FantomModule.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * FantomModule.h
- * FantomModule
- *
- * Created by tcmac on 01/03/2011.
- * Copyright 2011 __MyCompanyName__. All rights reserved.
- *
- */
-
-#ifndef FantomModule_
-#define FantomModule_
-
-#include "Python.h"
-#include "fantom/iNXT.h"
-#include "fantom/iNXTIterator.h"
-#include "fantom/tStatus.h"
-
-#define FANTOM_BT "BT"
-#define FANTOM_USB "USB"
-#define FANTOM_BT_TIMEOUTSEC 5
-#define FANTOM_NXTNAME_LEN 256
-#define FANTOM_PASSKEY_LEN 256
-#define FANTOM_DATA_BUFLEN 256
-#define FANTOM_NXT_PASSKEY "1234"
-
-/* The classes below are exported */
-#pragma GCC visibility push(default)
-
-extern "C" PyMODINIT_FUNC initfantom(void);
-
-extern "C" PyObject *fantom_finddevices(PyObject *py_self, PyObject *py_args); // BT Discovery function
-extern "C" PyObject *fantom_find_bricks(PyObject *py_self, PyObject *py_args); // USB function
-extern "C" PyObject *fantom_socket(PyObject *py_self, PyObject *py_args);
-extern "C" PyObject *fantom_connect(PyObject *py_self, PyObject *py_args);
-extern "C" PyObject *fantom_send(PyObject *py_self, PyObject *py_args);
-extern "C" PyObject *fantom_recv(PyObject *py_self, PyObject *py_args);
-extern "C" PyObject *fantom_close(PyObject *py_self, PyObject *py_args);
-
-class FantomModule
-{
- nFANTOM100::iNXT* nxtPtr;
- nFANTOM100::tStatus status;
- ViBoolean useBT;
- ViChar passkey[FANTOM_PASSKEY_LEN];
- ViChar pairedResourceName[FANTOM_NXTNAME_LEN];
-
- public:
- static PyObject *finddevices(PyObject *py_self, PyObject *py_args);
- static PyObject *find_bricks(PyObject *py_self, PyObject *py_args);
- ViBoolean socket(ViBoolean enableBT, ViConstString BTkey);
- ViBoolean connect(ViConstString resourceName);
- ViUInt32 send(const ViByte *bufferPtr, ViUInt32 numberOfBytes);
- ViUInt32 recv(ViByte *bufferPtr, ViUInt32 numberOfBytes);
- ViBoolean close();
- ~FantomModule();
- void HelloWorld(const char *);
-};
-
-#pragma GCC visibility pop
-#endif
diff --git a/AT91SAM7S256/armdebug/FantomModule/FantomModule.xcodeproj/project.pbxproj b/AT91SAM7S256/armdebug/FantomModule/FantomModule.xcodeproj/project.pbxproj
deleted file mode 100644
index f4a5ec8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/FantomModule.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,295 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 45;
- objects = {
-
-/* Begin PBXBuildFile section */
- 43B531D2131C92690016BF14 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = 43B531D1131C92690016BF14 /* Python */; };
- 43B531F2131C962E0016BF14 /* iFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531EA131C962E0016BF14 /* iFile.h */; };
- 43B531F3131C962E0016BF14 /* iFileIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531EB131C962E0016BF14 /* iFileIterator.h */; };
- 43B531F4131C962E0016BF14 /* iModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531EC131C962E0016BF14 /* iModule.h */; };
- 43B531F5131C962E0016BF14 /* iModuleIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531ED131C962E0016BF14 /* iModuleIterator.h */; };
- 43B531F6131C962E0016BF14 /* iNXT.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531EE131C962E0016BF14 /* iNXT.h */; };
- 43B531F7131C962E0016BF14 /* iNXTIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531EF131C962E0016BF14 /* iNXTIterator.h */; };
- 43B531F8131C962E0016BF14 /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531F0131C962E0016BF14 /* platform.h */; };
- 43B531F9131C962E0016BF14 /* tStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531F1131C962E0016BF14 /* tStatus.h */; };
- 43B531FB131C963A0016BF14 /* visatype.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B531FA131C963A0016BF14 /* visatype.h */; };
- 43B5320A131C975B0016BF14 /* Fantom in Frameworks */ = {isa = PBXBuildFile; fileRef = 43B53209131C975B0016BF14 /* Fantom */; };
- 50149BDA09E781A5002DEE6A /* FantomModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 50149BD909E781A5002DEE6A /* FantomModule.h */; };
- 5073E0CB09E734E500EC74B6 /* FantomModule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5073E0C409E734A800EC74B6 /* FantomModule.cpp */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- 32BAE0B70371A74B00C91783 /* FantomModule_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FantomModule_Prefix.pch; sourceTree = "<group>"; };
- 43B531D1131C92690016BF14 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = /System/Library/Frameworks/Python.framework/Python; sourceTree = "<absolute>"; };
- 43B531EA131C962E0016BF14 /* iFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iFile.h; sourceTree = "<group>"; };
- 43B531EB131C962E0016BF14 /* iFileIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iFileIterator.h; sourceTree = "<group>"; };
- 43B531EC131C962E0016BF14 /* iModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iModule.h; sourceTree = "<group>"; };
- 43B531ED131C962E0016BF14 /* iModuleIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iModuleIterator.h; sourceTree = "<group>"; };
- 43B531EE131C962E0016BF14 /* iNXT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iNXT.h; sourceTree = "<group>"; };
- 43B531EF131C962E0016BF14 /* iNXTIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iNXTIterator.h; sourceTree = "<group>"; };
- 43B531F0131C962E0016BF14 /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; };
- 43B531F1131C962E0016BF14 /* tStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tStatus.h; sourceTree = "<group>"; };
- 43B531FA131C963A0016BF14 /* visatype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = visatype.h; sourceTree = "<group>"; };
- 43B53209131C975B0016BF14 /* Fantom */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Fantom; path = /Library/Frameworks/Fantom.framework/Fantom; sourceTree = "<absolute>"; };
- 43DB2163131CBF18001443AF /* setup.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = setup.py; sourceTree = "<group>"; };
- 50149BD909E781A5002DEE6A /* FantomModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FantomModule.h; sourceTree = "<group>"; };
- 5073E0C409E734A800EC74B6 /* FantomModule.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FantomModule.cpp; sourceTree = "<group>"; };
- 5073E0C609E734A800EC74B6 /* FantomModuleProj.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; path = FantomModuleProj.xcconfig; sourceTree = "<group>"; };
- 5073E0C709E734A800EC74B6 /* FantomModuleTarget.xcconfig */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xcconfig; path = FantomModuleTarget.xcconfig; sourceTree = "<group>"; };
- 50B2938909F016FC00694E55 /* FantomModulePriv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FantomModulePriv.h; sourceTree = "<group>"; };
- D2AAC09D05546B4700DB518D /* libFantomModule.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libFantomModule.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- D2AAC09B05546B4700DB518D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 43B531D2131C92690016BF14 /* Python in Frameworks */,
- 43B5320A131C975B0016BF14 /* Fantom in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 034768DDFF38A45A11DB9C8B /* Products */ = {
- isa = PBXGroup;
- children = (
- D2AAC09D05546B4700DB518D /* libFantomModule.dylib */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 0867D691FE84028FC02AAC07 /* FantomModule */ = {
- isa = PBXGroup;
- children = (
- 43B531FA131C963A0016BF14 /* visatype.h */,
- 43B531E9131C962E0016BF14 /* fantom */,
- 5073E0CA09E734BC00EC74B6 /* Configuration Files */,
- 08FB77ACFE841707C02AAC07 /* Source */,
- 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
- 034768DDFF38A45A11DB9C8B /* Products */,
- 43DB2163131CBF18001443AF /* setup.py */,
- );
- name = FantomModule;
- sourceTree = "<group>";
- };
- 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
- isa = PBXGroup;
- children = (
- 43B53209131C975B0016BF14 /* Fantom */,
- 43B531D1131C92690016BF14 /* Python */,
- );
- name = "External Frameworks and Libraries";
- sourceTree = "<group>";
- };
- 08FB77ACFE841707C02AAC07 /* Source */ = {
- isa = PBXGroup;
- children = (
- 32BAE0B70371A74B00C91783 /* FantomModule_Prefix.pch */,
- 50149BD909E781A5002DEE6A /* FantomModule.h */,
- 50B2938909F016FC00694E55 /* FantomModulePriv.h */,
- 5073E0C409E734A800EC74B6 /* FantomModule.cpp */,
- );
- name = Source;
- sourceTree = "<group>";
- };
- 43B531E9131C962E0016BF14 /* fantom */ = {
- isa = PBXGroup;
- children = (
- 43B531EA131C962E0016BF14 /* iFile.h */,
- 43B531EB131C962E0016BF14 /* iFileIterator.h */,
- 43B531EC131C962E0016BF14 /* iModule.h */,
- 43B531ED131C962E0016BF14 /* iModuleIterator.h */,
- 43B531EE131C962E0016BF14 /* iNXT.h */,
- 43B531EF131C962E0016BF14 /* iNXTIterator.h */,
- 43B531F0131C962E0016BF14 /* platform.h */,
- 43B531F1131C962E0016BF14 /* tStatus.h */,
- );
- path = fantom;
- sourceTree = "<group>";
- };
- 5073E0CA09E734BC00EC74B6 /* Configuration Files */ = {
- isa = PBXGroup;
- children = (
- 5073E0C609E734A800EC74B6 /* FantomModuleProj.xcconfig */,
- 5073E0C709E734A800EC74B6 /* FantomModuleTarget.xcconfig */,
- );
- name = "Configuration Files";
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
- D2AAC09905546B4700DB518D /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 50149BDA09E781A5002DEE6A /* FantomModule.h in Headers */,
- 43B531F2131C962E0016BF14 /* iFile.h in Headers */,
- 43B531F3131C962E0016BF14 /* iFileIterator.h in Headers */,
- 43B531F4131C962E0016BF14 /* iModule.h in Headers */,
- 43B531F5131C962E0016BF14 /* iModuleIterator.h in Headers */,
- 43B531F6131C962E0016BF14 /* iNXT.h in Headers */,
- 43B531F7131C962E0016BF14 /* iNXTIterator.h in Headers */,
- 43B531F8131C962E0016BF14 /* platform.h in Headers */,
- 43B531F9131C962E0016BF14 /* tStatus.h in Headers */,
- 43B531FB131C963A0016BF14 /* visatype.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
- D2AAC09C05546B4700DB518D /* FantomModule */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1DEB916008733D950010E9CD /* Build configuration list for PBXNativeTarget "FantomModule" */;
- buildPhases = (
- D2AAC09905546B4700DB518D /* Headers */,
- D2AAC09B05546B4700DB518D /* Frameworks */,
- D2AAC09A05546B4700DB518D /* Sources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = FantomModule;
- productName = libFantomModule;
- productReference = D2AAC09D05546B4700DB518D /* libFantomModule.dylib */;
- productType = "com.apple.product-type.library.dynamic";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 0867D690FE84028FC02AAC07 /* Project object */ = {
- isa = PBXProject;
- buildConfigurationList = 1DEB916408733D950010E9CD /* Build configuration list for PBXProject "FantomModule" */;
- compatibilityVersion = "Xcode 3.1";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- English,
- Japanese,
- French,
- German,
- );
- mainGroup = 0867D691FE84028FC02AAC07 /* FantomModule */;
- productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- D2AAC09C05546B4700DB518D /* FantomModule */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
- D2AAC09A05546B4700DB518D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 5073E0CB09E734E500EC74B6 /* FantomModule.cpp in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 1DEB916108733D950010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 5073E0C709E734A800EC74B6 /* FantomModuleTarget.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = YES;
- GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = FantomModule_Prefix.pch;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/Python.framework\"",
- "\"$(LOCAL_LIBRARY_DIR)/Frameworks/Fantom.framework\"",
- );
- };
- name = Debug;
- };
- 1DEB916208733D950010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 5073E0C709E734A800EC74B6 /* FantomModuleTarget.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = FantomModule_Prefix.pch;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/Python.framework\"",
- "\"$(LOCAL_LIBRARY_DIR)/Frameworks/Fantom.framework\"",
- );
- STRIP_INSTALLED_PRODUCT = YES;
- STRIP_STYLE = "non-global";
- };
- name = Release;
- };
- 1DEB916508733D950010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 5073E0C609E734A800EC74B6 /* FantomModuleProj.xcconfig */;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = /usr/include/python2.6/;
- ONLY_ACTIVE_ARCH = YES;
- PREBINDING = NO;
- SDKROOT = macosx10.6;
- };
- name = Debug;
- };
- 1DEB916608733D950010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 5073E0C609E734A800EC74B6 /* FantomModuleProj.xcconfig */;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- SDKROOT = macosx10.6;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 1DEB916008733D950010E9CD /* Build configuration list for PBXNativeTarget "FantomModule" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB916108733D950010E9CD /* Debug */,
- 1DEB916208733D950010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 1DEB916408733D950010E9CD /* Build configuration list for PBXProject "FantomModule" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB916508733D950010E9CD /* Debug */,
- 1DEB916608733D950010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}
diff --git a/AT91SAM7S256/armdebug/FantomModule/FantomModulePriv.h b/AT91SAM7S256/armdebug/FantomModule/FantomModulePriv.h
deleted file mode 100644
index 54e0775..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/FantomModulePriv.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * FantomModulePriv.h
- * FantomModule
- *
- * Created by tcmac on 01/03/2011.
- * Copyright 2011 __MyCompanyName__. All rights reserved.
- *
- */
-
-/* The classes below are not exported */
-#pragma GCC visibility push(hidden)
-
-class FantomModulePriv
-{
- public:
- void HelloWorldPriv(const char *);
-};
-
-#pragma GCC visibility pop
diff --git a/AT91SAM7S256/armdebug/FantomModule/FantomModuleProj.xcconfig b/AT91SAM7S256/armdebug/FantomModule/FantomModuleProj.xcconfig
deleted file mode 100644
index 363b2d1..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/FantomModuleProj.xcconfig
+++ /dev/null
@@ -1,6 +0,0 @@
- PREBINDING = NO;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- GCC_MODEL_TUNING = G5;
- GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES;
- GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
diff --git a/AT91SAM7S256/armdebug/FantomModule/FantomModuleTarget.xcconfig b/AT91SAM7S256/armdebug/FantomModule/FantomModuleTarget.xcconfig
deleted file mode 100644
index 63f1a7e..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/FantomModuleTarget.xcconfig
+++ /dev/null
@@ -1,11 +0,0 @@
- PRODUCT_NAME = libFantomModule;
- INSTALL_PATH = /usr/local/lib;
- MACH_O_TYPE = mh_dylib;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = FantomModule_Prefix.pch;
- GCC_ENABLE_CPP_EXCEPTIONS = YES;
- GCC_ENABLE_CPP_RTTI = YES;
- STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = Dynamic;
- GCC_SYMBOLS_PRIVATE_EXTERN = YES;
diff --git a/AT91SAM7S256/armdebug/FantomModule/FantomModule_Prefix.pch b/AT91SAM7S256/armdebug/FantomModule/FantomModule_Prefix.pch
deleted file mode 100644
index 031204e..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/FantomModule_Prefix.pch
+++ /dev/null
@@ -1,6 +0,0 @@
-//
-// Prefix header for all source files of the 'FantomModule' target in the 'FantomModule' project.
-//
-
-
-#include <iostream>
diff --git a/AT91SAM7S256/armdebug/FantomModule/fantom/iFile.h b/AT91SAM7S256/armdebug/FantomModule/fantom/iFile.h
deleted file mode 100644
index d9884f9..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/fantom/iFile.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/*!
- \file iFile.h
- \brief Interface for a file on a LEGO MINDSTORMS NXT.
-*/
-/*
- Copyright 2005-2006,
- National Instruments Corporation.
- All rights reserved.
-
- File: iFile.h
- Originated: 12 May 2005
-*/
-
-#ifndef ___fantom_iFile_h___
-#define ___fantom_iFile_h___
-
-// includes...
-
-#ifndef ___fantom_platform_h___
- #include "platform.h"
-#endif
-
-#ifndef ___fantom_tStatus_h___
- #include "tStatus.h"
-#endif
-
-
-// defines...
-
-
-namespace nFANTOM100
-{
- // forward declarations...
-
- // typedefs...
-
- // classes...
-
- /*!
- \class iFile
- \brief Interface to a file on a LEGO MINDSTORMS NXT.
- */
- class iFile
- {
- friend class tNXT;
-
- // methods
- protected:
-
- //! Destructor
- virtual ~iFile() = 0;
-
- public:
-
- //! Retrieves the name of this file.
- /*!
- \param fileName Populated with the name of this file. The file name character array
- must be able to accomodate a NULL-terminated, 15.3 formatted module name. That
- is, it must have a capacity of 20 bytes.
- */
- virtual void getName( ViChar fileName[] ) const = 0;
-
- //! Retrieves the total size of this file in bytes.
- /*!
- The returned size is undefined if the specified status is fatal.
-
- \param status Status chaining object.
- \return The total size of this file in bytes.
- */
- virtual ViUInt32 getSize( tStatus& status ) = 0;
-
- //! Retrieves the remaining available size, in bytes, in this file.
- /*!
- This number is only helpful for data logging files, which can contain variable
- amounts of data.
- The returned size is undefined if the specified status is fatal.
-
- \param status Status chaining object.
- \return The remaining available size, in bytes, in this file.
- */
- virtual ViUInt32 getAvailableSize( tStatus& status ) = 0;
-
-
- //! Opens this file for reading.
- /*!
- Opens, for reading, the file that corresponds to this object on the associated NXT.
- The file is not opened if the specified status is fatal.
-
- \param status Status chaining object.
- */
- virtual void openForRead( tStatus& status ) = 0;
-
-
- //! Open this file for writing.
- /*!
- Opens, for writing, the file that corresponds to this object on the associated NXT.
- If this file doesn't exist on the NXT, it is created. If this file does exist on
- the NXT, an error is generated.
- The file is not opened if the specified status is fatal.
-
- \param sizeInBytes Size of the data, in bytes, that will be written to this file.
- \param status Status chaining object.
- */
- virtual void openForWrite( ViUInt32 sizeInBytes, tStatus& status ) = 0;
-
-
- //! Open this file for linear (contiguous) writing.
- /*!
- Opens, for linear (contiguous) writing, the file that corresponds to this object on
- the associated NXT. If this file doesn't exist on the NXT, it is created. If this
- file does exist on the NXT, an error is generated.
- The file is not opened if the specified status is fatal.
-
- \param sizeInBytes Size of the data, in bytes, that will be written to the file.
- \param status Status chaining object.
- */
- virtual void openForLinearWrite( ViUInt32 sizeInBytes, tStatus& status ) = 0;
-
-
- //! Open this data file for writing.
- /*!
- Opens, for writing, the data file that corresponds to this object on the associated
- NXT. This data file differs from normal files in that a data file can be closed
- before the entire file has been written. If this file doesn't exist on the NXT,
- it is created. If this file does exist on the NXT, an error is generated.
- The file is not opened if the specified status is fatal.
-
- \param sizeInBytes Size of the data, in bytes, that may be written to the file.
- \param status Status chaining object.
- */
- virtual void openForDataWrite( ViUInt32 sizeInBytes, tStatus& status ) = 0;
-
-
- //! Open this data file for appending additional data.
- /*!
- Opens, for appending additional data, the data file that corresponds to this object
- on the associated NXT. If this file doesn't exist on the NXT, the behavior is
- undefined. If this file does exist on the NXT, the data that is written is
- appended to the end of the exiting data.
- The file is not opened if the specified status is fatal.
-
- \param status Status chaining object.
- */
- virtual void openForDataAppend( tStatus& status ) = 0;
-
-
- //! Closes this file.
- /*!
- Closes the file that corresponds to this object on the associated NXT.
- The file is not closed if the specified status is fatal.
-
- \param status Status chaining object.
- */
- virtual void close( tStatus& status ) = 0;
-
-
- //! Reads from this file
- /*!
- Reads the specified number of bytes from this file into the specified buffer. No data
- is read if the specified status is fatal. The ownership of the buffer is not
- transferred to this file object.
-
- \param bufferPtr A pointer to the buffer that will be populated with the data that is
- read. The capacity of the specified buffer must be at least the specified number
- of bytes.
- \param numberOfBytes Number of bytes to read.
- \param status Status chaining object.
- \return The number of bytes actually read from this file.
-
- \pre This file must have been opened for reading with the iFile::openForRead method.
- \post The specified buffer may be deallocated.
- */
- virtual ViUInt32 read( ViPBuf bufferPtr, ViUInt32 numberOfBytes, tStatus& status ) = 0;
-
-
- //! Writes to this file
- /*!
- Writes the specified number of bytes from the specified buffer to this file. No data
- is written if the specified status is fatal. The ownership of the buffer is not
- transferred to this file object.
-
- \param bufferPtr A pointer to the buffer that contains the data that will be written.
- The capacity of the specified buffer must be at least the specified number of
- bytes.
- \param numberOfBytes Number of bytes to write to this file.
- \param status Status chaining object.
- \return The number of bytes actually written to this file.
-
- \pre This file must have previously been opened for writing.
- \post The specified buffer may be deallocated.
- */
- virtual ViUInt32 write( const ViByte bufferPtr[], ViUInt32 numberOfBytes,
- tStatus& status ) = 0;
-
-
- //! Removes this file
- /*!
- Removes the file that corresponds to this object on the associated NXT.
- The file is not removed if the specified status is fatal.
-
- \param status Status chaining object.
- */
- virtual void remove( tStatus& status ) = 0;
-
- };
-
-
- // constants...
- const ViUInt8 kProtocolFilenameLength = 19; // 15 basename + 1 dot + 3 extension = 19
-
-} // namespace nFANTOM100
-
-
- // declarations for globally-scoped globals...
-
- // typedefs...
- typedef ViObject nFANTOM100_iFile;
-
- // prototypes...
- extern "C"
- {
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_getName(
- nFANTOM100_iFile filePtr,
- ViChar fileName[],
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iFile_getSize(
- nFANTOM100_iFile filePtr,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iFile_getAvailableSize(
- nFANTOM100_iFile filePtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_openForRead(
- nFANTOM100_iFile filePtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_openForWrite(
- nFANTOM100_iFile filePtr,
- ViUInt32 sizeInBytes,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_openForLinearWrite(
- nFANTOM100_iFile filePtr,
- ViUInt32 sizeInBytes,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_openForDataWrite(
- nFANTOM100_iFile filePtr,
- ViUInt32 sizeInBytes,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_openForDataAppend(
- nFANTOM100_iFile filePtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_close(
- nFANTOM100_iFile filePtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_read(
- nFANTOM100_iFile filePtr,
- ViPBuf bufferPtr,
- ViUInt32 numberOfBytes,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_write(
- nFANTOM100_iFile filePtr,
- const ViByte bufferPtr[],
- ViUInt32 numberOfBytes,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFile_remove(
- nFANTOM100_iFile filePtr,
- ViStatus* status );
-
- }
-
-#endif // ___fantom_iFile_h___
diff --git a/AT91SAM7S256/armdebug/FantomModule/fantom/iFileIterator.h b/AT91SAM7S256/armdebug/FantomModule/fantom/iFileIterator.h
deleted file mode 100644
index 5803be8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/fantom/iFileIterator.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*!
- \file iFileIterator.h
- \brief Interface for an iterator for files on a LEGO MINDSTORMS NXT.
-*/
-/*
- Copyright 2005-2006,
- National Instruments Corporation.
- All rights reserved.
-
- File: iFileIterator.h
- Originated: 12 May 2005
-*/
-
-#ifndef ___fantom_iFileIterator_h___
-#define ___fantom_iFileIterator_h___
-
-
-// includes...
-
-#ifndef ___fantom_platform_h___
- #include "platform.h"
-#endif
-
-#ifndef ___fantom_iFile_h___
- #include "iFile.h"
-#endif
-
-#ifndef ___fantom_tStatus_h___
- #include "tStatus.h"
-#endif
-
-
-// defines...
-
-
-namespace nFANTOM100
-{
- // forward declarations...
-
- // typedefs...
-
- // classes...
-
- /*!
- \class iFileIterator
- \brief Interface to an iterator for files on a LEGO MINDSTORMS NXT.
- */
- class iFileIterator
- {
- friend class tNXT;
-
- // methods
- protected:
-
- //! Destructor
- virtual ~iFileIterator() = 0;
-
- public:
-
- //! Creates a file object for the file referenced by this iterator.
- /*!
- Creates file object for the file referenced by this iterator. An object is not
- created if the specified status is fatal or if this iterator refers to the end of
- the list. The returned file object should be destroyed using the
- iNXT::destroyFile method.
-
- \param status Status chaining object.
- \return A pointer to the iFile object that was created.
- */
- virtual iFile* getFile( tStatus& status ) = 0;
-
- //! Advances this iterator.
- /*!
- Advances this iterator to the next file that matches the previously specified file
- name pattern. If no more files match, this iterator is advanced to the end of the
- list.
- The iterator is not advanced if the specified status is fatal.
- If this iterator is already at the end of the list, a fatal status will be generated.
-
- \param status Status chaining object.
- */
- virtual void advance( tStatus& status ) = 0;
-
- //! Retrieves the name of the file to which this iterator refers.
- /*!
- \param fileName Populated with the name of the file to which this iterator refers.
- The file name character array must be able to accomodate a NULL-terminated, 15.3
- formatted file name. This is, it must have a capacity of 20 bytes.
- \param status Status chaining object.
- */
- virtual void getName( ViChar fileName[], tStatus& status ) = 0;
-
- //! Retrieves the total size, in bytes, of the file to which this iterator refers.
- /*!
- \param status Status chaining object.
- \return The total size of the file in bytes.
- */
- virtual ViUInt32 getSize( tStatus& status ) = 0;
-
- };
-
-
- // constants...
-
-} // namespace nFANTOM100
-
-
- // declarations for globally-scoped globals...
-
- // typedefs
- typedef ViObject nFANTOM100_iFileIterator;
-
- extern "C"
- {
- nFANTOM100_kExport nFANTOM100_iFile _VI_FUNCC nFANTOM100_iFileIterator_getFile(
- nFANTOM100_iFileIterator iteratorPtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFileIterator_advance(
- nFANTOM100_iFileIterator iteratorPtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iFileIterator_getName(
- nFANTOM100_iFileIterator iteratorPtr,
- ViChar filename[],
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iFileIterator_getSize(
- nFANTOM100_iFileIterator iteratorPtr,
- ViStatus* status );
- }
-
-#endif // ___fantom_iFileIterator_h___
diff --git a/AT91SAM7S256/armdebug/FantomModule/fantom/iModule.h b/AT91SAM7S256/armdebug/FantomModule/fantom/iModule.h
deleted file mode 100644
index 1f03849..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/fantom/iModule.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*!
- \file iModule.h
- \brief Interface for a firmware module on a LEGO MINDSTORMS NXT.
-*/
-/*
- Copyright 2005-2006,
- National Instruments Corporation.
- All rights reserved.
-
- File: iModule.h
- Originated: 8 Aug 2005
-*/
-
-#ifndef ___fantom_iModule_h___
-#define ___fantom_iModule_h___
-
-#ifndef ___fantom_platform_h___
- #include "platform.h"
-#endif
-
-#ifndef ___fantom_tStatus_h___
- #include "tStatus.h"
-#endif
-
-
-// defines...
-
-
-namespace nFANTOM100
-{
-
- /*!
- \class iModule
- \brief Interface to a firmware module on a LEGO MINDSTORMS NXT.
- */
- class iModule
- {
- friend class tNXT;
-
- // methods
- protected:
-
- //! Destructor
- virtual ~iModule() = 0;
-
- public:
-
- //! Retrieves the name of this module.
- /*!
- \param moduleName Populated with the name of this module. The module name character
- array must be able to accomodate a NULL-terminated, 15.3 formatted module name.
- That is, it must have a capacity of 20 bytes.
- */
- virtual void getName( ViChar moduleName[] ) const = 0;
-
- //! Retrieves the internal module ID of this module.
- /*!
- \return The internal module ID of this module.
- */
- virtual ViUInt32 getModuleID( void ) const = 0;
-
- //! Retrieves the size in bytes of this module.
- /*!
- \return The size in bytes of this module.
- */
- virtual ViUInt32 getModuleSize( void ) const = 0;
-
- //! Retrieves the size in bytes of the I/O map associated with this module.
- /*!
- \return The size in bytes of the I/O map associated with this module.
- */
- virtual ViUInt32 getModuleIOMapSize( void ) const = 0;
-
- //! Reads a portion of this module's I/O map.
- /*!
- Reads the data located at [I/O map address] + [specified offset in bytes] into the
- specified data buffer. The read will attempt to copy the specified number of
- bytes. No read occurs if the specified status is fatal. The ownership of data
- buffer is not transferred to this module object.
-
- \param offsetInBytes The index of the byte in the I/O map at which to start the read.
- \param numberOfBytes The number of bytes that should be read from the I/O map.
- \param dataBufferPtr A pointer to the data buffer that will be populated with the
- data that is read. The capacity of the specified data buffer must be at least the
- specified number of bytes.
- \param status Status chaining object.
- \return The number of bytes actually read from the I/O map.
-
- \post The specified data buffer may be deallocated.
- */
- virtual ViUInt32 readIOMap( ViUInt32 offsetInBytes, ViUInt32 numberOfBytes,
- ViPBuf dataBufferPtr, tStatus& status ) = 0;
-
- //! Writes a portion of this module's I/O map.
- /*!
- Writes the specified data into this module's I/O map. The write starts at [I/O map
- address] + [specified offset in bytes] and stops after the specified number of
- bytes have been written. No write occurs if the specified status is fatal. The
- ownership of data buffer is not transferred to this module object.
-
- \param offsetInBytes The index of the byte in the I/O map at which to start the write.
- \param numberOfBytes The number of bytes to write into the I/O map.
- \param dataBufferPtr A pointer to the data buffer that contains the data that will be
- written. The capacity of the specified data buffer must be at least the specified
- number of bytes.
- \param status Status chaining object.
- \return The number of bytes actually written into the I/O map.
-
- \post The specified data buffer may be deallocated.
- */
- virtual ViUInt32 writeIOMap( ViUInt32 offsetInBytes, ViUInt32 numberOfBytes,
- const ViByte dataBufferPtr[], tStatus& status ) = 0;
-
- };
-
-}; // nFANTOM100
-
-typedef ViObject nFANTOM100_iModule;
-
-extern "C"
-{
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iModule_getName(
- nFANTOM100_iModule modulePtr,
- ViChar moduleName[],
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iModule_getModuleID(
- nFANTOM100_iModule modulePtr,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iModule_getModuleSize(
- nFANTOM100_iModule modulePtr,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iModule_getIOMapSize(
- nFANTOM100_iModule modulePtr,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iModule_readIOMap(
- nFANTOM100_iModule modulePtr,
- ViUInt32 offset,
- ViUInt32 numberBytesToRead,
- ViPBuf dataBuffer,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iModule_writeIOMap(
- nFANTOM100_iModule modulePtr,
- ViUInt32 offset,
- ViUInt32 numberBytesToWrite,
- const ViByte dataBuffer[],
- ViStatus* status );
-}
-
-#endif // ___fantom_iModule_h___
diff --git a/AT91SAM7S256/armdebug/FantomModule/fantom/iModuleIterator.h b/AT91SAM7S256/armdebug/FantomModule/fantom/iModuleIterator.h
deleted file mode 100644
index 402bf1a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/fantom/iModuleIterator.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*!
- \file iModuleIterator.h
- \brief Interface for an iterator for firmware modules on a LEGO MINDSTORMS NXT.
-*/
-/*
- Copyright 2005-2006,
- National Instruments Corporation.
- All rights reserved.
-
- File: iModuleIterator.h
- Originated: 8 Aug 2005
-*/
-
-#ifndef ___fantom_iModuleIterator_h___
-#define ___fantom_iModuleIterator_h___
-
-
-// includes...
-
-#ifndef ___fantom_platform_h___
- #include "platform.h"
-#endif
-
-#ifndef ___fantom_iModule_h___
- #include "iModule.h"
-#endif
-
-#ifndef ___fantom_tStatus_h___
- #include "tStatus.h"
-#endif
-
-
-// defines...
-
-
-namespace nFANTOM100
-{
- // forward declarations...
-
- // typedefs...
-
- // classes...
-
- /*!
- \class iModuleIterator
- \brief Interface to an iterator for firmware modules on a LEGO MINDSTORMS NXT.
- */
- class iModuleIterator
- {
- friend class tNXT;
-
- // methods
- protected:
-
- //! Destructor
- virtual ~iModuleIterator() = 0;
-
- public:
-
- //! Creates a module object for the module referenced by this iterator.
- /*!
- Creates a module object for the module referenced by this iterator. An object is not
- created if the specified status is fatal or if this iterator refers to the end of
- the list. The returned module object should be destroyed using the
- iNXT::destroyModule method.
-
- \param status Status chaining object.
- \return A pointer to the iModule object that was created.
- */
- virtual iModule* getModule( tStatus& status ) = 0;
-
- //! Advances this iterator.
- /*!
- Advances this iterator to the next module that matches the previously specified
- module name pattern. If no more modules match, this iterator is advanced to the
- end of the list.
- The iterator is not advanced if the specified status is fatal.
- If this iterator is already at the end of the list, a fatal status will be generated.
-
- \param status Status chaining object.
- */
- virtual void advance( tStatus& status ) = 0;
-
- //! Retrieves the name of the module to which this iterator refers.
- /*!
- \param moduleName Populated with the name of the module to which this iterator
- refers. The module name character array must be able to accomodate a
- NULL-terminated, 15.3 formatted module name. This is, it must have a capacity of
- 20 bytes.
- \param status Status chaining object.
- */
- virtual void getName( ViChar moduleName[], tStatus& status ) = 0;
-
- };
-
-
- // constants...
-
-} // namespace nFANTOM100
-
-
- // declarations for globally-scoped globals...
-
- // typedefs
- typedef ViObject nFANTOM100_iModuleIterator;
-
- extern "C"
- {
- nFANTOM100_kExport nFANTOM100_iModule _VI_FUNCC nFANTOM100_iModuleIterator_getModule(
- nFANTOM100_iModuleIterator iteratorPtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iModuleIterator_advance(
- nFANTOM100_iModuleIterator iteratorPtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iModuleIterator_getName(
- nFANTOM100_iModuleIterator iteratorPtr,
- ViChar moduleName[],
- ViStatus* status );
- }
-
-#endif // ___fantom_iModuleIterator_h___
diff --git a/AT91SAM7S256/armdebug/FantomModule/fantom/iNXT.h b/AT91SAM7S256/armdebug/FantomModule/fantom/iNXT.h
deleted file mode 100644
index ba61db8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/fantom/iNXT.h
+++ /dev/null
@@ -1,666 +0,0 @@
-/*!
- \file iNXT.h
- \brief Interface for a LEGO MINDSTORMS NXT and declaration of its factory.
-*/
-/*
- Copyright 2005-2006,
- National Instruments Corporation.
- All rights reserved.
-
- File: iNXT.h
- Originated: 12 May 2005
-*/
-
-#ifndef ___fantom_iNXT_h___
-#define ___fantom_iNXT_h___
-
-
-// includes...
-
-#ifndef ___fantom_platform_h___
- #include "platform.h"
-#endif
-
-#ifndef ___fantom_iFile_h___
- #include "iFile.h"
-#endif
-
-#ifndef ___fantom_iFileIterator_h___
- #include "iFileIterator.h"
-#endif
-
-#ifndef ___fantom_iModule_h___
- #include "iModule.h"
-#endif
-
-#ifndef ___fantom_iModuleIterator_h___
- #include "iModuleIterator.h"
-#endif
-
-#ifndef ___fantom_iNXTIterator_h___
- #include "iNXTIterator.h"
-#endif
-
-#ifndef ___fantom_tStatus_h___
- #include "tStatus.h"
-#endif
-
-// defines...
-
-
-namespace nFANTOM100
-{
- // forward declarations...
-
- // typedefs...
-
- // classes...
-
- /*!
- \class iNXT
- \brief Interface to a LEGO MINDSTORMS NXT.
- */
- class iNXT
- {
- // methods
- protected:
-
- //! Destructor
- virtual ~iNXT() = 0;
-
- public:
-
- //! Enumeration of buffer types on the NXT
- enum tBuffer
- {
- // The buffer associated with the standard port.
- kBufferStandard,
-
- // The buffer associated with the high-speed port.
- kBufferHighSpeed
- };
-
- //! Creates a file object for the file with the specified name on this NXT.
- /*!
- Invoking this method does not actually create a file on the NXT. Rather, this method
- creates a file object which may be used to open a file on this NXT, for reading or
- writing, or may be used to delete a file on the NXT.
- A file is not created if the specified status is fatal.
- The returned file object should be destroyed using the iNXT::destroyFile method.
-
- \param fileName Name of the file. The file name must conform to the 15.3 naming
- convention and be NULL-terminated.
- \param status Status chaining object.
- \return A pointer to the iFile object that was created.
- */
- virtual iFile* createFile( ViConstString fileName, tStatus& status ) = 0;
-
-
- //! Destroys the specified file object.
- /*!
- Invoking this method does not actually delete a file on the NXT. Rather, this method
- destroys a file object which may have been used to open a file on this NXT for
- reading or writing, or may have been used to delete a file on the NXT.
-
- \param filePtr Pointer to the file object to destroy.
- */
- virtual void destroyFile( iFile* filePtr ) = 0;
-
-
- //! Creates an iterator to the files on this NXT.
- /*!
- The iterator traverses those files on this NXT that match the specified file name
- pattern.
- The iterator is not created if the specified status is fatal.
- The returned file iterator object should be destroyed using the
- iNXT::destroyFileIterator method.
-
- \param fileNamePattern The file name pattern against which to match when iterating
- over the files on this NXT. The file name pattern may contain wildcards. The
- wildcards may be used in the following manner: *.* (all files on this NXT);
- fileBaseName.* (all files on this NXT with the specified base name regardless of
- extension); *.fileExtension (all files on this NXT with the specified extension,
- regardless of basename); fileBaseName.fileExtension (the file on this NXT with the
- specified base name and extension).
- \param status Status chaining object.
- \return A pointer to the iFileIterator object that was created.
- */
- virtual iFileIterator* createFileIterator( ViConstString fileNamePattern,
- tStatus& status ) = 0;
-
-
- //! Destroys the specified file iterator.
- /*!
- \param fileIteratorPtr A pointer to the file iterator to destroy.
- */
- virtual void destroyFileIterator( iFileIterator* fileIteratorPtr ) = 0;
-
- //! Creates a module object for the module with the specified name on this NXT.
- /*!
- Invoking this method does not actually create a module on the NXT. Rather, this
- method creates a module object which may be used to access an I/O map on this NXT.
- A module is not created if the specified status is fatal.
- The returned module object should be destroyed using the iNXT::destroyModule method.
-
- \param moduleName The name of the module. The module name must conform to the 15.3
- naming convention and be NULL-terminated.
- \param moduleID The NXT-internal ID of the module.
- \param moduleSizeInBytes The number of bytes the module occupies.
- \param ioMapSizeInBytes The number of bytes the module's I/O map occupies.
- \param status Status chaining object.
- \return A pointer to the iModule object that was created.
- */
- virtual iModule* createModule( ViConstString moduleName, ViUInt32 moduleID,
- ViUInt32 moduleSizeInBytes, ViUInt32 ioMapSizeInBytes, tStatus& status ) = 0;
-
- //! Destroys the specified module object.
- /*!
- Invoking this method does not actually delete a module on this NXT. Rather, this
- method destroys a module object which may have been used to access an I/O map on
- this NXT.
-
- \param modulePtr Pointer to the module object to destroy.
- */
- virtual void destroyModule( iModule* modulePtr ) = 0;
-
-
- //! Creates an iterator to the modules on this NXT.
- /*!
- The iterator traverses those modules on this NXT that match the specified module name
- pattern.
- The iterator is not created if the specified status is fatal.
- The returned module iterator object should be destroyed using the
- iNXT::destroyModuleIterator method.
-
- \param moduleNamePattern The module name pattern against which to match. The module
- name pattern may contain wildcards. Since extensions are implicit in the case of
- modules, a wildcard may only be used for the module name, as in "*.mod".
- \param status Status chaining object.
- \return A pointer to an iModuleIterator object that was created.
- */
- virtual iModuleIterator* createModuleIterator( ViConstString moduleNamePattern,
- tStatus& status ) = 0;
-
-
- //! Destroys the specified module iterator.
- /*!
- \param moduleIteratorPtr A pointer to the module iterator object to destroy.
- */
- virtual void destroyModuleIterator( iModuleIterator* moduleIteratorPtr ) = 0;
-
- //! Retrieves the firmware version of this NXT.
- /*!
- Returns the protocol and firmware versions installed on this NXT.
- The current version of this driver supports a protocol major version number of 1 and a
- firmware major version number of 1. If either of these major version numbers is a
- value other than 1, the driver will not attempt to communicate to the NXT.
- The returned versions are undefined if the specified status is fatal.
-
- \param protocolVersionMajorRef Reference to parameter that will be populated with the
- major protocol version.
- \param protocolVersionMinorRef Reference to parameter that will be populated with the
- minor protocol version.
- \param firmwareVersionMajorRef Reference to parameter that will be populated with the
- major firmware verison.
- \param firmwareVersionMinorRef Reference to parameter that will be populated with the
- minor firmware verison.
- \param status Status chaining object.
- */
- virtual void getFirmwareVersion( ViUInt8& protocolVersionMajorRef,
- ViUInt8& protocolVersionMinorRef, ViUInt8& firmwareVersionMajorRef,
- ViUInt8& firmwareVersionMinorRef, tStatus& status ) = 0;
-
-
- //! Sends the specified direct command to this NXT.
- /*!
- For more information on direct commands, refer to the LEGO MINDSTORMS NXT Direct
- commands document.
- The command is not sent if the specified status is fatal.
- The command buffer must be non-NULL and the command buffer size in bytes must be
- non-zero.
- If require response is set to true, the response buffer must be non-NULL and the
- response buffer size in bytes must be non-zero.
- If require response is set to false, the response buffer must be NULL and the
- response buffer size in bytes must be zero.
- Both of the buffer size parameters must be small enough to fit in one packet for
- whichever bus the NXT is connected over (USB or Bluetooth). This means the
- maximum length for a direct command over USB is 63 bytes; over Bluetooth, 65,533
- bytes.
- If any of these requirements are violated, VI_ERROR_USER_BUF will be returned.
-
- \param requireResponse Boolean flag indicating if a response is required.
- \param commandBufferPtr Buffer containing the direct command to send to the NXT.
- \param commandBufferSizeInBytes Number of bytes in the command buffer.
- \param responseBufferPtr Buffer that will be populated with the response to the direct
- command.
- \param responseBufferSizeInBytes Capacity of the response buffer in bytes.
- \param status Status chaining object.
- \return Number of bytes written to the response buffer.
- */
- virtual ViUInt32 sendDirectCommand( ViBoolean requireResponse, const ViByte commandBufferPtr[],
- ViUInt32 commandBufferSizeInBytes, ViPBuf responseBufferPtr,
- ViUInt32 responseBufferSizeInBytes, tStatus& status ) = 0;
-
- //! Downloads firmware to this NXT.
- /*!
- The NXT must already be in firmware-download mode.
-
- \param firmwareBufferPtr The buffer containing the new firmware binary image.
- \param firmwareBufferSizeInBytes The number of bytes in the new firmware image.
- \param status Status chaining object.
- */
- virtual void downloadFirmware( const ViByte firmwareBufferPtr[],
- ViUInt32 firmwareBufferSizeInBytes, tStatus& status ) = 0;
-
-
- //! Writes, in a generic fashion, to this NXT.
- /*!
- Writes a command directly to this NXT. In general, this method isn't used and,
- instead, the sendDirectCommand and other more specific methods are invoked when
- communication to the NXT.
- The write doesn not occur if the specified status is fatal.
-
- \param bufferPtr A pointer to the buffer that contains the command that will be
- written.
- \param numberOfBytes Size of the buffer.
- \param status Status chaining object.
- \return The number of bytes actually written to the NXT.
- */
- virtual ViUInt32 write( const ViByte bufferPtr[], ViUInt32 numberOfBytes,
- tStatus& status ) = 0;
-
- //! Reads, in a generic fashion, from this NXT.
- /*!
- Reads a response directly from this NXT. In general, this method isn't used and,
- instead, the sendDirectCommand and other more specific methods are invoked when
- communication to the NXT.
- The command is not sent if the specified status is fatal.
-
- \param bufferPtr A pointer to the buffer that will be populated with the response.
- \param numberOfBytes Number of bytes expected to be read from this NXT.
- \param status Status chaining object.
- \return The number of bytes actually read from this NXT.
- */
- virtual ViUInt32 read ( ViPBuf bufferPtr, ViUInt32 numberOfBytes, tStatus& status ) = 0;
-
- //! Reboots this NXT into firmware-download mode.
- /*!
- This is required before invoking the downloadFirmware method.
- The reboot does not occur is the specified status is fatal.
-
- \param status Status chaining object.
- */
- virtual void bootIntoFirmwareDownloadMode( tStatus& status ) = 0;
-
- //! Sets the name of this NXT.
- /*!
- The specified name will be displayed on the NXT, show up during Bluetooth scans, and
- returned when the getDeviceInfo method is called.
-
- \param newName The name for the NXT. The name can be at most 15 characters. However,
- the NXT can only display 8 characters. The string must be NULL terminated.
- \param status Status chaining object.
- */
- virtual void setName( ViConstString newName, tStatus& status ) = 0;
-
- //! Retrieves basic information about this NXT.
- /*!
- Retrieves the name of this NXT, its Bluetooth address, the Bluetooth signal strength,
- and the number of bytes available.
- Information retrieval is not done if specified status is fatal.
-
- \param name Populated with the name of this NXT. The name character array must be
- able to accomodate a NULL-terminated 15 character name. That is, it must have a
- capacity of 16 bytes.
- \param bluetoothAddress Populated with this NXT's Bluetooth address. The bluetooth
- address array must have a capacity of six bytes.
- \param signalStrength Populated with strength of the signal for this NXT's four
- Bluetooth conenctions. The signal strength array must have a capacity of four
- bytes.
- \param availableFlash Populated with the amount of memory in bytes that is not
- occupied by firmware or user files.
- \param status Status chaining object.
- */
- virtual void getDeviceInfo( ViChar name[], ViByte bluetoothAddress[],
- ViUInt8 signalStrength[], ViUInt32 &availableFlash, tStatus& status ) = 0;
-
- //! Erases all files from this NXT, leaving only the firmware.
- /*!
- All programs, sounds, and data logs are erased.
- The erasure does not occur if specified status is fatal.
-
- \param status Status chaining object.
- */
- virtual void eraseUserFlash( tStatus& status ) = 0;
-
- //! Polls the data buffer on this NXT for the number of bytes available to be read.
- /*
- The data buffer is not polled if the specified status is fatal.
-
- \param bufferSelector The buffer from which to read.
- \param status Status chaining object.
- \return The number of bytes in the buffer available to be read.
- */
- virtual ViUInt32 pollAvailableLength( tBuffer bufferSelector, tStatus& status ) = 0;
-
- //! Reads data from the data buffer on this NXT.
- /*!
- Data is not read if the specified status is fatal.
-
- \param dataBuffer Populated with the data that is read from the specified buffer.
- \param bufferSelector The buffer from which to read.
- \param numberOfBytesToRead The number of bytes to read from the data buffer.
- \param status Status chaining object.
- \return The number of bytes actually read from the data buffer.
- */
- virtual ViUInt32 readBufferData( ViPBuf dataBuffer, tBuffer bufferSelector,
- ViUInt32 numberOfBytesToRead, tStatus& status ) = 0;
-
- //! Retrieves the resource string for this NXT's session.
- /*
- An example resource string could look like the one of the following:
- BTH::LEGOBrick::00:16:53:04:05:06::5
- BTH::LEGOBrick::00:16:53:04:05:06::1
- BTH::Brick2::00:16:53:44:FF:66
- USB0::0x0694::0x0002::0016535127BA::RAW
-
- \param resourceString Populated with the resource string. The resource string must
- have a capacity of 256 bytes.
- \param status Status chaining object.
- */
- virtual void getResourceString( ViChar resourceString[], tStatus& status ) = 0;
-
- //! Resets the Bluetooth module on this NXT to its factory settings.
- /*
- \param status Status chaining object.
- */
- virtual void bluetoothFactoryReset( tStatus& status ) = 0;
-
- //! Creates an NXT object
- /*!
- Creates an NXT object representing the specified NXT.
- The NXT object is not created if the specified status is fatal.
- The returned NXT object should be destroyed using the iNXT::destroyNXT method.
-
- \param resourceString A string identifying which resource should be opened. A list
- of possible strings can be obtained using an iNXTIterator (refer to the
- createNXTIterator method).
- \param status Status chaining object.
- \param checkFirmwareVersion A boolean flag that specifies whether version validation
- should occur (defaults to true).
- \return A pointer to the iNXT object that was created.
- */
- nFANTOM100_kExport static iNXT* _VI_FUNCC createNXT( ViConstString resourceString,
- tStatus& status, ViBoolean checkFirmwareVersion = true );
-
- //! Destroys an NXT object
- /*!
- \param nxtPtr A pointer to the NXT object to destroy; may be NULL
- */
- nFANTOM100_kExport static void _VI_FUNCC destroyNXT( iNXT* nxtPtr );
-
- //! Creates an NXT iterator.
- /*!
- The NXT iterator can be used to find all NXTs that are connected (USB) or in range
- (Bluetooth).
- The NXT iterator is not created if the specified status is fatal.
- The returned NXT iterator object should be destroyed using the
- iNXT::destroyNXTIterator method.
-
- \param searchBluetooth A boolean flag that specifies if the iterator should traverse
- NXTs via Bluetooth.
- \param bluetoothSearchTimeoutInSeconds The minimum number of seconds that should be
- spent waiting for Bluetooth devices to respond.
- \param status Status chaining object.
- \return A pointer to the iNXTIterator object that was created.
- */
- nFANTOM100_kExport static iNXTIterator* _VI_FUNCC createNXTIterator(
- ViBoolean searchBluetooth, ViUInt32 bluetoothSearchTimeoutInSeconds,
- tStatus& status );
-
- //! Destroys an NXT iterator object.
- /*
- \param iterPtr A pointer to the iNXTIterator object to destroy.
- */
- nFANTOM100_kExport static void _VI_FUNCC destroyNXTIterator( iNXTIterator* iterPtr );
-
- //! Pairs with an NXT via Bluetooth.
- /*!
- Programmatically pairs the specified NXT to this computer and, on Windows, creates a
- virtual serial port to use for communication with that NXT. However, clients
- should not depend on the creation of this virtual serial port.
- The pairing is not done if the specified status is fatal.
-
- \param resourceName The resource string that specifies the NXT with which to pair.
- \param passkey A string containing the passkey the computer should exchange with the
- device. The passkey cannot be longer than 15 characters and must be
- NULL-terminated.
- \param pairedResourceName A Bluetooth resource string representing the paired device.
- On Windows, the specified resourceName is suffixed with the COM port; On Mac OS X,
- the RFCOMM channel identifier. The resource string must have a capacity of 256
- bytes.
- \param status Status chaining object.
- */
- nFANTOM100_kExport static void _VI_FUNCC pairBluetooth( ViConstString resourceName,
- ViConstString passkey, ViChar pairedResourceName[], tStatus& status );
-
- //! Unpairs with an NXT via Bluetooth.
- /*!
- Programmatically destroys the Bluetooth pairing that was previously established
- between this computer and the specified NXT. On Mac OS X, this method has no
- effect and doesn't generate a fatal status.
- The unpairing is not done if the specified status is fatal.
-
- \param resourceName The resource string that specifies the NXT with which to unpair.
- \param status Status chaining object.
- */
- nFANTOM100_kExport static void _VI_FUNCC unpairBluetooth( ViConstString resourceName,
- tStatus& status );
-
- //! Determines if the NXT associated with the specified resource string is paired.
- /*!
- The determination is not done if the specified status is fatal.
-
- \param resourceName A resource string that specifies the NXT for which to check its
- pairing status.
- \param status Status chaining object.
- \return VI_TRUE if the NXT is paired with this computer (or if it is connected via
- USB); VI_FALSE otherwise.
- */
- nFANTOM100_kExport static ViBoolean _VI_FUNCC isPaired( ViConstString resourceName,
- tStatus& status );
-
- //! Finds the NXT that is currently in firmware-download mode.
- /*!
- Note that only a single NXT may be in firmware-download mode at a time.
-
- \param resourceName Populated with the resource string. The resource string must
- have a capacity of 256 bytes.
- \param status Status chaining object.
- */
- nFANTOM100_kExport static void findDeviceInFirmwareDownloadMode( ViChar resourceName[],
- tStatus& status );
-
-
- private:
-
- };
-
- // constants...
-
-} // namespace nFANTOM100
-
-
- // declarations for globally-scoped globals...
-
- // typedefs...
- typedef ViObject nFANTOM100_iNXT;
-
- // prototypes...
- extern "C"
- {
-
- nFANTOM100_kExport nFANTOM100_iNXTIterator _VI_FUNCC nFANTOM100_createNXTIterator(
- ViBoolean searchBluetooth,
- ViUInt32 bluetoothSearchTimeoutInSeconds,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_destroyNXTIterator(
- nFANTOM100_iNXTIterator iterPtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_pairBluetooth(
- ViConstString resourceName,
- ViConstString passkey,
- ViChar pairedResourceName[],
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_unpairBluetooth(
- ViConstString resourceName,
- ViStatus* status );
-
- nFANTOM100_kExport ViBoolean _VI_FUNCC nFANTOM100_isPaired(
- ViConstString resourceName,
- ViStatus* status );
-
- nFANTOM100_kExport nFANTOM100_iNXT _VI_FUNCC nFANTOM100_createNXT(
- ViConstString resourceString,
- ViStatus* status,
- ViBoolean checkFirmwareVersion );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_destroyNXT(
- nFANTOM100_iNXT nxtPtr,
- ViStatus* status );
-
- nFANTOM100_kExport nFANTOM100_iFile _VI_FUNCC nFANTOM100_iNXT_createFile(
- nFANTOM100_iNXT nxtPtr,
- ViConstString fileName,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_destroyFile(
- nFANTOM100_iNXT nxtPtr,
- nFANTOM100_iFile filePtr,
- ViStatus* status );
-
- nFANTOM100_kExport nFANTOM100_iFileIterator _VI_FUNCC nFANTOM100_iNXT_createFileIterator(
- nFANTOM100_iNXT nxtPtr,
- ViConstString fileNamePattern,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_destroyFileIterator(
- nFANTOM100_iNXT nxtPtr,
- nFANTOM100_iFileIterator fileIteratorPtr,
- ViStatus* status );
-
- nFANTOM100_kExport nFANTOM100_iModule _VI_FUNCC nFANTOM100_iNXT_createModule(
- nFANTOM100_iNXT nxtPtr,
- ViConstString moduleName,
- ViUInt32 moduleID,
- ViUInt32 moduleSize,
- ViUInt32 ioMapSizeInBytes,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_destroyModule(
- nFANTOM100_iNXT nxtPtr,
- nFANTOM100_iModule modulePtr,
- ViStatus* status );
-
- nFANTOM100_kExport nFANTOM100_iModuleIterator _VI_FUNCC nFANTOM100_iNXT_createModuleIterator(
- nFANTOM100_iNXT nxtPtr,
- ViConstString moduleNamePattern,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_destroyModuleIterator(
- nFANTOM100_iNXT nxtPtr,
- nFANTOM100_iModuleIterator moduleIteratorPtr,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_getFirmwareVersion(
- nFANTOM100_iNXT nxtPtr,
- ViUInt8* protocolVersionMajorPtr,
- ViUInt8* protocolVersionMinorPtr,
- ViUInt8* firmwareVersionMajorPtr,
- ViUInt8* firmwareVersionMinorPtr,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_sendDirectCommand(
- nFANTOM100_iNXT nxtPtr,
- ViBoolean requireResponse,
- const ViByte commandBufferPtr[],
- ViUInt32 commandBufferSizeInBytes,
- ViPBuf responseBufferPtr,
- ViUInt32 responseBufferSizeInBytes,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_findDeviceInFirmwareDownloadMode(
- ViChar resourceString[],
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_downloadFirmware(
- nFANTOM100_iNXT nxtPtr,
- const ViByte firmwareBufferPtr[],
- ViUInt32 firmwareBufferSize,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_write(
- nFANTOM100_iNXT nxtPtr,
- const ViByte bufferPtr[],
- ViUInt32 numberOfBytes,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_read(
- nFANTOM100_iNXT nxtPtr,
- ViPBuf bufferPtr,
- ViUInt32 numberOfBytes,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_bootIntoFirmwareDownloadMode(
- ViConstString resouceName,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_setName(
- nFANTOM100_iNXT nxtPtr,
- ViConstString newName,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_getDeviceInfo(
- nFANTOM100_iNXT nxtPtr,
- ViChar name[],
- ViByte bluetoothAddress[],
- ViUInt8 signalStrength[],
- ViUInt32* availableFlash,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_eraseUserFlash(
- nFANTOM100_iNXT nxtPtr,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_pollAvailableLength(
- nFANTOM100_iNXT nxtPtr,
- ViUInt32 bufferIndex,
- ViStatus* status );
-
- nFANTOM100_kExport ViUInt32 _VI_FUNCC nFANTOM100_iNXT_readBufferData(
- nFANTOM100_iNXT nxtPtr,
- ViPBuf dataBuffer,
- ViUInt32 bufferIndex,
- ViUInt32 numberOfBytesToRead,
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_getResourceString(
- nFANTOM100_iNXT nxtPtr,
- ViChar resourceString[],
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXT_bluetoothFactoryReset(
- nFANTOM100_iNXT nxtPtr,
- ViStatus* status );
-
-
- } // extern "C"
-
-
-// inline functions and function macros...
-
-
-#endif // ___fantom_iNXT_h___
diff --git a/AT91SAM7S256/armdebug/FantomModule/fantom/iNXTIterator.h b/AT91SAM7S256/armdebug/FantomModule/fantom/iNXTIterator.h
deleted file mode 100644
index 6f43537..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/fantom/iNXTIterator.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*!
- \file iNXTIterator.h
- \brief Interface used for searching for LEGO MINDSTORMS NXTs.
-*/
-/*
- Copyright 2005-2006,
- National Instruments Corporation.
- All rights reserved.
-
- File: iNXTIterator.h
- Originated: 17 Oct 2005
-*/
-
-#ifndef ___fantom_iNXTIterator_h___
-#define ___fantom_iNXTIterator_h___
-
-
-// includes...
-
-#ifndef ___fantom_platform_h___
- #include "platform.h"
-#endif
-
-#ifndef ___fantom_tStatus_h___
- #include "tStatus.h"
-#endif
-
-
-// defines...
-
-
-namespace nFANTOM100
-{
- // forward declarations...
- class iNXT;
-
- // typedefs...
-
- // classes...
-
- /*!
- \class iNXTIterator
- \brief Interface to an iterator for LEGO MINDSTORMS NXTs.
- */
- class iNXTIterator
- {
- friend class iNXT;
-
- // methods
- protected:
-
- //! Destructor
- virtual ~iNXTIterator() = 0;
-
- public:
-
- //! Retrieves the name of the NXT to which this iterator refers.
- /*
- \param resourceName Populated with the name of the NXT to which this iterator
- currently refers. The resource name character array must have a capacity of 256
- bytes.
- \param status Status chaining object.
- */
- virtual void getName( ViChar resourceName[], tStatus& status ) const = 0;
-
- //! Advances this iterator.
- /*!
- Advances this iterator to the next NXT that was found. If no more NXTs are found,
- this iterator is advanced to the end of the list.
- The iterator is not advanced if the specified status is fatal.
- If this iterator is already at the end of the list, a fatal status will be generated.
-
- \param status Status chaining object.
- */
- virtual void advance( tStatus& status ) = 0;
-
- //! Creates an NXT object for the NXT referenced by this iterator.
- /*
- Creates an NXT object for the NXT referenced by this iterator. An object is not
- created if the specified status is fatal or if this iterator refers to the end of
- the list. The returned iNXT object should be destroyed using the iNXT::destroyNXT
- method.
-
- \param status Status chaining object.
- \return A pointer to the iNXT object that was created.
- */
- virtual iNXT* getNXT( tStatus& status ) = 0;
- };
-
-
- // constants...
-
-} // namespace nFANTOM100
-
-
- // declarations for globally-scoped globals...
-
- // typedefs
- typedef ViObject nFANTOM100_iNXTIterator;
-
- // we must duplicate this typedef for the getNXT C wrapper
- typedef ViObject nFANTOM100_iNXT;
-
- extern "C"
- {
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXTIterator_getName(
- nFANTOM100_iNXTIterator iteratorPtr,
- ViChar resourceName[],
- ViStatus* status );
-
- nFANTOM100_kExport void _VI_FUNCC nFANTOM100_iNXTIterator_advance(
- nFANTOM100_iNXTIterator iteratorPtr,
- ViStatus* status );
-
- nFANTOM100_kExport nFANTOM100_iNXT _VI_FUNCC nFANTOM100_iNXTIterator_getNXT(
- nFANTOM100_iNXTIterator iteratorPtr,
- ViStatus* status );
- }
-
-#endif // ___fantom_iNXTIterator_h___
diff --git a/AT91SAM7S256/armdebug/FantomModule/fantom/platform.h b/AT91SAM7S256/armdebug/FantomModule/fantom/platform.h
deleted file mode 100644
index 7455796..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/fantom/platform.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*!
- \file platform.h
- \brief This file contains platform-related defines.
-*/
-/*
- Copyright 2005,
- National Instruments Corporation.
- All rights reserved.
-
- File: platform.h
- Originated: 23 June 2005
-*/
-
-
-#ifndef ___fantom_platform_h___
-#define ___fantom_platform_h___
-
-#ifndef __VISATYPE_HEADER__
- #include "visatype.h"
-#endif
-
-
-#define nFANTOM100_kOSMacOSX 0
-#define nFANTOM100_kOSWin32 0
-
-#define nFANTOM100_kProcessorI386 0
-#define nFANTOM100_kProcessorPPC 0
-
-#define nFANTOM100_kCompilerMSVC 0
-#define nFANTOM100_kCompilerApple 0
-
-
-#if (( defined( __GNUG__ ) || defined( __GNUC__ )) && defined( __APPLE__ ))
-
- #undef nFANTOM100_kOSMacOSX
- #define nFANTOM100_kOSMacOSX 1
-
- #undef nFANTOM100_kCompilerApple
- #define nFANTOM100_kCompilerApple ( __GNUC__ * 10000 \
- + __GNUC_MINOR__ * 100 \
- + __GNUC_PATCHLEVEL__ )
-
- #if ( defined( __ppc__ ))
- #undef nFANTOM100_kProcessorPPC
- #define nFANTOM100_kProcessorPPC 1
-
- #define nFANTOM100_kBigEndian 1
- #define nFANTOM100_kLittleEndian 0
- #elif ( defined( __i386__ ))
- #undef nFANTOM100_kProcessorI386
- #define nFANTOM100_kProcessorI386 1
-
- #define nFANTOM100_kBigEndian 0
- #define nFANTOM100_kLittleEndian 1
- #else
- #error Unknown processor.
- #endif
-
- #ifdef nFANTOM100_kExportSymbols
- #define nFANTOM100_kExport __attribute__ ((section ("__TEXT,__export")))
- #else
- #define nFANTOM100_kExport
- #endif
-
-
-#elif ( defined( _MSC_VER ) && ( defined( _M_IX86 ) || defined( _M_I86 )))
-
- #undef nFANTOM100_kOSWin32
- #define nFANTOM100_kOSWin32 1
-
- #undef nFANTOM100_kCompilerMSVC
- #define nFANTOM100_kCompilerMSVC _MSC_VER
-
- #undef nFANTOM100_kProcessorI386
- #define nFANTOM100_kProcessorI386 1
-
- #ifdef nFANTOM100_kExportSymbols
- #define nFANTOM100_kExport __declspec(dllexport)
- #else
- #define nFANTOM100_kExport __declspec(dllimport)
- #endif
-
- #define nFANTOM100_kBigEndian 0
- #define nFANTOM100_kLittleEndian 1
-
-#else
-
- #error Unknown platform.
-
-#endif
-
-
-#endif // ___fantom_platform_h___
-
diff --git a/AT91SAM7S256/armdebug/FantomModule/fantom/tStatus.h b/AT91SAM7S256/armdebug/FantomModule/fantom/tStatus.h
deleted file mode 100644
index 7622c63..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/fantom/tStatus.h
+++ /dev/null
@@ -1,458 +0,0 @@
-/*!
- \file tStatus.h
- \brief Status code class
-*/
-/*
- Copyright 2005-2006,
- National Instruments Corporation.
- All rights reserved.
-
- File: tStatus.h
- Originated: 10 March 2005
-*/
-
-#ifndef ___fantom_tStatus_h___
-#define ___fantom_tStatus_h___
-
-// includes ...
-
-#ifndef ___fantom_platform_h___
- #include "platform.h"
-#endif
-
-#include <string.h>
-
-
-// defines...
-
-#define nFANTOM_mLocation __FILE__, __LINE__
-
-#define nFANTOM_ForceToWarning(s) (((s) >= 0 ) ? (s) : -(s))
-#define nFANTOM_ForceToFatal(s) (((s) <= 0 ) ? (s) : -(s))
-
-/*!
- \brief The namespace for Fantom 1.0.
-*/
-namespace nFANTOM100
-{
- // forward declarations...
-
- // typedefs...
-
- // classes...
- const ViInt32 kStatusOffset = -142000; // 0xFFFDD550
- const ViStatus kStatusSuccess = VI_SUCCESS;
-
- /*!
- \brief Enumeration of Fantom-specific status codes. NI-VISA status codes may also be
- returned. These are documented in the NI-VISA Programmer Reference Manual which is
- available from <http://ni.com/>.
- */
- enum tFANTOMStatus
- {
- kStatusFirst = (kStatusOffset + 0),
-
- //! Error: Bluetooth pairing operation failed.
- //! Warning: You have already paired with that Bluetooth device.
- kStatusPairingFailed = (kStatusOffset + -5), // 0x54B
-
- //! Error: Bluetooth search failed.
- kStatusBluetoothSearchFailed = (kStatusOffset + -6), // 0x54A
-
- //! Error: System library not found.
- kStatusSystemLibraryNotFound = (kStatusOffset + -7), // 0x549
-
- //! Error: Bluetooth unpairing operation failed.
- kStatusUnpairingFailed = (kStatusOffset + -8), // 0x548
-
- //! Error: Invalid filename specified.
- kStatusInvalidFilename = (kStatusOffset + -9), // 0x547
-
- //! Error: Invalid iterator dereference. (No object to get.)
- kStatusInvalidIteratorDereference = (kStatusOffset + -10), // 0x546
-
- //! Error: Resource locking operation failed.
- kStatusLockOperationFailed = (kStatusOffset + -11), // 0x545
-
- //! Error: Could not determine the requested size.
- kStatusSizeUnknown = (kStatusOffset + -12), // 0x544
-
- //! Error: Cannot open two objects at once.
- kStatusDuplicateOpen = (kStatusOffset + -13), // 0x543
-
- //! Error: File is empty.
- //! Warning: The requested file is empty.
- kStatusEmptyFile = (kStatusOffset + -14), // 0x542
-
- //! Error: Firmware download failed.
- kStatusFirmwareDownloadFailed = (kStatusOffset + -15), // 0x541
-
- //! Error: Could not locate virtual serial port.
- kStatusPortNotFound = (kStatusOffset + -16), // 0x540
-
- //! Error: No more items found.
- kStatusNoMoreItemsFound = (kStatusOffset + -17), // 0x53F
-
- //! Error: Too many unconfigured devices.
- kStatusTooManyUnconfiguredDevices = (kStatusOffset + -18), // 0x53E
-
- //! Error: Command mismatch in firmware response.
- kStatusCommandMismatch = (kStatusOffset + -19), // 0x53D
-
- //! Error: Illegal operation.
- kStatusIllegalOperation = (kStatusOffset + -20), // 0x53C
-
- //! Error: Could not update local Bluetooth cache with new name.
- //! Warning: Could not update local Bluetooth cache with new name.
- kStatusBluetoothCacheUpdateFailed = (kStatusOffset + -21), // 0x53B
-
- //! Error: Selected device is not an NXT.
- kStatusNonNXTDeviceSelected = (kStatusOffset + -22), // 0x53A
-
- //! Error: Communication error. Retry the operation.
- kStatusRetryConnection = (kStatusOffset + -23), // 0x539
-
- //! Error: Could not connect to NXT. Turn the NXT off and then back on before continuing.
- kStatusPowerCycleNXT = (kStatusOffset + -24), // 0x538
-
- //! Error: This feature is not yet implemented.
- kStatusFeatureNotImplemented = (kStatusOffset + -99), // 0x4ED
-
- //! Error: Firmware reported an illegal handle.
- kStatusFWIllegalHandle = (kStatusOffset + -189), // 0x493
-
- //! Error: Firmware reported an illegal file name.
- kStatusFWIllegalFileName = (kStatusOffset + -190), // 0x492
-
- //! Error: Firmware reported an out of bounds reference.
- kStatusFWOutOfBounds = (kStatusOffset + -191), // 0x491
-
- //! Error: Firmware could not find module.
- kStatusFWModuleNotFound = (kStatusOffset + -192), // 0x490
-
- //! Error: Firmware reported that the file already exists.
- kStatusFWFileExists = (kStatusOffset + -193), // 0x48F
-
- //! Error: Firmware reported that the file is full.
- kStatusFWFileIsFull = (kStatusOffset + -194), // 0x48E
-
- //! Error: Firmware reported the append operation is not possible.
- kStatusFWAppendNotPossible = (kStatusOffset + -195), // 0x48D
-
- //! Error: Firmware has no write buffers available.
- kStatusFWNoWriteBuffers = (kStatusOffset + -196), // 0x48C
-
- //! Error: Firmware reported that file is busy.
- kStatusFWFileIsBusy = (kStatusOffset + -197), // 0x48B
-
- //! Error: Firmware reported the undefined error.
- kStatusFWUndefinedError = (kStatusOffset + -198), // 0x48A
-
- //! Error: Firmware reported that no linear space is available.
- kStatusFWNoLinearSpace = (kStatusOffset + -199), // 0x489
-
- //! Error: Firmware reported that handle has already been closed.
- kStatusFWHandleAlreadyClosed = (kStatusOffset + -200), // 0x488
-
- //! Error: Firmware could not find file.
- kStatusFWFileNotFound = (kStatusOffset + -201), // 0x487
-
- //! Error: Firmware reported that the requested file is not linear.
- kStatusFWNotLinearFile = (kStatusOffset + -202), // 0x486
-
- //! Error: Firmware reached the end of the file.
- kStatusFWEndOfFile = (kStatusOffset + -203), // 0x485
-
- //! Error: Firmware expected an end of file.
- kStatusFWEndOfFileExpected = (kStatusOffset + -204), // 0x484
-
- //! Error: Firmware cannot handle more files.
- kStatusFWNoMoreFiles = (kStatusOffset + -205), // 0x483
-
- //! Error: Firmware reported the NXT is out of space.
- kStatusFWNoSpace = (kStatusOffset + -206), // 0x482
-
- //! Error: Firmware could not create a handle.
- kStatusFWNoMoreHandles = (kStatusOffset + -207), // 0x481
-
- //! Error: Firmware reported an unknown error code.
- kStatusFWUnknownErrorCode = (kStatusOffset + -208), // 0x480
-
- kStatusLast = (kStatusOffset + -999)
- };
-
- /*!
- \brief Class that contains a status code and the file name and line number where that
- status code was generated.
- */
- class tStatus
- {
- public:
-
- // methods
-
- //! constructor
- /*!
- Creates a tStatus object intialized to success.
-
- \post The status code is set to VI_SUCCESS.
- */
- inline tStatus( void ) :
- _code( VI_SUCCESS ),
- _lineNumber( 0 )
- {
- _fileName[0] = '\0';
- }
-
-
- //! copy constructor
- /*!
- Copies the code, line number, and file name from the specified tStatus object.
-
- \param status The status object to copy.
- */
- inline tStatus( const tStatus& status ) :
- _code( status._code ),
- _lineNumber( status._lineNumber )
- {
- ::strcpy( _fileName, "" );
- ::strncat( _fileName, status._fileName, kMaxFileNameLength - 1 );
- }
-
-
- //! constructor with code, filename, and line number
- /*!
- Creates a tStatus object initialized to the specified code, file name, and line number.
- Note that the nFANTOM_mLocation macro can be used to pass the fileName and lineNumber
- parameters.
-
- \param code A status code.
- \param fileName The name of the file in which the status code was generated.
- \param lineNumber The line number in the file at which the status code was generated.
- */
- inline tStatus( ViStatus code, const char* fileName, ViUInt32 lineNumber ) :
- _code( code ),
- _lineNumber( lineNumber )
- {
- ::strcpy( _fileName, "" );
- ::strncat( _fileName, reinterpret_cast<const char*>( fileName ), kMaxFileNameLength - 1 );
- }
-
-
- //! destructor
- inline ~tStatus()
- {
- }
-
-
- //! Returns the status code for this status object.
- /*!
- \return The status code for this status object.
- */
- inline ViStatus getCode( void ) const
- {
- return _code;
- }
-
-
- //! Returns the file name in which the status code, for this status object, was generated.
- /*!
- \return The file name in which the status code, for this status object, was generated.
- */
- inline const char* getFileName( void ) const
- {
- return _fileName;
- }
-
-
- //! Returns the line number at which the status code, for this status object, was
- // generated.
- /*!
- \return The line number at which the status code, for this status object, was
- generated.
- */
- inline ViUInt32 getLineNumber( void ) const
- {
- return _lineNumber;
- }
-
-
- //! Sets the status code, file name, and line number for this status object, if
- // appropriate.
- /*!
- Stores the specified status code, file name, and line number in this status object if
- this status object contains a successful status code or if this status object
- contains a warning status code and the specified status code is fatal. A fatal
- status code is denoted by a negative value. A successful status code is denoted
- by VI_SUCCESS.
-
- \param code A status code.
- \param fileName The name of the file in which the status code was generated.
- \param lineNumber The line number in the file at which the status code was generated.
- */
- inline void setCode( ViStatus code, const char* fileName, ViUInt32 lineNumber )
- {
- if(( isSuccess() && code != VI_SUCCESS ) || ( isNotFatal() && code < VI_SUCCESS ))
- {
- _code = code;
- _lineNumber = lineNumber;
- ::strcpy( _fileName, "" );
- ::strncat( _fileName, fileName, kMaxFileNameLength - 1 );
- }
- }
-
-
- //! Assigns the specified status object to this status object, if appropriate.
- /*!
- Stores the status code, file name, and line number of the specified status object in
- this status object if this status object contains a successful status code or if
- this status object contains a warning status code and the status code of the
- speciied status object is fatal. A fatal status code is denoted by a negative
- value. A successful status code is denoted by VI_SUCCESS.
-
- \param status The status object to assign.
- */
- inline void assign( const tStatus& status )
- {
- setCode( status.getCode(), status.getFileName(), status.getLineNumber());
- }
-
-
- //! Clears the status code for this status object.
- /*!
- \post status The code is set to VI_SUCCESS.
- */
- inline void clear( void )
- {
- _code = VI_SUCCESS;
- _lineNumber = 0;
- _fileName[0] = '\0';
- }
-
-
- //! Returns true if this status object contains a status code that is fatal.
- /*!
- A status code with a negative value is considered fatal.
-
- \return true if this status object contains a status code that is
- fatal; false otherwise.
- */
- inline bool isFatal( void ) const
- {
- return ( _code < VI_SUCCESS );
- }
-
- //! Returns true if this status object contains a status code that is not fatal.
- /*!
- Any status code with a non-negative (including zero) value is considered non-fatal.
-
- \return true if this status object contains a non-fatal status code;
- false otherwise.
- */
- inline bool isNotFatal( void ) const
- {
- return !isFatal();
- }
-
-
- //! Returns true if this status object contains a status code that is a warning.
- /*!
- A status code with a non-zero, positive value is considered a warning.
-
- \return true if this status object contains a status code that is a warning; false
- otherwise.
- */
- inline bool isWarning( void ) const
- {
- return ( _code > VI_SUCCESS );
- }
-
-
- //! Returns true if this status object contains the status code for success.
- /*!
- A value of VI_SUCCESS represents success.
-
- \return true if this status object contains the status code for success; false
- otherwise.
- */
- inline bool isSuccess( void ) const
- {
- return ( _code == VI_SUCCESS );
- }
-
- private:
-
- // declared private to prevent assignment
- tStatus& operator=(const tStatus& rhs);
-
- enum
- {
- kMaxFileNameLength = 101
- };
-
- ViStatus _code;
- ViChar _fileName[ kMaxFileNameLength ];
- ViUInt32 _lineNumber;
- };
-
-
- // declarations for globally-scoped globals...
- inline ViStatus convertStatus( ViUInt8 firmwareStatus )
- {
- ViStatus status;
- switch (firmwareStatus)
- {
- // each of these cases corresponds to a unique status code returned by the firmware
- case 0x00 : status = kStatusSuccess;
- break;
- case 0x81 : status = kStatusFWNoMoreHandles; // No more available handles
- break;
- case 0x82 : status = kStatusFWNoSpace; // No space
- break;
- case 0x83 : status = kStatusFWNoMoreFiles; // No more files
- break;
- case 0x84 : status = kStatusFWEndOfFileExpected; // End of file expected
- break;
- case 0x85 : status = kStatusFWEndOfFile; // End of file reached
- break;
- case 0x86 : status = kStatusFWNotLinearFile; // Not a linear file
- break;
- case 0x87 : status = kStatusFWFileNotFound; // File not found
- break;
- case 0x88 : status = kStatusFWHandleAlreadyClosed; // Handle is already closed
- break;
- case 0x89 : status = kStatusFWNoLinearSpace; // No linear space available
- break;
- case 0x8A : status = kStatusFWUndefinedError; // Undefined error
- break;
- case 0x8B : status = kStatusFWFileIsBusy; // File is busy
- break;
- case 0x8C : status = kStatusFWNoWriteBuffers; // No write buffers available
- break;
- case 0x8D : status = kStatusFWAppendNotPossible; // Append not possible
- break;
- case 0x8E : status = kStatusFWFileIsFull; // File is full
- break;
- case 0x8F : status = kStatusFWFileExists; // File already exists
- break;
- case 0x90 : status = kStatusFWModuleNotFound; // Module not found
- break;
- case 0x91 : status = kStatusFWOutOfBounds; // Out of module I/O map boundary
- break;
- case 0x92 : status = kStatusFWIllegalFileName; // Illegal file name
- break;
- case 0x93 : status = kStatusFWIllegalHandle; // Illegal handle
- break;
- default :
- status = kStatusFWUnknownErrorCode;
- }
- return status;
- }
-
- // prototypes...
-
-} // namespace nFANTOM100
-
-// inline functions and function macros...
-
-#endif // ___fantom_tStatus_h___
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceFileIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceFileIterator.vi
deleted file mode 100644
index 427df5b..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceFileIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceModuleIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceModuleIterator.vi
deleted file mode 100644
index 46617f5..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceModuleIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceNXTIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceNXTIterator.vi
deleted file mode 100644
index e223afd..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/advanceNXTIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/bluetoothFactoryReset.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/bluetoothFactoryReset.vi
deleted file mode 100644
index d821675..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/bluetoothFactoryReset.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/bootSamba.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/bootSamba.vi
deleted file mode 100644
index a1bf225..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/bootSamba.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/closeFile.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/closeFile.vi
deleted file mode 100644
index f5b1e12..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/closeFile.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createFile.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createFile.vi
deleted file mode 100644
index b3442ac..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createFile.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createFileIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createFileIterator.vi
deleted file mode 100644
index 4ad1d34..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createFileIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createModule.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createModule.vi
deleted file mode 100644
index bd1f3e8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createModule.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createModuleIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createModuleIterator.vi
deleted file mode 100644
index 051e858..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createModuleIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createNXT.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createNXT.vi
deleted file mode 100644
index bb38bb8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createNXT.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createNXTIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createNXTIterator.vi
deleted file mode 100644
index 2827435..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/createNXTIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyFile.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyFile.vi
deleted file mode 100644
index a57aea3..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyFile.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyFileIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyFileIterator.vi
deleted file mode 100644
index 0010789..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyFileIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyModule.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyModule.vi
deleted file mode 100644
index 66af71f..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyModule.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyModuleIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyModuleIterator.vi
deleted file mode 100644
index c0a4b9a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyModuleIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyNXT.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyNXT.vi
deleted file mode 100644
index 3065055..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyNXT.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyNXTIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyNXTIterator.vi
deleted file mode 100644
index f763b9a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/destroyNXTIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/downloadFirmware.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/downloadFirmware.vi
deleted file mode 100644
index d0c082b..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/downloadFirmware.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/eraseUserFlash.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/eraseUserFlash.vi
deleted file mode 100644
index 4961a39..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/eraseUserFlash.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/findDeviceInFirmwareDownloadMode.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/findDeviceInFirmwareDownloadMode.vi
deleted file mode 100644
index 44bfc91..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/findDeviceInFirmwareDownloadMode.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/findNXT.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/findNXT.vi
deleted file mode 100644
index 78b9034..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/findNXT.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getAvailableSize.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getAvailableSize.vi
deleted file mode 100644
index c6f2be6..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getAvailableSize.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getDeviceInfo.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getDeviceInfo.vi
deleted file mode 100644
index 1fbc025..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getDeviceInfo.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFile.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFile.vi
deleted file mode 100644
index 6a31965..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFile.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileName.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileName.vi
deleted file mode 100644
index b5d7724..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileName.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileSize.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileSize.vi
deleted file mode 100644
index d0d18dc..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileSize.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileSizeFromIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileSizeFromIterator.vi
deleted file mode 100644
index b9ee459..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFileSizeFromIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFilenameFromIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFilenameFromIterator.vi
deleted file mode 100644
index f389374..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFilenameFromIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFirmwareVersion.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFirmwareVersion.vi
deleted file mode 100644
index d31e7b1..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getFirmwareVersion.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getIOMapSize.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getIOMapSize.vi
deleted file mode 100644
index b85503e..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getIOMapSize.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModule.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModule.vi
deleted file mode 100644
index c7aa164..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModule.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleID.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleID.vi
deleted file mode 100644
index c361683..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleID.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleName.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleName.vi
deleted file mode 100644
index 1e677ac..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleName.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleNameFromIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleNameFromIterator.vi
deleted file mode 100644
index f398170..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleNameFromIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleSize.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleSize.vi
deleted file mode 100644
index 504956b..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getModuleSize.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getNXTFromIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getNXTFromIterator.vi
deleted file mode 100644
index 8301df2..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getNXTFromIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getResourceString.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getResourceString.vi
deleted file mode 100644
index 55f8fe7..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getResourceString.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getStringFromNXTIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getStringFromNXTIterator.vi
deleted file mode 100644
index 9f97c2a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/getStringFromNXTIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/isPaired.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/isPaired.vi
deleted file mode 100644
index a2f9602..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/isPaired.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nakedRead.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nakedRead.vi
deleted file mode 100644
index 00a43de..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nakedRead.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nakedWrite.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nakedWrite.vi
deleted file mode 100644
index 01bd8e1..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nakedWrite.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nxt.ctl b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nxt.ctl
deleted file mode 100644
index 2f06605..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/nxt.ctl
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/openForRead.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/openForRead.vi
deleted file mode 100644
index 74dd60b..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/openForRead.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/openForWrite.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/openForWrite.vi
deleted file mode 100644
index 180bd70..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/openForWrite.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/pairBluetooth.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/pairBluetooth.vi
deleted file mode 100644
index 1845031..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/pairBluetooth.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/pollAvailableLength.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/pollAvailableLength.vi
deleted file mode 100644
index 0b74f5d..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/pollAvailableLength.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/read.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/read.vi
deleted file mode 100644
index 9cf87a4..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/read.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/readBufferData.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/readBufferData.vi
deleted file mode 100644
index 1ebef92..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/readBufferData.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/readIOMap.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/readIOMap.vi
deleted file mode 100644
index be244b0..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/readIOMap.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/remove.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/remove.vi
deleted file mode 100644
index 4216b11..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/remove.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/sendDirectCommand.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/sendDirectCommand.vi
deleted file mode 100644
index c7694ca..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/sendDirectCommand.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/setNXTName.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/setNXTName.vi
deleted file mode 100644
index 19339d2..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/setNXTName.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/unpairBluetooth.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/unpairBluetooth.vi
deleted file mode 100644
index c2e3b7c..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/unpairBluetooth.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/write.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/write.vi
deleted file mode 100644
index 9f556a0..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/write.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/writeIOMap.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/writeIOMap.vi
deleted file mode 100644
index dda451b..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/macosx/writeIOMap.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceFileIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceFileIterator.vi
deleted file mode 100644
index 19fc124..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceFileIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceModuleIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceModuleIterator.vi
deleted file mode 100644
index b9879c7..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceModuleIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceNXTIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceNXTIterator.vi
deleted file mode 100644
index a0fe1f1..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/advanceNXTIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/bluetoothFactoryReset.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/bluetoothFactoryReset.vi
deleted file mode 100644
index 0f9c6a8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/bluetoothFactoryReset.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/bootSamba.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/bootSamba.vi
deleted file mode 100644
index 397a119..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/bootSamba.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/closeFile.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/closeFile.vi
deleted file mode 100644
index 3e893e7..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/closeFile.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createFile.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createFile.vi
deleted file mode 100644
index 1445f12..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createFile.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createFileIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createFileIterator.vi
deleted file mode 100644
index 5554f4b..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createFileIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createModule.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createModule.vi
deleted file mode 100644
index b640ae7..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createModule.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createModuleIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createModuleIterator.vi
deleted file mode 100644
index fd79dba..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createModuleIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createNXT.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createNXT.vi
deleted file mode 100644
index 47b3243..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createNXT.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createNXTIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createNXTIterator.vi
deleted file mode 100644
index c6f8f24..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/createNXTIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyFile.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyFile.vi
deleted file mode 100644
index c71a99a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyFile.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyFileIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyFileIterator.vi
deleted file mode 100644
index 783c4f4..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyFileIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyModule.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyModule.vi
deleted file mode 100644
index 0cf7fb7..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyModule.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyModuleIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyModuleIterator.vi
deleted file mode 100644
index 5e40e7e..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyModuleIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyNXT.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyNXT.vi
deleted file mode 100644
index 42409c3..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyNXT.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyNXTIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyNXTIterator.vi
deleted file mode 100644
index b9a9113..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/destroyNXTIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/downloadFirmware.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/downloadFirmware.vi
deleted file mode 100644
index cf95da4..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/downloadFirmware.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/eraseUserFlash.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/eraseUserFlash.vi
deleted file mode 100644
index d3c9154..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/eraseUserFlash.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/findDeviceInFirmwareDownloadMode.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/findDeviceInFirmwareDownloadMode.vi
deleted file mode 100644
index 4a0b7c6..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/findDeviceInFirmwareDownloadMode.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/findNXT.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/findNXT.vi
deleted file mode 100644
index 747c8cd..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/findNXT.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getAvailableSize.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getAvailableSize.vi
deleted file mode 100644
index b511b2d..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getAvailableSize.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getDeviceInfo.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getDeviceInfo.vi
deleted file mode 100644
index 835046a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getDeviceInfo.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFile.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFile.vi
deleted file mode 100644
index 2931da1..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFile.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileName.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileName.vi
deleted file mode 100644
index 40ec334..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileName.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileSize.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileSize.vi
deleted file mode 100644
index 3ba069e..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileSize.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileSizeFromIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileSizeFromIterator.vi
deleted file mode 100644
index 9228800..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFileSizeFromIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFilenameFromIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFilenameFromIterator.vi
deleted file mode 100644
index bbbf882..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFilenameFromIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFirmwareVersion.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFirmwareVersion.vi
deleted file mode 100644
index 38760ac..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getFirmwareVersion.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getIOMapSize.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getIOMapSize.vi
deleted file mode 100644
index adf1396..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getIOMapSize.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModule.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModule.vi
deleted file mode 100644
index eeff3c8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModule.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleID.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleID.vi
deleted file mode 100644
index 2250164..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleID.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleName.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleName.vi
deleted file mode 100644
index b0620c8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleName.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleNameFromIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleNameFromIterator.vi
deleted file mode 100644
index f0e31ce..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleNameFromIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleSize.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleSize.vi
deleted file mode 100644
index 1b2a5f6..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getModuleSize.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getNXTFromIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getNXTFromIterator.vi
deleted file mode 100644
index 8acd597..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getNXTFromIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getResourceString.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getResourceString.vi
deleted file mode 100644
index c0d019a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getResourceString.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getStringFromNXTIterator.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getStringFromNXTIterator.vi
deleted file mode 100644
index 8dee827..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/getStringFromNXTIterator.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/isPaired.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/isPaired.vi
deleted file mode 100644
index 1c73992..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/isPaired.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nakedRead.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nakedRead.vi
deleted file mode 100644
index 9c40980..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nakedRead.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nakedWrite.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nakedWrite.vi
deleted file mode 100644
index f2f875a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nakedWrite.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nxt.ctl b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nxt.ctl
deleted file mode 100644
index 6016dd1..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/nxt.ctl
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/openForRead.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/openForRead.vi
deleted file mode 100644
index 48d08e5..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/openForRead.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/openForWrite.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/openForWrite.vi
deleted file mode 100644
index e5d83c8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/openForWrite.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/pairBluetooth.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/pairBluetooth.vi
deleted file mode 100644
index 52fb06a..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/pairBluetooth.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/pollAvailableLength.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/pollAvailableLength.vi
deleted file mode 100644
index 6d05f67..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/pollAvailableLength.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/read.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/read.vi
deleted file mode 100644
index c20cab9..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/read.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/readBufferData.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/readBufferData.vi
deleted file mode 100644
index 6b621d8..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/readBufferData.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/readIOMap.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/readIOMap.vi
deleted file mode 100644
index 9d89134..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/readIOMap.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/remove.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/remove.vi
deleted file mode 100644
index 9870267..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/remove.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/sendDirectCommand.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/sendDirectCommand.vi
deleted file mode 100644
index dba13c6..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/sendDirectCommand.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/setNXTName.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/setNXTName.vi
deleted file mode 100644
index 65aa4ac..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/setNXTName.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/unpairBluetooth.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/unpairBluetooth.vi
deleted file mode 100644
index 9389c36..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/unpairBluetooth.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/write.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/write.vi
deleted file mode 100644
index d6f95d9..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/write.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/writeIOMap.vi b/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/writeIOMap.vi
deleted file mode 100644
index 621546c..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/include/labview/win32/writeIOMap.vi
+++ /dev/null
Binary files differ
diff --git a/AT91SAM7S256/armdebug/FantomModule/pyfantom/__init__.py b/AT91SAM7S256/armdebug/FantomModule/pyfantom/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/pyfantom/__init__.py
+++ /dev/null
diff --git a/AT91SAM7S256/armdebug/FantomModule/setup.py b/AT91SAM7S256/armdebug/FantomModule/setup.py
deleted file mode 100644
index e713d2f..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/setup.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from distutils.core import setup, Extension
-import sys
-import os
-
-def getextensions():
- mac_ext = Extension("FantomModule",
- define_macros=[('PYFANTOM_DEBUG', '0')], # set to '1' to print debug messges
- include_dirs=['.'],
- extra_compile_args=["-Wno-strict-prototypes"],
- extra_link_args=["-framework Fantom"],
- sources=["FantomModule.cpp"]
- )
- return [mac_ext]
-
-# Must specify i386 arch via environment variable since Fantom libraries are i386 only
-# Order of gcc flags is important, it can't be specified via Extension() module
-os.environ['ARCHFLAGS'] = '-arch i386'
-
-# install the main library
-setup(name="pyfantom",
- version="0.1",
- author="Tat-Chee Wan",
- author_email="tcwan@cs.usm.my",
- url="",
- description="Python Extension to call Fantom Driver",
- long_description="Python Wrapper for Fantom Driver on Mac OS X.",
- license="GPL",
- packages=["pyfantom"],
- ext_modules=getextensions(),
- classifiers = [ "Development Status :: 3 - Alpha",
- "Intended Audience :: Developers",
- # Need to confirm Fantom / NI-VISA license compatibility
- # "License :: OSI Approved :: GNU General Public License (GPL)",
- # "License :: OSI Approved :: GNU General Public License v2",
- "Programming Language :: C++",
- "Topic :: Software Development :: Libraries",
- "Topic :: System :: Networking",
- "Topic :: Communications",
- "Operating System :: MacOS :: MacOS X" ]
- )
diff --git a/AT91SAM7S256/armdebug/FantomModule/visatype.h b/AT91SAM7S256/armdebug/FantomModule/visatype.h
deleted file mode 100644
index a667ff1..0000000
--- a/AT91SAM7S256/armdebug/FantomModule/visatype.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*---------------------------------------------------------------------------*/
-/* Distributed by VXIplug&play Systems Alliance */
-/* */
-/* Do not modify the contents of this file. */
-/*---------------------------------------------------------------------------*/
-/* */
-/* Title : VISATYPE.H */
-/* Date : 08-01-98 */
-/* Purpose : Fundamental VISA data types and macro definitions */
-/* */
-/*---------------------------------------------------------------------------*/
-
-#ifndef __VISATYPE_HEADER__
-#define __VISATYPE_HEADER__
-
-#if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)) && !defined(_NI_mswin16_)
-#define _VI_FAR
-#define _VI_FUNC __stdcall
-#define _VI_FUNCC __cdecl
-#define _VI_FUNCH __stdcall
-#define _VI_SIGNED signed
-#elif defined(_CVI_) && defined(_NI_i386_)
-#define _VI_FAR
-#define _VI_FUNC _pascal
-#define _VI_FUNCC
-#define _VI_FUNCH _pascal
-#define _VI_SIGNED signed
-#elif (defined(_WINDOWS) || defined(_Windows)) && !defined(_NI_mswin16_)
-#define _VI_FAR _far
-#define _VI_FUNC _far _pascal _export
-#define _VI_FUNCC _far _cdecl _export
-#define _VI_FUNCH _far _pascal
-#define _VI_SIGNED signed
-#elif (defined(hpux) || defined(__hpux)) && (defined(__cplusplus) || defined(__cplusplus__))
-#define _VI_FAR
-#define _VI_FUNC
-#define _VI_FUNCC
-#define _VI_FUNCH
-#define _VI_SIGNED
-#else
-#define _VI_FAR
-#define _VI_FUNC
-#define _VI_FUNCC
-#define _VI_FUNCH
-#define _VI_SIGNED signed
-#endif
-
-#define _VI_ERROR (-2147483647L-1) /* 0x80000000 */
-#define _VI_PTR _VI_FAR *
-
-/*- VISA Types --------------------------------------------------------------*/
-
-typedef unsigned long ViUInt32;
-typedef ViUInt32 _VI_PTR ViPUInt32;
-typedef ViUInt32 _VI_PTR ViAUInt32;
-
-typedef _VI_SIGNED long ViInt32;
-typedef ViInt32 _VI_PTR ViPInt32;
-typedef ViInt32 _VI_PTR ViAInt32;
-
-typedef unsigned short ViUInt16;
-typedef ViUInt16 _VI_PTR ViPUInt16;
-typedef ViUInt16 _VI_PTR ViAUInt16;
-
-typedef _VI_SIGNED short ViInt16;
-typedef ViInt16 _VI_PTR ViPInt16;
-typedef ViInt16 _VI_PTR ViAInt16;
-
-typedef unsigned char ViUInt8;
-typedef ViUInt8 _VI_PTR ViPUInt8;
-typedef ViUInt8 _VI_PTR ViAUInt8;
-
-typedef _VI_SIGNED char ViInt8;
-typedef ViInt8 _VI_PTR ViPInt8;
-typedef ViInt8 _VI_PTR ViAInt8;
-
-typedef char ViChar;
-typedef ViChar _VI_PTR ViPChar;
-typedef ViChar _VI_PTR ViAChar;
-
-typedef unsigned char ViByte;
-typedef ViByte _VI_PTR ViPByte;
-typedef ViByte _VI_PTR ViAByte;
-
-typedef void _VI_PTR ViAddr;
-typedef ViAddr _VI_PTR ViPAddr;
-typedef ViAddr _VI_PTR ViAAddr;
-
-typedef float ViReal32;
-typedef ViReal32 _VI_PTR ViPReal32;
-typedef ViReal32 _VI_PTR ViAReal32;
-
-typedef double ViReal64;
-typedef ViReal64 _VI_PTR ViPReal64;
-typedef ViReal64 _VI_PTR ViAReal64;
-
-typedef ViPByte ViBuf;
-typedef ViPByte ViPBuf;
-typedef ViPByte _VI_PTR ViABuf;
-
-typedef ViPChar ViString;
-typedef ViPChar ViPString;
-typedef ViPChar _VI_PTR ViAString;
-
-typedef ViString ViRsrc;
-typedef ViString ViPRsrc;
-typedef ViString _VI_PTR ViARsrc;
-
-typedef ViUInt16 ViBoolean;
-typedef ViBoolean _VI_PTR ViPBoolean;
-typedef ViBoolean _VI_PTR ViABoolean;
-
-typedef ViInt32 ViStatus;
-typedef ViStatus _VI_PTR ViPStatus;
-typedef ViStatus _VI_PTR ViAStatus;
-
-typedef ViUInt32 ViVersion;
-typedef ViVersion _VI_PTR ViPVersion;
-typedef ViVersion _VI_PTR ViAVersion;
-
-typedef ViUInt32 ViObject;
-typedef ViObject _VI_PTR ViPObject;
-typedef ViObject _VI_PTR ViAObject;
-
-typedef ViObject ViSession;
-typedef ViSession _VI_PTR ViPSession;
-typedef ViSession _VI_PTR ViASession;
-
-typedef ViUInt32 ViAttr;
-
-#ifndef _VI_CONST_STRING_DEFINED
-typedef const ViChar * ViConstString;
-#define _VI_CONST_STRING_DEFINED
-#endif
-
-/*- Completion and Error Codes ----------------------------------------------*/
-
-#define VI_SUCCESS (0L)
-
-/*- Other VISA Definitions --------------------------------------------------*/
-
-#define VI_NULL (0)
-
-#define VI_TRUE (1)
-#define VI_FALSE (0)
-
-/*- Backward Compatibility Macros -------------------------------------------*/
-
-#define VISAFN _VI_FUNC
-#define ViPtr _VI_PTR
-
-#endif
-
-/*- The End -----------------------------------------------------------------*/
-
diff --git a/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py b/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py
index a4ea2ad..1a87793 100755
--- a/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py
+++ b/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py
@@ -20,7 +20,7 @@ import socket
import optparse
import select
#import usb
-import nxt.pyfantom
+import pyfantom
import struct
CTRLC = chr(3)
@@ -134,7 +134,7 @@ class NXTGDBServer:
s.bind (('', self.port))
s.listen (1)
# Open connection to the NXT brick.
- brick = nxt.locator.find_one_brick ()
+ brick = nxt.locator.find_one_brick (method=nxt.Method(usb=False, bluetooth=False, fantomusb=True, fantombt=False))
brick.sock.debug = DEBUG
print "Waiting for GDB connection on port %s..." % self.port
while True:
diff --git a/AT91SAM7S256/armdebug/Host/pyenv-nxt-gdb-server b/AT91SAM7S256/armdebug/Host/pyenv-nxt-gdb-server
index 12dac80..b98c2d8 100755
--- a/AT91SAM7S256/armdebug/Host/pyenv-nxt-gdb-server
+++ b/AT91SAM7S256/armdebug/Host/pyenv-nxt-gdb-server
@@ -1,3 +1,3 @@
#!/bin/sh
-export PYTHONPATH=~/gitrepo/armdebug/nxt-python-fantom
+export PYTHONPATH=~/svnrepo/nxt-python:~/gitrepo/pyfantom
arch -i386 /usr/bin/python2.6 ~/gitrepo/armdebug/Host/nxt-gdb-server.py
diff --git a/AT91SAM7S256/armdebug/README b/AT91SAM7S256/armdebug/README
index 0e5ca38..4660b1e 100644
--- a/AT91SAM7S256/armdebug/README
+++ b/AT91SAM7S256/armdebug/README
@@ -9,14 +9,8 @@ Contents
The various folders contents are as follows:
Debugger: GDB client driver for NXT (need to be embedded in firmware code)
Host: GDB Server for PC Host
-nxt-python-fantom: Local fork of nxt-python to support pyFantom
-Obsolete
-========
-FantomModule: pyFantom - Python Wrapper for Fantom Driver on Mac OSX (used by nxt-python) [abandoned for now, use pyfantom instead]
-
-
-LICENCES
+LICENSES
========
The armdebug code is dual-licensed. Please see COPYING for more details.
Other projects included in this repository have their respective licenses.