Commit Graph

433 Commits

Author SHA1 Message Date
MCUdude 286c0f5e2a Don't print irrelevant information for the Arduino programmer 2022-01-24 22:16:31 +01:00
MCUdude f6bbaadfa6 Print clock info after the correct clock speeds has been set
The "new" clock speed set by the -B flag wasn't reflected in the output log
2022-01-23 22:45:54 +01:00
Yegor Yefremov acee6afa4e CMake: split configuration in two files
The main CMakeLists.txt file in the project's root directory takes
care of the main project settings like project name and version,
handling the options, finding dependencies, etc.

The src/CMakeLists.txt handles options that are necessary to build
libavrdude library and avrdude binary.
2022-01-23 21:22:07 +01:00
Joerg Wunsch 42a154dddf Fix libusb-1.0 error strings
Previously, all libusb-1.0 error strings have been translated
by libusb_to_errno() into an errno-like integer, only in order
to pass that one straight into strerror().

For unhandled libusb-1.0 error codes, ERANGE was returned, which
is just nonsense ("Result too large", bug #848).

Instead, use a single function errstr() now that either can
use strerror() on some well-defined errno-like code, or otherwise
just return a string that mentions the numeric value.
2022-01-21 23:13:56 +01:00
Joerg Wunsch 37b0659951 PR #816 merged
Copy over man page additions into texinfo file as well.
2022-01-21 21:56:07 +01:00
Jörg Wunsch cce7a934d6
Merge pull request #815 from MCUdude/add-memory-sections
Add more memory sections to read from
2022-01-21 21:49:29 +01:00
Jörg Wunsch 490558049e
Merge pull request #816 from andrewshadura/usbtiny-spi
Add SPI support to USBtiny
2022-01-21 21:40:00 +01:00
Jörg Wunsch 512cce405c
Merge pull request #829 from yegorich/cmake-install-liavrdude
CMake: add initial support for installing lib and include files
2022-01-21 21:37:21 +01:00
Hans d401b2224e
Merge branch 'main' into jtagmkii-retry-attempts 2022-01-21 13:28:20 +01:00
MCUdude b1cbbfc9f0 Reduce verbosity when setting fuses and uploading programs
Affects commands with no -v flag and one -v flag
2022-01-20 09:45:34 +01:00
MCUdude dbac0ecf8c Reduce the number of attempts to 10
+ print number of attempts
2022-01-19 23:25:47 +01:00
Yegor Yefremov 8be18c788e CMake: add initial support for installing lib and include files 2022-01-18 14:54:42 +01:00
Marius Greuel 44b0c0715f Fix receive buffer implementation in ftdi_syncbb programmer 2022-01-17 22:53:58 +01:00
Marius Greuel 7b9f258806 Add a new programmer 'ft232h', similar to ft232r. Improve and correct pinout documentation for um232h and c232hm programmer. 2022-01-17 22:49:03 +01:00
MCUdude 0e451f73cf Print alias names if present 2022-01-17 21:34:09 +01:00
Jörg Wunsch 54d143d4a5
Merge pull request #836 from MCUdude/add-missing-targets
Add missing tinyAVR-2, AVR DD and AVR EA targets
2022-01-16 22:59:41 +01:00
MCUdude 4453d54296 Add memory name aliases for AVR DA/DB
+ add sernum and tempsense memory sections to read from
2022-01-15 21:53:58 +01:00
MCUdude 9c08c0c164 Attempt to fix incorrect readsize values
Values copied AVR64DD__.atdf and AVR64EA__.atdf. The order atdf files doesn't exist at the moment
2022-01-15 12:47:58 +01:00
MCUdude 628c48aff6 Add AVR EA targets
This includes AVR8EA28/32, AVR16EA28/32/48, AVR32EA28/32/48 and AVR64EA28/32/64
2022-01-14 20:30:49 +01:00
MCUdude 8e47768600 Add AVR DD targets
This includes AVR16DD14/20/28/32, AVR32DD14/20/28/32 and AVR64DD14/20/28/32
2022-01-14 19:52:22 +01:00
Jörg Wunsch b99687f33c
Merge pull request #811 from dbuchwald/main
Added missing RTS/DTR management feature to serialupdi programmer
2022-01-14 08:24:58 +01:00
Joerg Wunsch 153031d6d6 Copy over description of extended parameters to avrdude.1 2022-01-14 08:18:56 +01:00
MCUdude 310fe49b73 Add missing tinyAVR-2 series targets
Includes ATtiny3224, ATtiny3226 and ATtiny3227
2022-01-13 22:29:22 +01:00
Jörg Wunsch 77a5703c5c
Merge pull request #832 from MCUdude/add-even-more-missing-targets
Add missing ATmega and ATtiny targets
2022-01-13 21:26:43 +01:00
Joerg Wunsch 822578cffd Mention PR #809
Also fix signatures for ATmega169A, ATmega165 and ATmega165A.
2022-01-13 20:08:40 +01:00
Jörg Wunsch d1634e4d96
Merge pull request #809 from MCUdude/add-missing-atmega-targets
Add missing ATmega__5 and ATmega__9 targets to avrdude.conf
2022-01-13 19:59:42 +01:00
MCUdude 99d8fa5d88 Add missing ATtiny targets
+ a little formatting
2022-01-13 19:45:45 +01:00
MCUdude cc77f89953 Add missing ATmega targets
+ a little formatting
2022-01-13 19:45:30 +01:00
MCUdude 7064447378 Add all possible ATmega__5 and ATmega__9 targets
This includes the "non-P", A, P and PA suffixes
2022-01-13 18:27:36 +01:00
MCUdude 77ed8b98c5 Add ATmega165A/P targets 2022-01-13 18:27:36 +01:00
MCUdude 32232faa2b Add missing ATmega targets 2022-01-13 18:27:34 +01:00
Dawid Buchwald ab57f38387 Replaced tabs by spaces 2022-01-13 10:01:01 +01:00
Dawid Buchwald 90d0fa7346 Merge remote-tracking branch 'avrdudes/main' into main 2022-01-13 09:57:42 +01:00
Marius Greuel 3fbac230b3 Enable printf %n format specifier for MSVC 2022-01-12 20:41:52 +01:00
Joerg Wunsch 65d5cfadc1 Fix for TPI fuse write
In get_fuse_bitmask(), ensure the AVR_OP_READ and AVR_OP_WRITE
m->op[] fields are actually filled in, before referencing them.
If they are missing, just return a full byte mask (0xFF).

In avr_write(), for TPI memory, if the write consist of one byte onle
(which is the case for fuse byte writing), resort to avr_write_byte()
instead as it already implements everything needed. This leaves the
avr_write() implementation to handle full paged writes with an even
number of bytes only.
2022-01-11 22:00:22 +01:00
Jörg Wunsch 4e1bbf07ac
Merge pull request #826 from yegorich/cmake-dll
CMake: enable dynamic-link library for libavrdude
2022-01-11 15:40:58 +01:00
Yegor Yefremov e72fa01073 Fix libavrdude library file name
CMake adds "lib" prefix to the library name and hence we get the
following name "liblibavrdude". Use set_target_properties to
set the prefix to "".
2022-01-11 14:58:40 +01:00
Jörg Wunsch 2d833e7ceb
Merge pull request #820 from dl8dtl/libavrdude-remove-ac_cfg_h
Remove ac_cfg.h from libavrdude.h
2022-01-11 12:44:26 +01:00
Yegor Yefremov 8374564665 CMake: enable dynamic-link library for libavrdude
Add on option BUILD_SHARED_LIBS to also build a DLL variant
of the libavrdude library. Turn it off by default to preserve
current behavior.
2022-01-11 12:02:36 +01:00
Joerg Wunsch c7f7fcda8e Fix URL for linuxgpio programmer
Closes #419
2022-01-10 22:12:36 +01:00
Jörg Wunsch 22e6c4b325
Merge pull request #818 from yegorich/pindefs-fix-warning
pindefs: conform to the function declaration
2022-01-10 21:33:04 +01:00
Joerg Wunsch a3bf6cc4c5 Fix names of Logic Green devices
There's some confusion as the datasheet calls the device family
LGT8FX8P but the devices itself are LGT8F88P through LGT8F328P.
Obviously, the "X" is actually a wildcard denoting the flash size.
2022-01-10 21:29:09 +01:00
Jörg Wunsch 0a4193f742
Merge pull request #817 from mariusgreuel/pr-print-expected-part
Print expected part
2022-01-10 21:25:39 +01:00
Joerg Wunsch 48bcc269e2 Remove ac_cfg.h from libavrdude.h 2022-01-10 15:12:33 +01:00
Joerg Wunsch cf35b7fe32 Include ac_cfg.h before libavrdude.h
On MSVC, this is required in order to have a definition of
PATH_MAX in place.
2022-01-10 14:51:48 +01:00
Joerg Wunsch fa8a31740f Remove ac_cfg.h from libavrdude.h 2022-01-10 14:27:08 +01:00
Dawid Buchwald 92a3eb1080 Merge remote-tracking branch 'avrdudes/main' into main 2022-01-09 23:39:09 +01:00
MCUdude 2fd967866c Don't display target info that's not present in Avrdude.conf
I still have to figure out why all parts are flagged with support for both serial and parallel programming interfaces, even when this is not the case
2022-01-09 18:13:07 +01:00
Yegor Yefremov 1a85e01b63 pindefs: conform to the function declaration
The last parameter in the pins_check() routine is declared as
"const bool". Add the missing "const" specifier.
2022-01-09 15:57:45 +01:00
Marius Greuel f67cb3c224 Preserve the insertion order of programmers and parts when parsing the avrdude.conf file 2022-01-09 11:52:52 +01:00
Marius Greuel 1297098eae When the specified part has a matching signature, print the specified part instead of one from the parts list 2022-01-09 11:52:47 +01:00
David Fries 40f0fae5a4
Update manpage for USBtiny and direct SPI 2022-01-09 10:57:22 +01:00
David Fries cffa6c7ca0
Add direct SPI mode to USBtiny
It is limited to exactly sending (and receiving) multiples of 4 bytes,
and unlike programming mode where slave select isn't required, SS must
be held low for SPI to work. USBtiny programmers don't usually have
a wire for SS.
2022-01-09 10:57:22 +01:00
David Fries 112b6edd1c
Set back to programming mode on quit
Otherwise it can't read the fuses and the safe fuse code complains.
2022-01-09 10:27:36 +01:00
MCUdude 8f16c2a1e4 Add more memory sections to read from
+ improve Avrdude output in verbose mode
2022-01-08 23:57:37 +01:00
Joerg Wunsch a182ef5a26 Notify user if pgm->open() failes
This is supposed to fix issue #813
2022-01-08 22:02:25 +01:00
Dawid Buchwald a8de8b8b8f
Merge branch 'avrdudes:main' into main 2022-01-08 19:44:20 +01:00
Dawid Buchwald 4a26aac5c8 Added RTS/DTR release message 2022-01-08 19:14:33 +01:00
Dawid Buchwald b70fe0e956 Added RTS/DTR status message 2022-01-08 18:53:46 +01:00
Marius Greuel d2ae6a824f Add C code alternative to __builtin_popcount. 2022-01-08 16:13:32 +01:00
Marius Greuel 21d7fc58b6 Add -Wall to CMake compiler options 2022-01-08 16:13:26 +01:00
Dawid Buchwald 1631fc4dd8 Implemented extended parameter for RTS/DTR lines management 2022-01-08 10:04:25 +01:00
Marius Greuel 428f5828b4 Add cross-compile to GitHub build actions 2022-01-07 23:57:54 +01:00
Marius Greuel b87b527b3a Add advapi32.lib to MSVC builds 2022-01-07 23:57:54 +01:00
Marius Greuel 80d53839dd Replace MSVC implementation of __builtin_popcount with C code 2022-01-07 23:57:54 +01:00
Marius Greuel e1221e22ff Fix -Wpointer-sign warning in micronucleus.c 2022-01-07 23:48:56 +01:00
Yegor Yefremov f2d6342d21 buspirate: fix invalidScanfArgType_int warning
"%x" specifies an unsigned int, hence change the type of spi_write, spi_read
accordingly.
2022-01-07 19:22:57 +01:00
Jörg Wunsch 6a737a0c13
Merge pull request #798 from mariusgreuel/pr-msvc
Add MSVC builds and better WinUSB/FTDI support
2022-01-07 18:30:19 +01:00
Marius Greuel fc54ef5e59 Clean up legacy code 2022-01-07 17:57:02 +01:00
Marius Greuel fe6f08d48f Use alloca for stack based memory allocation 2022-01-07 17:54:36 +01:00
Marius Greuel d05c2db3fb Add a missing define to the MSVC compatiblity shim 2022-01-07 17:54:36 +01:00
Marius Greuel 1fb88c3040 Add external libraries to CMake project 2022-01-07 17:54:36 +01:00
Marius Greuel c035c91db5 Add compatibility shim for MSVC 2022-01-07 17:54:36 +01:00
Jörg Wunsch a91e389a5e
Merge pull request #807 from yegorich/src-typos
Fix typos all over the code
2022-01-07 13:15:14 +01:00
Yegor Yefremov f29b2a283a Fix typos all over the code 2022-01-07 11:31:16 +01:00
Jörg Wunsch 539eec79e6
Merge pull request #801 from dl8dtl/conffile-clean-up
Conffile clean up
2022-01-07 09:23:17 +01:00
Marius Greuel f20c4bd9e6 Add support for Teensy bootloader 2022-01-06 23:39:17 +01:00
Jörg Wunsch 118993a584
Merge pull request #803 from MCUdude/add-missing-targets
Add missing ATtiny targets to avrdude.conf
2022-01-06 22:51:57 +01:00
Joerg Wunsch 6cfdb3a04b Remove obsolete file 2022-01-06 22:39:36 +01:00
Yegor Yefremov d5b2106644 term: fix memleakOnRealloc
Assign the newly allocated value to a temporary variable and in the
case where we cannot allocate memory, free the initial pointer.
2022-01-06 11:28:39 +01:00
Jörg Wunsch 97c34f7b26
Merge pull request #792 from yegorich/ftdi-fix-deprecated-call
avrftdi: don't use the deprecated ftdi_usb_purge_buffers routine
2022-01-05 17:41:08 +01:00
Joerg Wunsch 1529277477 When finding LIBFTDI, don't clobber LIBS but extend it 2022-01-05 17:26:39 +01:00
MCUdude 50e15a5cf8 Add missing ATtiny targets
ATtiny48, 87, 102, 104, 167 and 828
2022-01-05 11:50:31 +01:00
Hans 4b76ccc951
Merge branch 'main' into main 2022-01-05 08:05:38 +01:00
Jörg Wunsch e27990bd54
Merge pull request #786 from mariusgreuel/pr-micronucleus
Add support for Micronucleus bootloader
2022-01-04 23:52:00 +01:00
Jörg Wunsch b8c825c9af
Merge pull request #795 from MCUdude/add-pkobn_updi-vtarg
Add target voltage adjustment for Curiosity Nano boards
2022-01-04 23:50:20 +01:00
Joerg Wunsch 124ef7fe3d Move the backslash replacement out into a separate function 2022-01-04 23:10:14 +01:00
Joerg Wunsch 6a87a110cc Move the config file names out as #define into avrdude.h 2022-01-04 23:03:47 +01:00
Joerg Wunsch 374861f62e Move the system config file search after option processing
For one, this allows us to use MSG_DEBUG in order to emit debug
messages (requires -v processing).

As another effect, if the -C conffile option was given, there is no
need at all to run through all the process of looking up a system
config file - it's right there already.

Also, move it after the logfile creation if -l logfile was given, so
the respective debug message can go to the logfile.
2022-01-04 22:45:47 +01:00
Marius Greuel 3747db516a Add support for Micronucleus bootloader 2022-01-04 18:37:57 +01:00
Joerg Wunsch 863f77d827 Fix a (valid) warning about comparison of char vs. int against EOF
Closes PR #796
2022-01-04 13:48:11 +01:00
Joerg Wunsch f9ea588525 Update the man page to reflect the search order for avrdude.conf 2022-01-03 23:53:51 +01:00
Kristof Mulier 5c896992cd
Find 'avrdude.conf' based on absolute path to executable (#780)
* Find 'avrdude.conf' based on absolute path to executable

* Update coding style

* Update coding style

* Update 'src/doc/avrdude.texi' to reflect the new search method for 'avrdude.conf'
2022-01-03 23:20:31 +01:00
MCUdude ecca860972 Add target voltage adjustment for Curiosity Nano boards
in Avrdude terminal mode
2022-01-03 18:51:33 +01:00
Yegor Yefremov dc1fed40bf avrftdi: don't use the deprecated ftdi_usb_purge_buffers routine
Since commit ed46f09c1ccd1351e003a200ba50e3e4778ac478 (Implement
tc[io]flush methods & deprecate broken purge_buffers methods.)
ftdi_usb_purge_buffers() routine is deprecated. Use HAVE_FTDI_TCIOFLUSH
macro to invoke the newly introduced ftdi_tcioflush() routine.
2022-01-03 17:59:05 +01:00
Marius Greuel 4d5af6370d Change version URL from Savannah to GitHub 2022-01-03 15:13:00 +01:00
Marius Greuel 12a67554d9 Derive program version from last commit 2022-01-03 15:04:25 +01:00
Marius Greuel e843db55ae Use yacc/byacc as an alternative to bison 2022-01-03 13:10:54 +01:00
MCUdude f96b98e9df Mute "flash and boot" warning if s UPDI programmer is used
Currently, no UPDI compatible AVR has a dedicated boot section like the Xmegas do
2022-01-02 19:20:05 +01:00
MCUdude dcd5374ae9 Print meaningful error if programmer doesn't support target 2022-01-02 12:57:42 +01:00
MCUdude b9f03b1377 Fix typo in URL 2022-01-02 12:13:15 +01:00
MCUdude f5bec43812 Add jtag2updi programmer to docs 2022-01-02 12:13:15 +01:00
MCUdude a2a276a8cc Add support for UPDI devices though jtag2updi
'Hack' borrowed from https://github.com/facchinm/avrdude
2022-01-02 12:13:15 +01:00
MCUdude 71d5dbec48 Add more jtagmkii baud rates 2022-01-02 12:13:13 +01:00
Joerg Wunsch a6a06f47f6 Prevent `spi' and `pgm' commands from crashing terminal mode
These commands are been meaningful only on direct bitbang programming
adapters which implement a pgm->setpin method.

Disable these commands for all other programmers, and issue an
informational message.

This is a partial fix for bug #790.
2022-01-01 20:58:26 +01:00
Jörg Wunsch 69231d7ad0
Merge pull request #791 from MCUdude/add-programmers
Add PicKit4 and SNAP programmers
2022-01-01 20:31:59 +01:00
MCUdude 2623e7a9fa Update docs to reflect new programmers 2022-01-01 12:06:52 +01:00
MCUdude 302b6eb05a Add PicKit4 and SNAP ISP and PDI programmer options 2022-01-01 12:04:16 +01:00
Marius Greuel 5246cf1750 Make Windows version resource accept fewer than four version numbers 2021-12-29 22:28:19 +01:00
MCUdude 0a335e2f73 Add jtag2updi programmer 2021-12-29 14:27:51 +01:00
Joerg Wunsch a369f9d28f SerialUPDI man page addition 2021-12-28 23:34:34 +01:00
Joerg Wunsch 805ca48ffa Merge remote-tracking branch 'upstream/main' 2021-12-28 23:24:13 +01:00
Jörg Wunsch b14459dc04
Merge pull request #782 from dbuchwald/main
Documentation for SerialUPDI programmer
2021-12-28 23:23:37 +01:00
Joerg Wunsch a625db23e0 Merge remote-tracking branch 'upstream/main' 2021-12-28 15:00:53 +01:00
Jörg Wunsch f531af70db
Merge pull request #783 from mariusgreuel/pr-improve-cmake
Improve CMake project
2021-12-28 14:47:58 +01:00
Marius Greuel 55251ea6f5 Fix avr_read() for page reads with page sizes that are not a multiple of the memory size 2021-12-26 16:57:23 +01:00
Marius Greuel 3840468e36 Improve CMake project to filter conditional sections 2021-12-26 16:46:15 +01:00
Marius Greuel f391b7138b Improve CMake project for FreeBSD builds 2021-12-26 16:40:28 +01:00
Dawid Buchwald c48c5135d8 Added SerialUPDI related documentation 2021-12-26 14:34:01 +01:00
Yegor Yefremov d14bb02dca Fix memory leaks
Free buf in the case of an error. Found via cppcheck.
2021-12-24 10:14:16 +01:00
Yegor Yefremov f2dc95ea01 Fix typos 2021-12-23 17:17:08 +01:00
Joerg Wunsch 025ebd4ae8 Ah OK, CMAKE doesn't like dashes in the version number.
Turn 6.99-20211218 into 6.99.20211218
2021-12-22 23:33:20 +01:00
Joerg Wunsch 47947fb35c Make version numbers of configure.ac and CMakeLists.txt match
We are moving towards AVRDUDE 7.0, so express this by using
6.99 by now.
2021-12-22 23:27:05 +01:00
Marius Greuel 86cef2559f Add serialupdi to CMakeLists.txt 2021-12-22 22:40:21 +01:00
Jörg Wunsch 1f44ec5e0c
Merge pull request #768 from mariusgreuel/pr-migration2
GitHub Migration part 2: start a CMake infrastructure
2021-12-22 22:20:21 +01:00
Dawid Buchwald c093b21a67 Moved SerialUPDI sources to correct location 2021-12-21 21:45:36 +01:00
Dawid Buchwald 291549d021 Merged AVRDUDES/main into SerialUPDI branch 2021-12-21 21:38:51 +01:00
Marius Greuel 60cb548075 Remove 'windows' folder with giveio.sys driver 2021-12-21 17:45:35 +01:00
Marius Greuel e4ebfe420c Add Windows version resource 2021-12-20 17:51:44 +01:00
Marius Greuel fbdb6a98c0 Add CMake project 2021-12-20 17:50:42 +01:00
Joerg Wunsch 868895e2e0 Make `bootstrap' executable
That bit appears to get lost during transition from SVN.
2021-12-19 00:35:52 +01:00
Joerg Wunsch 3a8af359f3 Update toplevel files.
Integrate old INSTALL into README.md, both files had a lot
of (potential) overlap.

Add template for new entries in NEWS, targetting next release.

Bump version number to 6.99-20211218

Tentatively, with the Github migration and all ongoing code
restructuring, we aim for a version 7.0 release at some point
in the future.
2021-12-18 22:32:50 +01:00
Marius Greuel 5633a6d88a Move source files to 'src' folder 2021-12-17 09:17:42 +01:00