Clean up legacy code
This commit is contained in:
parent
fe6f08d48f
commit
fc54ef5e59
|
@ -35,7 +35,6 @@ option(USE_LIBUSBWIN32 "Prefer libusb-win32 over libusb" OFF)
|
||||||
option(DEBUG_CMAKE "Enable debugging output for this CMake project" OFF)
|
option(DEBUG_CMAKE "Enable debugging output for this CMake project" OFF)
|
||||||
|
|
||||||
include(CheckIncludeFile)
|
include(CheckIncludeFile)
|
||||||
include(CheckFunctionExists)
|
|
||||||
include(CheckSymbolExists)
|
include(CheckSymbolExists)
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
include(FindPackageMessage)
|
include(FindPackageMessage)
|
||||||
|
@ -126,24 +125,6 @@ else()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# =====================================
|
|
||||||
# Detect headers
|
|
||||||
# =====================================
|
|
||||||
|
|
||||||
check_include_file(stdint.h HAVE_STDINT_H)
|
|
||||||
check_include_file(stdlib.h HAVE_STDLIB_H)
|
|
||||||
check_include_file(inttypes.h HAVE_INTTYPES_H)
|
|
||||||
check_include_file(netinet/in.h HAVE_NETINET_IN_H)
|
|
||||||
|
|
||||||
# =====================================
|
|
||||||
# Detect functions
|
|
||||||
# =====================================
|
|
||||||
|
|
||||||
check_function_exists(usleep HAVE_USLEEP)
|
|
||||||
check_function_exists(getaddrinfo HAVE_GETADDRINFO)
|
|
||||||
check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
|
|
||||||
check_function_exists(strcasecmp HAVE_STRCASECMP)
|
|
||||||
|
|
||||||
# =====================================
|
# =====================================
|
||||||
# Detect installed libraries
|
# Detect installed libraries
|
||||||
# =====================================
|
# =====================================
|
||||||
|
@ -274,7 +255,7 @@ if(USE_EXTERNAL)
|
||||||
|
|
||||||
FetchContent_Declare(libftdi
|
FetchContent_Declare(libftdi
|
||||||
GIT_REPOSITORY https://github.com/avrdudes/libftdi.git
|
GIT_REPOSITORY https://github.com/avrdudes/libftdi.git
|
||||||
GIT_TAG facd9b16336539b68e8e824ece994d3d3eb2f091
|
GIT_TAG f3a54da710002a7d25a32a69e667a69ef84cc120
|
||||||
)
|
)
|
||||||
|
|
||||||
message(STATUS "Fetching external libraries, please wait...")
|
message(STATUS "Fetching external libraries, please wait...")
|
||||||
|
@ -313,10 +294,8 @@ endif()
|
||||||
add_compile_definitions(CONFIG_DIR=\"${CONFIG_DIR}\")
|
add_compile_definitions(CONFIG_DIR=\"${CONFIG_DIR}\")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(HAVE_LIBWS2_32 1)
|
|
||||||
set(EXTRA_WINDOWS_SOURCES "${PROJECT_BINARY_DIR}/windows.rc")
|
set(EXTRA_WINDOWS_SOURCES "${PROJECT_BINARY_DIR}/windows.rc")
|
||||||
set(EXTRA_WINDOWS_LIBRARIES setupapi ws2_32)
|
set(EXTRA_WINDOWS_LIBRARIES setupapi ws2_32)
|
||||||
add_compile_definitions(WIN32NATIVE=1)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
|
@ -325,11 +304,6 @@ if(NOT WIN32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# The following functions are implemented in the MSVC compatibility layer
|
|
||||||
set(HAVE_USLEEP 1)
|
|
||||||
set(HAVE_GETTIMEOFDAY 1)
|
|
||||||
set(HAVE_STRCASECMP 1)
|
|
||||||
|
|
||||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS=1)
|
add_compile_definitions(_CRT_SECURE_NO_WARNINGS=1)
|
||||||
add_compile_definitions(_CRT_NONSTDC_NO_WARNINGS=1)
|
add_compile_definitions(_CRT_NONSTDC_NO_WARNINGS=1)
|
||||||
add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS=1)
|
add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS=1)
|
||||||
|
@ -395,7 +369,6 @@ if (DEBUG_CMAKE)
|
||||||
message(STATUS "HAVE_LIBFTDI: ${HAVE_LIBFTDI}")
|
message(STATUS "HAVE_LIBFTDI: ${HAVE_LIBFTDI}")
|
||||||
message(STATUS "HAVE_LIBFTDI1: ${HAVE_LIBFTDI1}")
|
message(STATUS "HAVE_LIBFTDI1: ${HAVE_LIBFTDI1}")
|
||||||
message(STATUS "HAVE_LIBREADLINE: ${HAVE_LIBREADLINE}")
|
message(STATUS "HAVE_LIBREADLINE: ${HAVE_LIBREADLINE}")
|
||||||
message(STATUS "HAVE_LIBWS2_32: ${HAVE_LIBWS2_32}")
|
|
||||||
message(STATUS "HAVE_LIBELF_H: ${HAVE_LIBELF_H}")
|
message(STATUS "HAVE_LIBELF_H: ${HAVE_LIBELF_H}")
|
||||||
message(STATUS "HAVE_LIBELF_LIBELF_H: ${HAVE_LIBELF_LIBELF_H}")
|
message(STATUS "HAVE_LIBELF_LIBELF_H: ${HAVE_LIBELF_LIBELF_H}")
|
||||||
message(STATUS "HAVE_USB_H: ${HAVE_USB_H}")
|
message(STATUS "HAVE_USB_H: ${HAVE_USB_H}")
|
||||||
|
@ -555,7 +528,6 @@ add_library(libavrdude STATIC
|
||||||
lists.c
|
lists.c
|
||||||
micronucleus.c
|
micronucleus.c
|
||||||
micronucleus.h
|
micronucleus.h
|
||||||
my_ddk_hidsdi.h
|
|
||||||
par.c
|
par.c
|
||||||
par.h
|
par.h
|
||||||
pgm.c
|
pgm.c
|
||||||
|
|
|
@ -138,7 +138,6 @@ libavrdude_a_SOURCES = \
|
||||||
lists.c \
|
lists.c \
|
||||||
micronucleus.c \
|
micronucleus.c \
|
||||||
micronucleus.h \
|
micronucleus.h \
|
||||||
my_ddk_hidsdi.h \
|
|
||||||
par.c \
|
par.c \
|
||||||
par.h \
|
par.h \
|
||||||
pgm.c \
|
pgm.c \
|
||||||
|
|
|
@ -16,13 +16,13 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
#ifndef avrdude_h
|
#ifndef avrdude_h
|
||||||
#define avrdude_h
|
#define avrdude_h
|
||||||
|
|
||||||
#define SYSTEM_CONF_FILE "avrdude.conf"
|
#define SYSTEM_CONF_FILE "avrdude.conf"
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
#define USER_CONF_FILE "avrdude.rc"
|
#define USER_CONF_FILE "avrdude.rc"
|
||||||
#else
|
#else
|
||||||
#define USER_CONF_FILE ".avrduderc"
|
#define USER_CONF_FILE ".avrduderc"
|
||||||
|
@ -44,27 +44,4 @@ int avrdude_message(const int msglvl, const char *format, ...);
|
||||||
#define MSG_TRACE (4) /* displayed with -vvvv, show trace commuication */
|
#define MSG_TRACE (4) /* displayed with -vvvv, show trace commuication */
|
||||||
#define MSG_TRACE2 (5) /* displayed with -vvvvv */
|
#define MSG_TRACE2 (5) /* displayed with -vvvvv */
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(HAVE_USLEEP)
|
|
||||||
int usleep(unsigned int us);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(HAVE_GETTIMEOFDAY)
|
|
||||||
struct timezone;
|
|
||||||
int gettimeofday(struct timeval *tv, struct timezone *tz);
|
|
||||||
#endif /* HAVE_GETTIMEOFDAY */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif /* defined(WIN32NATIVE) */
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
|
@ -28,9 +28,12 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#if !defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
# include <signal.h>
|
#define WIN32_LEAN_AND_MEAN
|
||||||
# include <sys/time.h>
|
#include <windows.h>
|
||||||
|
#else
|
||||||
|
#include <signal.h>
|
||||||
|
#include <sys/time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "avrdude.h"
|
#include "avrdude.h"
|
||||||
|
@ -43,7 +46,7 @@
|
||||||
|
|
||||||
static int delay_decrement;
|
static int delay_decrement;
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
static int has_perfcount;
|
static int has_perfcount;
|
||||||
static LARGE_INTEGER freq;
|
static LARGE_INTEGER freq;
|
||||||
#else
|
#else
|
||||||
|
@ -57,14 +60,14 @@ static void alarmhandler(int signo)
|
||||||
done = 1;
|
done = 1;
|
||||||
signal(SIGALRM, saved_alarmhandler);
|
signal(SIGALRM, saved_alarmhandler);
|
||||||
}
|
}
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Calibrate the microsecond delay loop below.
|
* Calibrate the microsecond delay loop below.
|
||||||
*/
|
*/
|
||||||
static void bitbang_calibrate_delay(void)
|
static void bitbang_calibrate_delay(void)
|
||||||
{
|
{
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
/*
|
/*
|
||||||
* If the hardware supports a high-resolution performance counter,
|
* If the hardware supports a high-resolution performance counter,
|
||||||
* we ultimately prefer that one, as it gives quite accurate delays
|
* we ultimately prefer that one, as it gives quite accurate delays
|
||||||
|
@ -91,7 +94,7 @@ static void bitbang_calibrate_delay(void)
|
||||||
progname);
|
progname);
|
||||||
delay_decrement = 100;
|
delay_decrement = 100;
|
||||||
}
|
}
|
||||||
#else /* !WIN32NATIVE */
|
#else /* !WIN32 */
|
||||||
struct itimerval itv;
|
struct itimerval itv;
|
||||||
volatile int i;
|
volatile int i;
|
||||||
|
|
||||||
|
@ -124,7 +127,7 @@ static void bitbang_calibrate_delay(void)
|
||||||
delay_decrement = -i / 100000;
|
delay_decrement = -i / 100000;
|
||||||
avrdude_message(MSG_NOTICE2, " calibrated to %d cycles per us\n",
|
avrdude_message(MSG_NOTICE2, " calibrated to %d cycles per us\n",
|
||||||
delay_decrement);
|
delay_decrement);
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -134,7 +137,7 @@ static void bitbang_calibrate_delay(void)
|
||||||
*/
|
*/
|
||||||
void bitbang_delay(unsigned int us)
|
void bitbang_delay(unsigned int us)
|
||||||
{
|
{
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
LARGE_INTEGER countNow, countEnd;
|
LARGE_INTEGER countNow, countEnd;
|
||||||
|
|
||||||
if (has_perfcount)
|
if (has_perfcount)
|
||||||
|
@ -147,14 +150,14 @@ void bitbang_delay(unsigned int us)
|
||||||
}
|
}
|
||||||
else /* no performance counters -- run normal uncalibrated delay */
|
else /* no performance counters -- run normal uncalibrated delay */
|
||||||
{
|
{
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
volatile unsigned int del = us * delay_decrement;
|
volatile unsigned int del = us * delay_decrement;
|
||||||
|
|
||||||
while (del > 0)
|
while (del > 0)
|
||||||
del--;
|
del--;
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
}
|
}
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -35,18 +35,6 @@
|
||||||
|
|
||||||
/* ----- Functions ----- */
|
/* ----- Functions ----- */
|
||||||
|
|
||||||
/* Define to 1 if you have the `usleep' function. */
|
|
||||||
#cmakedefine HAVE_USLEEP 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `getaddrinfo' function. */
|
|
||||||
#cmakedefine HAVE_GETADDRINFO 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `gettimeofday' function. */
|
|
||||||
#cmakedefine HAVE_GETTIMEOFDAY 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strcasecmp' function. */
|
|
||||||
#cmakedefine HAVE_STRCASECMP 1
|
|
||||||
|
|
||||||
/* Define if lex/flex has yylex_destroy */
|
/* Define if lex/flex has yylex_destroy */
|
||||||
#cmakedefine HAVE_YYLEX_DESTROY 1
|
#cmakedefine HAVE_YYLEX_DESTROY 1
|
||||||
|
|
||||||
|
@ -61,15 +49,6 @@
|
||||||
/* Define to 1 if the system has the type `ulong_t'. */
|
/* Define to 1 if the system has the type `ulong_t'. */
|
||||||
#cmakedefine HAVE_ULONG_T 1
|
#cmakedefine HAVE_ULONG_T 1
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
|
||||||
#cmakedefine HAVE_STDINT_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
||||||
#cmakedefine HAVE_STDLIB_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
||||||
#cmakedefine HAVE_INTTYPES_H 1
|
|
||||||
|
|
||||||
/* Define if ELF support is enabled via libelf */
|
/* Define if ELF support is enabled via libelf */
|
||||||
#cmakedefine HAVE_LIBELF 1
|
#cmakedefine HAVE_LIBELF 1
|
||||||
|
|
||||||
|
@ -120,9 +99,3 @@
|
||||||
|
|
||||||
/* Define to 1 if you have the `readline' library (-lreadline). */
|
/* Define to 1 if you have the `readline' library (-lreadline). */
|
||||||
#cmakedefine HAVE_LIBREADLINE 1
|
#cmakedefine HAVE_LIBREADLINE 1
|
||||||
|
|
||||||
/* Define to 1 if you have the `ws2_32' library (-lws2_32). */
|
|
||||||
#cmakedefine HAVE_LIBWS2_32 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
|
||||||
#cmakedefine HAVE_NETINET_IN_H 1
|
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include "libavrdude.h"
|
#include "libavrdude.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
#define strtok_r( _s, _sep, _lasts ) \
|
#define strtok_r( _s, _sep, _lasts ) \
|
||||||
( *(_lasts) = strtok( (_s), (_sep) ) )
|
( *(_lasts) = strtok( (_s), (_sep) ) )
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -228,9 +228,6 @@ AC_HEADER_TIME
|
||||||
|
|
||||||
AC_CHECK_HEADERS([netinet/in.h])
|
AC_CHECK_HEADERS([netinet/in.h])
|
||||||
|
|
||||||
# WinSock2
|
|
||||||
AC_CHECK_LIB([ws2_32], [puts])
|
|
||||||
|
|
||||||
# Checks for library functions.
|
# Checks for library functions.
|
||||||
AC_CHECK_FUNCS([memset select strcasecmp strdup strerror strncasecmp strtol strtoul gettimeofday usleep getaddrinfo])
|
AC_CHECK_FUNCS([memset select strcasecmp strdup strerror strncasecmp strtol strtoul gettimeofday usleep getaddrinfo])
|
||||||
|
|
||||||
|
@ -239,12 +236,7 @@ SAVED_LIBS="${LIBS}"
|
||||||
case $target in
|
case $target in
|
||||||
*-*-mingw32* | *-*-cygwin* | *-*-windows*)
|
*-*-mingw32* | *-*-cygwin* | *-*-windows*)
|
||||||
LIBHID="-lhid -lsetupapi"
|
LIBHID="-lhid -lsetupapi"
|
||||||
if test $ac_cv_header_ddk_hidsdi_h = yes
|
HIDINCLUDE="#include <hidsdi.h>"
|
||||||
then
|
|
||||||
HIDINCLUDE="#include <ddk/hidsdi.h>"
|
|
||||||
else
|
|
||||||
HIDINCLUDE="#include \"my_ddk_hidsdi.h\""
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
LIBHID=""
|
LIBHID=""
|
||||||
|
|
|
@ -20,15 +20,13 @@
|
||||||
#include "avrdude.h"
|
#include "avrdude.h"
|
||||||
#include "libavrdude.h"
|
#include "libavrdude.h"
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
|
|
||||||
#include <limits.h>
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
|
|
||||||
static char *filename;
|
static char *filename;
|
||||||
|
|
||||||
|
|
||||||
void win_sys_config_set(char sys_config[PATH_MAX])
|
void win_sys_config_set(char sys_config[PATH_MAX])
|
||||||
{
|
{
|
||||||
sys_config[0] = 0;
|
sys_config[0] = 0;
|
||||||
|
@ -38,7 +36,6 @@ void win_sys_config_set(char sys_config[PATH_MAX])
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void win_usr_config_set(char usr_config[PATH_MAX])
|
void win_usr_config_set(char usr_config[PATH_MAX])
|
||||||
{
|
{
|
||||||
usr_config[0] = 0;
|
usr_config[0] = 0;
|
||||||
|
@ -48,7 +45,4 @@ void win_usr_config_set(char usr_config[PATH_MAX])
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1369,7 +1369,7 @@ static int fmt_autodetect(char * fname)
|
||||||
int found;
|
int found;
|
||||||
int first = 1;
|
int first = 1;
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
f = fopen(fname, "r");
|
f = fopen(fname, "r");
|
||||||
#else
|
#else
|
||||||
f = fopen(fname, "rb");
|
f = fopen(fname, "rb");
|
||||||
|
@ -1518,7 +1518,7 @@ int fileio(int op, char * filename, FILEFMT format,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
/* Open Raw Binary and ELF format in binary mode on Windows.*/
|
/* Open Raw Binary and ELF format in binary mode on Windows.*/
|
||||||
if(format == FMT_RBIN || format == FMT_ELF)
|
if(format == FMT_RBIN || format == FMT_ELF)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -30,13 +31,6 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#if HAVE_STDINT_H
|
|
||||||
#include <stdint.h>
|
|
||||||
#elif HAVE_INTTYPES_H
|
|
||||||
#include <inttypes.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#include "avrdude.h"
|
#include "avrdude.h"
|
||||||
#include "libavrdude.h"
|
#include "libavrdude.h"
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -27,12 +28,6 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#if HAVE_STDINT_H
|
|
||||||
#include <stdint.h>
|
|
||||||
#elif HAVE_INTTYPES_H
|
|
||||||
#include <inttypes.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "avrdude.h"
|
#include "avrdude.h"
|
||||||
#include "libavrdude.h"
|
#include "libavrdude.h"
|
||||||
|
|
||||||
|
|
|
@ -73,10 +73,6 @@
|
||||||
#define TPIPCR_GT_0b 0x07
|
#define TPIPCR_GT_0b 0x07
|
||||||
#define TPI_STOP_BITS 0x03
|
#define TPI_STOP_BITS 0x03
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(HAVE_LIBFTDI1) && defined(HAVE_LIBUSB_1_0)
|
#if defined(HAVE_LIBFTDI1) && defined(HAVE_LIBUSB_1_0)
|
||||||
# if defined(HAVE_LIBUSB_1_0_LIBUSB_H)
|
# if defined(HAVE_LIBUSB_1_0_LIBUSB_H)
|
||||||
# include <libusb-1.0/libusb.h>
|
# include <libusb-1.0/libusb.h>
|
||||||
|
|
|
@ -27,15 +27,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
/* lets try to select at least 32 bits */
|
|
||||||
#ifdef HAVE_STDINT_H
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
typedef uint32_t pinmask_t;
|
|
||||||
#else
|
|
||||||
#error Need a C99 capable compiler
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
typedef uint32_t pinmask_t;
|
||||||
|
|
||||||
/* formerly lists.h */
|
/* formerly lists.h */
|
||||||
|
|
||||||
|
@ -958,7 +952,7 @@ int read_config(const char * file);
|
||||||
|
|
||||||
/* formerly confwin.h */
|
/* formerly confwin.h */
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -971,7 +965,7 @@ void win_usr_config_set(char usr_config[PATH_MAX]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
|
|
||||||
#endif /* libavrdude_h */
|
#endif /* libavrdude_h */
|
||||||
|
|
10
src/main.c
10
src/main.c
|
@ -362,7 +362,7 @@ int main(int argc, char * argv [])
|
||||||
|
|
||||||
char * safemode_response;
|
char * safemode_response;
|
||||||
int fuses_updated = 0;
|
int fuses_updated = 0;
|
||||||
#if !defined(WIN32NATIVE)
|
#if !defined(WIN32)
|
||||||
char * homedir;
|
char * homedir;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -377,10 +377,10 @@ int main(int argc, char * argv [])
|
||||||
|
|
||||||
progname = strrchr(argv[0],'/');
|
progname = strrchr(argv[0],'/');
|
||||||
|
|
||||||
#if defined (WIN32NATIVE)
|
#if defined (WIN32)
|
||||||
/* take care of backslash as dir sep in W32 */
|
/* take care of backslash as dir sep in W32 */
|
||||||
if (!progname) progname = strrchr(argv[0],'\\');
|
if (!progname) progname = strrchr(argv[0],'\\');
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
if (progname)
|
if (progname)
|
||||||
progname++;
|
progname++;
|
||||||
|
@ -730,7 +730,7 @@ int main(int argc, char * argv [])
|
||||||
}
|
}
|
||||||
if (!sys_config_found) {
|
if (!sys_config_found) {
|
||||||
// 3. Check CONFIG_DIR/avrdude.conf
|
// 3. Check CONFIG_DIR/avrdude.conf
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
win_sys_config_set(sys_config);
|
win_sys_config_set(sys_config);
|
||||||
#else
|
#else
|
||||||
strcpy(sys_config, CONFIG_DIR);
|
strcpy(sys_config, CONFIG_DIR);
|
||||||
|
@ -754,7 +754,7 @@ int main(int argc, char * argv [])
|
||||||
* -----------
|
* -----------
|
||||||
* Determine the location of '.avrduderc'.
|
* Determine the location of '.avrduderc'.
|
||||||
*/
|
*/
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
win_usr_config_set(usr_config);
|
win_usr_config_set(usr_config);
|
||||||
#else
|
#else
|
||||||
usr_config[0] = 0;
|
usr_config[0] = 0;
|
||||||
|
|
|
@ -49,6 +49,7 @@
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
* This file is part of the mingw-w64 runtime package.
|
* This file is part of the mingw-w64 runtime package.
|
||||||
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||||
*/
|
*/
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/timeb.h>
|
#include <sys/timeb.h>
|
||||||
|
|
|
@ -19,6 +19,19 @@
|
||||||
#ifndef _TIME_H_
|
#ifndef _TIME_H_
|
||||||
#define _TIME_H_
|
#define _TIME_H_
|
||||||
|
|
||||||
|
// If you need both <windows.h> and <sys/time.h>,
|
||||||
|
// make sure you include <windows.h> first.
|
||||||
|
#ifndef _WINSOCKAPI_
|
||||||
|
#ifndef _TIMEVAL_DEFINED
|
||||||
|
#define _TIMEVAL_DEFINED
|
||||||
|
struct timeval
|
||||||
|
{
|
||||||
|
long tv_sec;
|
||||||
|
long tv_usec;
|
||||||
|
};
|
||||||
|
#endif /* _TIMEVAL_DEFINED */
|
||||||
|
#endif /* _WINSOCKAPI_ */
|
||||||
|
|
||||||
struct timezone
|
struct timezone
|
||||||
{
|
{
|
||||||
int tz_minuteswest;
|
int tz_minuteswest;
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
/*
|
|
||||||
* avrdude - A Downloader/Uploader for AVR device programmers
|
|
||||||
* Copyright (C) 2006 Christian Starkjohann
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
The following is a replacement for hidsdi.h from the Windows DDK. It defines some
|
|
||||||
of the types and function prototypes of this header for our project. If you
|
|
||||||
have the Windows DDK version of this file or a version shipped with MinGW, use
|
|
||||||
that instead.
|
|
||||||
*/
|
|
||||||
#ifndef MY_DDK_HIDSDI_H
|
|
||||||
#define MY_DDK_HIDSDI_H
|
|
||||||
#include <pshpack4.h>
|
|
||||||
#include <ddk/hidusage.h>
|
|
||||||
#include <ddk/hidpi.h>
|
|
||||||
typedef struct{
|
|
||||||
ULONG Size;
|
|
||||||
USHORT VendorID;
|
|
||||||
USHORT ProductID;
|
|
||||||
USHORT VersionNumber;
|
|
||||||
}HIDD_ATTRIBUTES;
|
|
||||||
void __stdcall HidD_GetHidGuid(OUT LPGUID hidGuid);
|
|
||||||
BOOLEAN __stdcall HidD_GetAttributes(IN HANDLE device, OUT HIDD_ATTRIBUTES *attributes);
|
|
||||||
BOOLEAN __stdcall HidD_GetManufacturerString(IN HANDLE device, OUT void *buffer, IN ULONG bufferLen);
|
|
||||||
BOOLEAN __stdcall HidD_GetProductString(IN HANDLE device, OUT void *buffer, IN ULONG bufferLen);
|
|
||||||
BOOLEAN __stdcall HidD_GetSerialNumberString(IN HANDLE device, OUT void *buffer, IN ULONG bufferLen);
|
|
||||||
BOOLEAN __stdcall HidD_GetFeature(IN HANDLE device, OUT void *reportBuffer, IN ULONG bufferLen);
|
|
||||||
BOOLEAN __stdcall HidD_SetFeature(IN HANDLE device, IN void *reportBuffer, IN ULONG bufferLen);
|
|
||||||
BOOLEAN __stdcall HidD_GetNumInputBuffers(IN HANDLE device, OUT ULONG *numBuffers);
|
|
||||||
BOOLEAN __stdcall HidD_SetNumInputBuffers(IN HANDLE device, OUT ULONG numBuffers);
|
|
||||||
#include <poppack.h>
|
|
||||||
#endif /* MY_DDK_HIDSDI_H */
|
|
|
@ -54,9 +54,10 @@
|
||||||
#include "avrdude.h"
|
#include "avrdude.h"
|
||||||
#include "libavrdude.h"
|
#include "libavrdude.h"
|
||||||
|
|
||||||
#if defined(HAVE_LIBUSB) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
#if defined(HAVE_LIBUSB) || (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
|
|
||||||
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
#if (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <hidsdi.h>
|
#include <hidsdi.h>
|
||||||
#include <setupapi.h>
|
#include <setupapi.h>
|
||||||
|
@ -87,8 +88,7 @@
|
||||||
|
|
||||||
#define SPI_MAX_CHUNK (64 - 10) // max packet size less the command overhead
|
#define SPI_MAX_CHUNK (64 - 10) // max packet size less the command overhead
|
||||||
|
|
||||||
// win32native only:
|
#if (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
|
||||||
static HANDLE open_hid(unsigned short vid, unsigned short pid);
|
static HANDLE open_hid(unsigned short vid, unsigned short pid);
|
||||||
static const char *usb_strerror()
|
static const char *usb_strerror()
|
||||||
{
|
{
|
||||||
|
@ -102,7 +102,7 @@ static int usb_open_device(struct usb_dev_handle **dev, int vid, int pid);
|
||||||
#define USB_ERROR_NOTFOUND 2
|
#define USB_ERROR_NOTFOUND 2
|
||||||
#define USB_ERROR_BUSY 16
|
#define USB_ERROR_BUSY 16
|
||||||
#define USB_ERROR_IO 5
|
#define USB_ERROR_IO 5
|
||||||
#endif // WIN32NATIVE
|
#endif // WIN32
|
||||||
|
|
||||||
static int pickit2_write_report(PROGRAMMER *pgm, const unsigned char report[65]);
|
static int pickit2_write_report(PROGRAMMER *pgm, const unsigned char report[65]);
|
||||||
static int pickit2_read_report(PROGRAMMER *pgm, unsigned char report[65]);
|
static int pickit2_read_report(PROGRAMMER *pgm, unsigned char report[65]);
|
||||||
|
@ -116,7 +116,7 @@ static int pickit2_read_report(PROGRAMMER *pgm, unsigned char report[65]);
|
||||||
*/
|
*/
|
||||||
struct pdata
|
struct pdata
|
||||||
{
|
{
|
||||||
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
#if (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
HANDLE usb_handle, write_event, read_event;
|
HANDLE usb_handle, write_event, read_event;
|
||||||
#else
|
#else
|
||||||
struct usb_dev_handle *usb_handle; // LIBUSB STUFF
|
struct usb_dev_handle *usb_handle; // LIBUSB STUFF
|
||||||
|
@ -181,7 +181,7 @@ static void pickit2_teardown(PROGRAMMER * pgm)
|
||||||
|
|
||||||
static int pickit2_open(PROGRAMMER * pgm, char * port)
|
static int pickit2_open(PROGRAMMER * pgm, char * port)
|
||||||
{
|
{
|
||||||
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
#if (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
PDATA(pgm)->usb_handle = open_hid(PICKIT2_VID, PICKIT2_PID);
|
PDATA(pgm)->usb_handle = open_hid(PICKIT2_VID, PICKIT2_PID);
|
||||||
|
|
||||||
if (PDATA(pgm)->usb_handle == INVALID_HANDLE_VALUE)
|
if (PDATA(pgm)->usb_handle == INVALID_HANDLE_VALUE)
|
||||||
|
@ -229,13 +229,13 @@ static int pickit2_open(PROGRAMMER * pgm, char * port)
|
||||||
|
|
||||||
static void pickit2_close(PROGRAMMER * pgm)
|
static void pickit2_close(PROGRAMMER * pgm)
|
||||||
{
|
{
|
||||||
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
#if (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
CloseHandle(PDATA(pgm)->usb_handle);
|
CloseHandle(PDATA(pgm)->usb_handle);
|
||||||
CloseHandle(PDATA(pgm)->read_event);
|
CloseHandle(PDATA(pgm)->read_event);
|
||||||
CloseHandle(PDATA(pgm)->write_event);
|
CloseHandle(PDATA(pgm)->write_event);
|
||||||
#else
|
#else
|
||||||
usb_close(PDATA(pgm)->usb_handle);
|
usb_close(PDATA(pgm)->usb_handle);
|
||||||
#endif // WIN32NATIVE
|
#endif // WIN32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -810,7 +810,7 @@ static int pickit2_spi(struct programmer_t * pgm, const unsigned char *cmd,
|
||||||
return n_bytes;
|
return n_bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
#if (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
/*
|
/*
|
||||||
Func: open_hid()
|
Func: open_hid()
|
||||||
Desc: finds & opens device having specified VID & PID.
|
Desc: finds & opens device having specified VID & PID.
|
||||||
|
@ -1120,7 +1120,7 @@ static int pickit2_read_report(PROGRAMMER * pgm, unsigned char report[65])
|
||||||
return usb_read_interrupt(pgm, report, 65, PDATA(pgm)->transaction_timeout);
|
return usb_read_interrupt(pgm, report, 65, PDATA(pgm)->transaction_timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // WIN32NATIVE
|
#else // WIN32
|
||||||
/* taken (modified) from avrdude usbasp.c */
|
/* taken (modified) from avrdude usbasp.c */
|
||||||
static int usb_open_device(struct usb_dev_handle **device, int vendor, int product)
|
static int usb_open_device(struct usb_dev_handle **device, int vendor, int product)
|
||||||
{
|
{
|
||||||
|
@ -1184,7 +1184,7 @@ static int usb_open_device(struct usb_dev_handle **device, int vendor, int produ
|
||||||
static int pickit2_write_report(PROGRAMMER * pgm, const unsigned char report[65])
|
static int pickit2_write_report(PROGRAMMER * pgm, const unsigned char report[65])
|
||||||
{
|
{
|
||||||
// endpoint 1 OUT??
|
// endpoint 1 OUT??
|
||||||
return usb_interrupt_write(PDATA(pgm)->usb_handle, USB_ENDPOINT_OUT | 1, (const char*)(report+1), 64, PDATA(pgm)->transaction_timeout);
|
return usb_interrupt_write(PDATA(pgm)->usb_handle, USB_ENDPOINT_OUT | 1, (char*)(report+1), 64, PDATA(pgm)->transaction_timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pickit2_read_report(PROGRAMMER * pgm, unsigned char report[65])
|
static int pickit2_read_report(PROGRAMMER * pgm, unsigned char report[65])
|
||||||
|
@ -1192,7 +1192,7 @@ static int pickit2_read_report(PROGRAMMER * pgm, unsigned char report[65])
|
||||||
// endpoint 1 IN??
|
// endpoint 1 IN??
|
||||||
return usb_interrupt_read(PDATA(pgm)->usb_handle, USB_ENDPOINT_IN | 1, (char*)(report+1), 64, PDATA(pgm)->transaction_timeout);
|
return usb_interrupt_read(PDATA(pgm)->usb_handle, USB_ENDPOINT_IN | 1, (char*)(report+1), 64, PDATA(pgm)->transaction_timeout);
|
||||||
}
|
}
|
||||||
#endif // WIN323NATIVE
|
#endif // WIN32
|
||||||
|
|
||||||
static int pickit2_parseextparams(struct programmer_t * pgm, LISTID extparms)
|
static int pickit2_parseextparams(struct programmer_t * pgm, LISTID extparms)
|
||||||
{
|
{
|
||||||
|
@ -1310,7 +1310,7 @@ void pickit2_initpgm (PROGRAMMER * pgm)
|
||||||
#else
|
#else
|
||||||
static int pickit2_nousb_open (struct programmer_t *pgm, char * name) {
|
static int pickit2_nousb_open (struct programmer_t *pgm, char * name) {
|
||||||
avrdude_message(MSG_INFO,
|
avrdude_message(MSG_INFO,
|
||||||
#ifdef WIN32NATIVE
|
#ifdef WIN32
|
||||||
"%s: error: no usb or hid support. Please compile again with libusb or HID support from Win32 DDK installed.\n",
|
"%s: error: no usb or hid support. Please compile again with libusb or HID support from Win32 DDK installed.\n",
|
||||||
#else
|
#else
|
||||||
"%s: error: no usb support. Please compile again with libusb installed.\n",
|
"%s: error: no usb support. Please compile again with libusb installed.\n",
|
||||||
|
@ -1332,7 +1332,7 @@ void pickit2_initpgm (PROGRAMMER * pgm)
|
||||||
strncpy(pgm->type, "pickit2", sizeof(pgm->type));
|
strncpy(pgm->type, "pickit2", sizeof(pgm->type));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* defined(HAVE_LIBUSB) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID)) */
|
#endif /* defined(HAVE_LIBUSB) || (defined(WIN32) && defined(HAVE_LIBHID)) */
|
||||||
|
|
||||||
const char pickit2_desc[] = "Microchip's PICkit2 Programmer";
|
const char pickit2_desc[] = "Microchip's PICkit2 Programmer";
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
|
|
||||||
#if !defined(WIN32NATIVE)
|
#if !defined(WIN32)
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
|
@ -233,4 +233,4 @@ void ppi_close(union filedescriptor *fdp)
|
||||||
|
|
||||||
#endif /* HAVE_PARPORT */
|
#endif /* HAVE_PARPORT */
|
||||||
|
|
||||||
#endif /* !WIN32NATIVE */
|
#endif /* !WIN32 */
|
||||||
|
|
81
src/ppiwin.c
81
src/ppiwin.c
|
@ -32,8 +32,9 @@ reg = register as defined in an enum in ppi.h. This must be converted
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
#if defined(HAVE_PARPORT) && defined(WIN32NATIVE)
|
#if defined(HAVE_PARPORT) && defined(WIN32)
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -336,82 +337,4 @@ static void outb(unsigned char value, unsigned short port)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(HAVE_GETTIMEOFDAY)
|
|
||||||
struct timezone;
|
|
||||||
int gettimeofday(struct timeval *tv, struct timezone *unused){
|
|
||||||
// i've found only ms resolution, avrdude expects us
|
|
||||||
|
|
||||||
SYSTEMTIME st;
|
|
||||||
GetSystemTime(&st);
|
|
||||||
|
|
||||||
tv->tv_sec=(long)(st.wSecond+st.wMinute*60+st.wHour*3600);
|
|
||||||
tv->tv_usec=(long)(st.wMilliseconds*1000);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif /* HAVE_GETTIMEOFDAY */
|
|
||||||
|
|
||||||
// #define W32USLEEPDBG
|
|
||||||
|
|
||||||
#ifdef W32USLEEPDBG
|
|
||||||
|
|
||||||
# define DEBUG_QueryPerformanceCounter(arg) QueryPerformanceCounter(arg)
|
|
||||||
# define DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf) \
|
|
||||||
do { \
|
|
||||||
unsigned long dt; \
|
|
||||||
dt = (unsigned long)((stop.QuadPart - start.QuadPart) * 1000 * 1000 \
|
|
||||||
/ freq.QuadPart); \
|
|
||||||
avrdude_message(MSG_INFO, \
|
|
||||||
"hpt:%i usleep usec:%lu sleep msec:%lu timed usec:%lu\n", \
|
|
||||||
has_highperf, us, ((us + 999) / 1000), dt); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
# define DEBUG_QueryPerformanceCounter(arg)
|
|
||||||
# define DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf)
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(HAVE_USLEEP)
|
|
||||||
int usleep(unsigned int us)
|
|
||||||
{
|
|
||||||
int has_highperf;
|
|
||||||
LARGE_INTEGER freq,start,stop,loopend;
|
|
||||||
|
|
||||||
// workaround: although usleep is very precise if using
|
|
||||||
// high-performance-timers there are sometimes problems with
|
|
||||||
// verify - increasing the delay helps sometimes but not
|
|
||||||
// realiably. There must be some other problem. Maybe just
|
|
||||||
// with my test-hardware maybe in the code-base.
|
|
||||||
//// us=(unsigned long) (us*1.5);
|
|
||||||
|
|
||||||
has_highperf=QueryPerformanceFrequency(&freq);
|
|
||||||
|
|
||||||
//has_highperf=0; // debug
|
|
||||||
|
|
||||||
if (has_highperf) {
|
|
||||||
QueryPerformanceCounter(&start);
|
|
||||||
loopend.QuadPart=start.QuadPart+freq.QuadPart*us/(1000*1000);
|
|
||||||
do {
|
|
||||||
QueryPerformanceCounter(&stop);
|
|
||||||
} while (stop.QuadPart<=loopend.QuadPart);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
DEBUG_QueryPerformanceCounter(&start);
|
|
||||||
|
|
||||||
Sleep(1);
|
|
||||||
Sleep( (DWORD)((us+999)/1000) );
|
|
||||||
|
|
||||||
DEBUG_QueryPerformanceCounter(&stop);
|
|
||||||
}
|
|
||||||
|
|
||||||
DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif /* !HAVE_USLEEP */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
#if defined(HAVE_LIBHIDAPI) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
#if defined(HAVE_LIBHIDAPI) || (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -161,6 +161,7 @@ static int usbGetReport(union filedescriptor *fdp, int reportType, int reportNum
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <setupapi.h>
|
#include <setupapi.h>
|
||||||
#include <hidsdi.h>
|
#include <hidsdi.h>
|
||||||
|
@ -327,7 +328,7 @@ static int usbGetReport(union filedescriptor *fdp, int reportType, int reportNum
|
||||||
return rval == 0 ? USB_ERROR_IO : 0;
|
return rval == 0 ? USB_ERROR_IO : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
@ -550,4 +551,4 @@ struct serial_device avrdoper_serdev =
|
||||||
.flags = SERDEV_FL_NONE,
|
.flags = SERDEV_FL_NONE,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* defined(HAVE_LIBHIDAPI) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID)) */
|
#endif /* defined(HAVE_LIBHIDAPI) || (defined(WIN32) && defined(HAVE_LIBHID)) */
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
* Posix serial interface for avrdude.
|
* Posix serial interface for avrdude.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if !defined(WIN32NATIVE)
|
#if !defined(WIN32)
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
|
@ -174,7 +174,6 @@ static int ser_setparams(union filedescriptor *fd, long baud, unsigned long cfla
|
||||||
static int
|
static int
|
||||||
net_open(const char *port, union filedescriptor *fdp)
|
net_open(const char *port, union filedescriptor *fdp)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_GETADDRINFO
|
|
||||||
char *hp, *hstr, *pstr;
|
char *hp, *hstr, *pstr;
|
||||||
int s, fd, ret = -1;
|
int s, fd, ret = -1;
|
||||||
struct addrinfo hints;
|
struct addrinfo hints;
|
||||||
|
@ -247,12 +246,6 @@ net_open(const char *port, union filedescriptor *fdp)
|
||||||
error:
|
error:
|
||||||
free(hp);
|
free(hp);
|
||||||
return ret;
|
return ret;
|
||||||
#else
|
|
||||||
avrdude_message(MSG_INFO,
|
|
||||||
"%s: Networking is not supported on your platform.\n"
|
|
||||||
"If you need it, please open a bug report.\n", progname);
|
|
||||||
return -1;
|
|
||||||
#endif /* HAVE_GETADDRINFO */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -526,4 +519,4 @@ struct serial_device serial_serdev =
|
||||||
|
|
||||||
struct serial_device *serdev = &serial_serdev;
|
struct serial_device *serdev = &serial_serdev;
|
||||||
|
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
|
|
|
@ -17,22 +17,18 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id$ */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Native Win32 serial interface for avrdude.
|
* Native Win32 serial interface for avrdude.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
|
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
/* winsock2.h must be included before windows.h from avrdude.h... */
|
|
||||||
# include <winsock2.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#include <winsock2.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <ctype.h> /* for isprint */
|
#include <ctype.h> /* for isprint */
|
||||||
#include <errno.h> /* ENOTTY */
|
#include <errno.h> /* ENOTTY */
|
||||||
|
@ -154,7 +150,6 @@ static int ser_setparams(union filedescriptor *fd, long baud, unsigned long cfla
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
static int
|
static int
|
||||||
net_open(const char *port, union filedescriptor *fdp)
|
net_open(const char *port, union filedescriptor *fdp)
|
||||||
{
|
{
|
||||||
|
@ -246,7 +241,6 @@ net_open(const char *port, union filedescriptor *fdp)
|
||||||
serial_over_ethernet = 1;
|
serial_over_ethernet = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static int ser_open(char * port, union pinfo pinfo, union filedescriptor *fdp)
|
static int ser_open(char * port, union pinfo pinfo, union filedescriptor *fdp)
|
||||||
|
@ -260,14 +254,7 @@ static int ser_open(char * port, union pinfo pinfo, union filedescriptor *fdp)
|
||||||
* handle it as a TCP connection to a terminal server.
|
* handle it as a TCP connection to a terminal server.
|
||||||
*/
|
*/
|
||||||
if (strncmp(port, "net:", strlen("net:")) == 0) {
|
if (strncmp(port, "net:", strlen("net:")) == 0) {
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
return net_open(port + strlen("net:"), fdp);
|
return net_open(port + strlen("net:"), fdp);
|
||||||
#else
|
|
||||||
avrdude_message(MSG_INFO, "%s: ser_open(): "
|
|
||||||
"not configured for TCP connections\n",
|
|
||||||
progname);
|
|
||||||
return -1;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strncasecmp(port, "com", strlen("com")) == 0) {
|
if (strncasecmp(port, "com", strlen("com")) == 0) {
|
||||||
|
@ -370,7 +357,6 @@ static int ser_set_dtr_rts(union filedescriptor *fd, int is_on)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
static int net_send(union filedescriptor *fd, const unsigned char * buf, size_t buflen)
|
static int net_send(union filedescriptor *fd, const unsigned char * buf, size_t buflen)
|
||||||
{
|
{
|
||||||
LPVOID lpMsgBuf;
|
LPVOID lpMsgBuf;
|
||||||
|
@ -429,16 +415,13 @@ static int net_send(union filedescriptor *fd, const unsigned char * buf, size_t
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static int ser_send(union filedescriptor *fd, const unsigned char * buf, size_t buflen)
|
static int ser_send(union filedescriptor *fd, const unsigned char * buf, size_t buflen)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
if (serial_over_ethernet) {
|
if (serial_over_ethernet) {
|
||||||
return net_send(fd, buf, buflen);
|
return net_send(fd, buf, buflen);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
size_t len = buflen;
|
size_t len = buflen;
|
||||||
unsigned char c='\0';
|
unsigned char c='\0';
|
||||||
|
@ -493,7 +476,6 @@ static int ser_send(union filedescriptor *fd, const unsigned char * buf, size_t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
static int net_recv(union filedescriptor *fd, unsigned char * buf, size_t buflen)
|
static int net_recv(union filedescriptor *fd, unsigned char * buf, size_t buflen)
|
||||||
{
|
{
|
||||||
LPVOID lpMsgBuf;
|
LPVOID lpMsgBuf;
|
||||||
|
@ -587,15 +569,12 @@ reselect:
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static int ser_recv(union filedescriptor *fd, unsigned char * buf, size_t buflen)
|
static int ser_recv(union filedescriptor *fd, unsigned char * buf, size_t buflen)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
if (serial_over_ethernet) {
|
if (serial_over_ethernet) {
|
||||||
return net_recv(fd, buf, buflen);
|
return net_recv(fd, buf, buflen);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
unsigned char * p = buf;
|
unsigned char * p = buf;
|
||||||
|
@ -660,7 +639,6 @@ static int ser_recv(union filedescriptor *fd, unsigned char * buf, size_t buflen
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
static int net_drain(union filedescriptor *fd, int display)
|
static int net_drain(union filedescriptor *fd, int display)
|
||||||
{
|
{
|
||||||
LPVOID lpMsgBuf;
|
LPVOID lpMsgBuf;
|
||||||
|
@ -739,15 +717,12 @@ static int net_drain(union filedescriptor *fd, int display)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static int ser_drain(union filedescriptor *fd, int display)
|
static int ser_drain(union filedescriptor *fd, int display)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBWS2_32
|
|
||||||
if (serial_over_ethernet) {
|
if (serial_over_ethernet) {
|
||||||
return net_drain(fd, display);
|
return net_drain(fd, display);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// int rc;
|
// int rc;
|
||||||
unsigned char buf[10];
|
unsigned char buf[10];
|
||||||
|
@ -813,4 +788,4 @@ struct serial_device serial_serdev =
|
||||||
|
|
||||||
struct serial_device *serdev = &serial_serdev;
|
struct serial_device *serdev = &serial_serdev;
|
||||||
|
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
* Posix serial bitbanging interface for avrdude.
|
* Posix serial bitbanging interface for avrdude.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if !defined(WIN32NATIVE)
|
#if !defined(WIN32)
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
|
@ -318,4 +318,4 @@ void serbb_initpgm(PROGRAMMER *pgm)
|
||||||
pgm->write_byte = avr_write_byte_default;
|
pgm->write_byte = avr_write_byte_default;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
|
|
|
@ -25,11 +25,12 @@
|
||||||
|
|
||||||
#include "avrdude.h"
|
#include "avrdude.h"
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
|
|
||||||
|
|
||||||
#include "ac_cfg.h"
|
#include "ac_cfg.h"
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -363,4 +364,4 @@ void serbb_initpgm(PROGRAMMER *pgm)
|
||||||
pgm->write_byte = avr_write_byte_default;
|
pgm->write_byte = avr_write_byte_default;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* WIN32NATIVE */
|
#endif /* WIN32 */
|
||||||
|
|
|
@ -1613,7 +1613,7 @@ static int stk500v2_open(PROGRAMMER * pgm, char * port)
|
||||||
PDATA(pgm)->pgmtype = PGMTYPE_UNKNOWN;
|
PDATA(pgm)->pgmtype = PGMTYPE_UNKNOWN;
|
||||||
|
|
||||||
if(strcasecmp(port, "avrdoper") == 0){
|
if(strcasecmp(port, "avrdoper") == 0){
|
||||||
#if defined(HAVE_LIBHIDAPI) || (defined(WIN32NATIVE) && defined(HAVE_LIBHID))
|
#if defined(HAVE_LIBHIDAPI) || (defined(WIN32) && defined(HAVE_LIBHID))
|
||||||
serdev = &avrdoper_serdev;
|
serdev = &avrdoper_serdev;
|
||||||
PDATA(pgm)->pgmtype = PGMTYPE_STK500;
|
PDATA(pgm)->pgmtype = PGMTYPE_STK500;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -27,11 +27,9 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
#if defined(HAVE_LIBREADLINE)
|
#if defined(HAVE_LIBREADLINE)
|
||||||
#if !defined(WIN32NATIVE)
|
|
||||||
# include <readline/readline.h>
|
# include <readline/readline.h>
|
||||||
# include <readline/history.h>
|
# include <readline/history.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "avrdude.h"
|
#include "avrdude.h"
|
||||||
#include "term.h"
|
#include "term.h"
|
||||||
|
@ -919,7 +917,7 @@ static int do_cmd(PROGRAMMER * pgm, struct avrpart * p,
|
||||||
|
|
||||||
char * terminal_get_input(const char *prompt)
|
char * terminal_get_input(const char *prompt)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_LIBREADLINE) && !defined(WIN32NATIVE)
|
#if defined(HAVE_LIBREADLINE) && !defined(WIN32)
|
||||||
char *input;
|
char *input;
|
||||||
input = readline(prompt);
|
input = readline(prompt);
|
||||||
if ((input != NULL) && (strlen(input) >= 1))
|
if ((input != NULL) && (strlen(input) >= 1))
|
||||||
|
|
|
@ -39,14 +39,9 @@
|
||||||
#include "updi_constants.h"
|
#include "updi_constants.h"
|
||||||
#include "updi_state.h"
|
#include "updi_state.h"
|
||||||
|
|
||||||
#include <sys/time.h>
|
static void msleep(int tms)
|
||||||
|
|
||||||
void msleep(int tms)
|
|
||||||
{
|
{
|
||||||
struct timeval tv;
|
usleep(tms * 1000);
|
||||||
tv.tv_sec = tms / 1000;
|
|
||||||
tv.tv_usec = (tms % 1000) * 1000;
|
|
||||||
select (0, NULL, NULL, NULL, &tv);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int updi_physical_open(PROGRAMMER* pgm, int baudrate, unsigned long cflags)
|
static int updi_physical_open(PROGRAMMER* pgm, int baudrate, unsigned long cflags)
|
||||||
|
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
#include "usbdevs.h"
|
#include "usbdevs.h"
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
|
||||||
/* someone has defined "interface" to "struct" in Cygwin */
|
|
||||||
# undef interface
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The "baud" parameter is meaningless for USB devices, so we reuse it
|
* The "baud" parameter is meaningless for USB devices, so we reuse it
|
||||||
* to pass the desired USB device ID.
|
* to pass the desired USB device ID.
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
#include "usbdevs.h"
|
#include "usbdevs.h"
|
||||||
|
|
||||||
#if defined(WIN32NATIVE)
|
#if defined(WIN32)
|
||||||
/* someone has defined "interface" to "struct" in Cygwin */
|
/* someone has defined "interface" to "struct" in Cygwin */
|
||||||
# undef interface
|
# undef interface
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -52,13 +52,7 @@
|
||||||
#define TPIPCR_GT_0b 0x07
|
#define TPIPCR_GT_0b 0x07
|
||||||
#define TPI_STOP_BITS 0x03
|
#define TPI_STOP_BITS 0x03
|
||||||
|
|
||||||
#ifdef HAVE_NETINET_IN_H
|
#define LITTLE_TO_BIG_16(x) ((((x) << 8) & 0xFF00) | (((x) >> 8) & 0x00FF))
|
||||||
# include <netinet/in.h>
|
|
||||||
# define LITTLE_TO_BIG_16(x) (htons(x))
|
|
||||||
#else
|
|
||||||
// WIN32
|
|
||||||
# define LITTLE_TO_BIG_16(x) ((((x) << 8) & 0xFF00) | (((x) >> 8) & 0x00FF))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_UINT_T
|
#ifndef HAVE_UINT_T
|
||||||
typedef unsigned int uint_t;
|
typedef unsigned int uint_t;
|
||||||
|
|
Loading…
Reference in New Issue