diff -rub lpc21isp-1.60/lpc21isp.c lpc21isp-Linux//lpc21isp.c --- lpc21isp-1.60/lpc21isp.c 2008-07-21 15:17:06.000000000 -0600 +++ lpc21isp-Linux//lpc21isp.c 2008-09-16 09:21:20.000000000 -0600 @@ -22,6 +22,7 @@ #include "adprog.h" #include "lpcprog.h" #include "lpcterm.h" +#include "errno.h" /* Change-History: @@ -319,10 +320,7 @@ if (IspEnvironment->fdCom < 0) { - int* p_err = __error(); - int err; - if (p_err) { err = *p_err; } - DebugPrintf(1, "Can't open COM-Port %s ! (Error: %dd (0x%X))\n", IspEnvironment->serial_port, err, err); + DebugPrintf(1, "Can't open COM-Port %s ! (Error: %dd (0x%X))\n", IspEnvironment->serial_port, errno, errno); exit(2); } diff -rub lpc21isp-1.60/lpc21isp.h lpc21isp-Linux//lpc21isp.h --- lpc21isp-1.60/lpc21isp.h 2008-05-10 17:35:00.000000000 -0600 +++ lpc21isp-Linux//lpc21isp.h 2008-09-16 09:18:42.000000000 -0600 @@ -165,6 +165,7 @@ #endif unsigned serial_timeout_count; /**< Local used to track timeouts on serial port read. */ + unsigned char DoNotStart; /* Do not start Code if this is set*/ } ISP_ENVIRONMENT; @@ -173,7 +174,6 @@ #define DebugPrintf(in, ...) #else -extern int debug_level; #if defined INTEGRATED_IN_WIN_APP @@ -191,7 +191,6 @@ #else void DebugPrintf(int level, const char *fmt, ...); -//#define DebugPrintf(level, ...) if (level <= debug_level) { TRACE( __VA_ARGS__ ); } #endif void ClearSerialPortBuffers(ISP_ENVIRONMENT *IspEnvironment); diff -rub lpc21isp-1.60/lpcprog.c lpc21isp-Linux//lpcprog.c --- lpc21isp-1.60/lpcprog.c 2008-07-21 14:39:50.000000000 -0600 +++ lpc21isp-Linux//lpcprog.c 2008-09-16 08:52:46.000000000 -0600 @@ -1062,15 +1062,16 @@ } else { + if (IspEnvironment->DoNotStart == 0) + { DebugPrintf(2, "Now launching the brand new code\n"); fflush(stdout); - if (IspEnvironment->HalfDuplex == 0) sprintf(tmpString, "G %ld A\r\n", IspEnvironment->StartAddress); else sprintf(tmpString, "G %ld A\n", IspEnvironment->StartAddress); - SendComPort(IspEnvironment, tmpString); //goto 0 : run this fresh new downloaded code code + if (IspEnvironment->BinaryOffset < LPC_RAMSTART) { // Skip response on G command - show response on Terminal instead ReceiveComPort(IspEnvironment, Answer, sizeof(Answer)-1, &realsize, 2, 5000); @@ -1099,6 +1100,7 @@ return (FAILED_RUN + GetAndReportErrorNumber(Answer)); } } + } fflush(stdout); } Only in lpc21isp-Linux/: lpcprog.c.orig diff -rub lpc21isp-1.60/Makefile lpc21isp-Linux//Makefile --- lpc21isp-1.60/Makefile 2008-04-07 00:23:00.000000000 -0600 +++ lpc21isp-Linux//Makefile 2008-09-16 09:23:02.000000000 -0600 @@ -3,9 +3,9 @@ GLOBAL_DEP = adprog.h lpc21isp.h lpcprog.h lpcterm.h CC = gcc -ifneq ($findstring("freebsd", $(OSTYPE)),"") -CFLAGS+=-D__FREEBSD__ -endif +#ifneq ($findstring("freebsd", $(OSTYPE)),"") +#CFLAGS+=-D__FREEBSD__ +#endif adprog.o: adprog.c $(GLOBAL_DEP) $(CC) $(CDEBUG) $(CFLAGS) -c -o adprog.o adprog.c @@ -21,3 +21,4 @@ clean: $(RM) adprog.o lpcprog.o lpcterm.o lpc21isp + $(RM) *~