Merge branch 'partdesc' of github.com:stefanrueger/avrdude into partdesc
This commit is contained in:
commit
0a7f2645c9
|
@ -35,6 +35,13 @@ 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)
|
||||||
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
|
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# Prefer static libraries over DLLs on Windows
|
||||||
|
option(USE_STATIC_LIBS "Use static libraries" ON)
|
||||||
|
else()
|
||||||
|
option(USE_STATIC_LIBS "Use static libraries" OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
include(CheckIncludeFile)
|
include(CheckIncludeFile)
|
||||||
include(CheckSymbolExists)
|
include(CheckSymbolExists)
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
|
@ -110,14 +117,14 @@ endif()
|
||||||
# Detect installed libraries
|
# Detect installed libraries
|
||||||
# =====================================
|
# =====================================
|
||||||
|
|
||||||
# Prefer static libraries over DLLs on Windows
|
if(USE_STATIC_LIBS)
|
||||||
if(WIN32)
|
|
||||||
set(PREFERRED_LIBELF libelf.a elf)
|
set(PREFERRED_LIBELF libelf.a elf)
|
||||||
set(PREFERRED_LIBUSB libusb.a usb)
|
set(PREFERRED_LIBUSB libusb.a usb)
|
||||||
set(PREFERRED_LIBUSB_1_0 libusb-1.0.a usb-1.0)
|
set(PREFERRED_LIBUSB_1_0 libusb-1.0.a usb-1.0)
|
||||||
set(PREFERRED_LIBHIDAPI libhidapi.a libhidapi-libusb.a libhidapi-hidraw.a hidapi hidapi-libusb hidapi-hidraw)
|
set(PREFERRED_LIBHIDAPI libhidapi.a libhidapi-libusb.a libhidapi-hidraw.a hidapi hidapi-libusb hidapi-hidraw)
|
||||||
set(PREFERRED_LIBFTDI libftdi.a ftdi)
|
set(PREFERRED_LIBFTDI libftdi.a ftdi)
|
||||||
set(PREFERRED_LIBFTDI1 libftdi1.a ftdi1)
|
set(PREFERRED_LIBFTDI1 libftdi1.a ftdi1)
|
||||||
|
set(PREFERRED_LIBREADLINE libreadline.a)
|
||||||
else()
|
else()
|
||||||
set(PREFERRED_LIBELF elf)
|
set(PREFERRED_LIBELF elf)
|
||||||
set(PREFERRED_LIBUSB usb)
|
set(PREFERRED_LIBUSB usb)
|
||||||
|
@ -125,6 +132,7 @@ else()
|
||||||
set(PREFERRED_LIBHIDAPI hidapi hidapi-libusb hidapi-hidraw)
|
set(PREFERRED_LIBHIDAPI hidapi hidapi-libusb hidapi-hidraw)
|
||||||
set(PREFERRED_LIBFTDI ftdi)
|
set(PREFERRED_LIBFTDI ftdi)
|
||||||
set(PREFERRED_LIBFTDI1 ftdi1)
|
set(PREFERRED_LIBFTDI1 ftdi1)
|
||||||
|
set(PREFERRED_LIBREADLINE readline)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
|
@ -212,7 +220,7 @@ endif()
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
# Find libreadline
|
# Find libreadline
|
||||||
|
|
||||||
find_library(HAVE_LIBREADLINE NAMES readline)
|
find_library(HAVE_LIBREADLINE NAMES ${PREFERRED_LIBREADLINE})
|
||||||
if(HAVE_LIBREADLINE)
|
if(HAVE_LIBREADLINE)
|
||||||
set(LIB_LIBREADLINE ${HAVE_LIBREADLINE})
|
set(LIB_LIBREADLINE ${HAVE_LIBREADLINE})
|
||||||
endif()
|
endif()
|
||||||
|
|
8
NEWS
8
NEWS
|
@ -15,9 +15,17 @@ Changes since version 7.0:
|
||||||
|
|
||||||
* Issues fixed:
|
* Issues fixed:
|
||||||
|
|
||||||
|
- Fix micronucleus bootloader to check for unresponsive USB
|
||||||
|
devices #945
|
||||||
|
- Fix src/CMakeLists.txt to honor CMAKE_INSTALL_LIBDIR #972
|
||||||
|
|
||||||
* Pull requests:
|
* Pull requests:
|
||||||
|
|
||||||
- Fix .Dd macro in manpage #949
|
- Fix .Dd macro in manpage #949
|
||||||
|
- fix M1 homebrew path #950
|
||||||
|
- CMake Enhancements #962
|
||||||
|
- Reduce programmer desc string length in avrdude.conf
|
||||||
|
to < 80 characters #1000
|
||||||
|
|
||||||
* Internals:
|
* Internals:
|
||||||
|
|
||||||
|
|
8
build.sh
8
build.sh
|
@ -50,7 +50,13 @@ case "${ostype}" in
|
||||||
then
|
then
|
||||||
build_flags="${build_flags} -D CMAKE_C_FLAGS=-I/opt/local/include -D CMAKE_EXE_LINKER_FLAGS=-L/opt/local/lib"
|
build_flags="${build_flags} -D CMAKE_C_FLAGS=-I/opt/local/include -D CMAKE_EXE_LINKER_FLAGS=-L/opt/local/lib"
|
||||||
else
|
else
|
||||||
build_flags="${build_flags} -D CMAKE_C_FLAGS=-I/usr/local/include -D CMAKE_EXE_LINKER_FLAGS=-L/usr/local/Cellar"
|
# Apple M1 (may be new version of homebrew also)
|
||||||
|
if [ -d /opt/homebrew ]
|
||||||
|
then
|
||||||
|
build_flags="${build_flags} -D CMAKE_C_FLAGS=-I/opt/homebrew/include -D CMAKE_EXE_LINKER_FLAGS=-L/opt/homebrew/Cellar"
|
||||||
|
else
|
||||||
|
build_flags="${build_flags} -D CMAKE_C_FLAGS=-I/usr/local/include -D CMAKE_EXE_LINKER_FLAGS=-L/usr/local/Cellar"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
|
@ -51,15 +51,10 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
add_compile_definitions(CONFIG_DIR=\"${CONFIG_DIR}\")
|
add_compile_definitions(CONFIG_DIR=\"${CONFIG_DIR}\")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(EXTRA_WINDOWS_SOURCES "${PROJECT_BINARY_DIR}/src/windows.rc")
|
set(EXTRA_WINDOWS_RESOURCES "${PROJECT_BINARY_DIR}/src/windows.rc")
|
||||||
set(EXTRA_WINDOWS_LIBRARIES setupapi ws2_32)
|
set(EXTRA_WINDOWS_LIBRARIES setupapi ws2_32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT WIN32)
|
|
||||||
set(LIB_MATH m)
|
|
||||||
add_compile_options(-Wall) # -Wextra
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
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)
|
||||||
|
@ -79,6 +74,9 @@ if(MSVC)
|
||||||
set(EXTRA_WINDOWS_INCLUDES ${EXTRA_WINDOWS_INCLUDES}
|
set(EXTRA_WINDOWS_INCLUDES ${EXTRA_WINDOWS_INCLUDES}
|
||||||
"msvc"
|
"msvc"
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
set(LIB_MATH m)
|
||||||
|
add_compile_options(-Wall) # -Wextra
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# =====================================
|
# =====================================
|
||||||
|
@ -216,6 +214,7 @@ add_library(libavrdude
|
||||||
xbee.c
|
xbee.c
|
||||||
${FLEX_Parser_OUTPUTS}
|
${FLEX_Parser_OUTPUTS}
|
||||||
${BISON_Parser_OUTPUTS}
|
${BISON_Parser_OUTPUTS}
|
||||||
|
"${EXTRA_WINDOWS_SOURCES}"
|
||||||
)
|
)
|
||||||
|
|
||||||
set_target_properties(libavrdude PROPERTIES
|
set_target_properties(libavrdude PROPERTIES
|
||||||
|
@ -253,7 +252,7 @@ add_executable(avrdude
|
||||||
term.h
|
term.h
|
||||||
whereami.c
|
whereami.c
|
||||||
whereami.h
|
whereami.h
|
||||||
"${EXTRA_WINDOWS_SOURCES}"
|
"${EXTRA_WINDOWS_RESOURCES}"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(avrdude PUBLIC libavrdude)
|
target_link_libraries(avrdude PUBLIC libavrdude)
|
||||||
|
@ -264,8 +263,8 @@ target_link_libraries(avrdude PUBLIC libavrdude)
|
||||||
|
|
||||||
install(TARGETS avrdude DESTINATION bin)
|
install(TARGETS avrdude DESTINATION bin)
|
||||||
install(TARGETS libavrdude
|
install(TARGETS libavrdude
|
||||||
LIBRARY DESTINATION lib
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
ARCHIVE DESTINATION lib
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
PUBLIC_HEADER DESTINATION include COMPONENT dev
|
PUBLIC_HEADER DESTINATION include COMPONENT dev
|
||||||
)
|
)
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/avrdude.conf" TYPE SYSCONF)
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/avrdude.conf" TYPE SYSCONF)
|
||||||
|
|
|
@ -947,9 +947,10 @@ programmer
|
||||||
;
|
;
|
||||||
|
|
||||||
# commercial version of USBtiny, using a separate VID/PID
|
# commercial version of USBtiny, using a separate VID/PID
|
||||||
|
# https://github.com/IowaScaledEngineering/ckt-avrprogrammer
|
||||||
programmer
|
programmer
|
||||||
id = "iseavrprog";
|
id = "iseavrprog";
|
||||||
desc = "USBtiny-based USB programmer, https://github.com/IowaScaledEngineering/ckt-avrprogrammer";
|
desc = "USBtiny-based programmer, https://iascaled.com";
|
||||||
type = "usbtiny";
|
type = "usbtiny";
|
||||||
connection_type = usb;
|
connection_type = usb;
|
||||||
usbvid = 0x1209;
|
usbvid = 0x1209;
|
||||||
|
|
|
@ -139,6 +139,22 @@ static int micronucleus_check_connection(pdata_t* pdata)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool micronucleus_is_device_responsive(pdata_t* pdata, struct usb_device* device)
|
||||||
|
{
|
||||||
|
pdata->usb_handle = usb_open(device);
|
||||||
|
if (pdata->usb_handle == NULL)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int result = micronucleus_check_connection(pdata);
|
||||||
|
|
||||||
|
usb_close(pdata->usb_handle);
|
||||||
|
pdata->usb_handle = NULL;
|
||||||
|
|
||||||
|
return result >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int micronucleus_reconnect(pdata_t* pdata)
|
static int micronucleus_reconnect(pdata_t* pdata)
|
||||||
{
|
{
|
||||||
struct usb_device* device = usb_device(pdata->usb_handle);
|
struct usb_device* device = usb_device(pdata->usb_handle);
|
||||||
|
@ -696,6 +712,7 @@ static int micronucleus_open(PROGRAMMER* pgm, char* port)
|
||||||
usb_init();
|
usb_init();
|
||||||
|
|
||||||
bool show_retry_message = true;
|
bool show_retry_message = true;
|
||||||
|
bool show_unresponsive_device_message = true;
|
||||||
|
|
||||||
time_t start_time = time(NULL);
|
time_t start_time = time(NULL);
|
||||||
for (;;)
|
for (;;)
|
||||||
|
@ -717,6 +734,19 @@ static int micronucleus_open(PROGRAMMER* pgm, char* port)
|
||||||
pdata->major_version = (uint8_t)(device->descriptor.bcdDevice >> 8);
|
pdata->major_version = (uint8_t)(device->descriptor.bcdDevice >> 8);
|
||||||
pdata->minor_version = (uint8_t)(device->descriptor.bcdDevice >> 0);
|
pdata->minor_version = (uint8_t)(device->descriptor.bcdDevice >> 0);
|
||||||
|
|
||||||
|
if (!micronucleus_is_device_responsive(pdata, device))
|
||||||
|
{
|
||||||
|
if (show_unresponsive_device_message)
|
||||||
|
{
|
||||||
|
avrdude_message(MSG_INFO, "%s: WARNING: Unresponsive Micronucleus device detected, please reconnect...\n",
|
||||||
|
progname);
|
||||||
|
|
||||||
|
show_unresponsive_device_message = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
avrdude_message(MSG_NOTICE, "%s: Found device with Micronucleus V%d.%d, bus:device: %s:%s\n",
|
avrdude_message(MSG_NOTICE, "%s: Found device with Micronucleus V%d.%d, bus:device: %s:%s\n",
|
||||||
progname,
|
progname,
|
||||||
pdata->major_version, pdata->minor_version,
|
pdata->major_version, pdata->minor_version,
|
||||||
|
|
Loading…
Reference in New Issue