Stefan Rueger
5c4cfa642a
Parse terminal writes of string and character constants in C-style
2022-07-12 11:39:02 +01:00
Stefan Rueger
9fe6820236
Add double type for terminal write in anticipation of future avr-libc extension
2022-07-12 11:36:57 +01:00
Stefan Rueger
feda75b60a
Remove unnecessary bool is_float in terminal write
2022-07-12 11:35:27 +01:00
Stefan Rueger
51355d04fb
Remodel logic of the size that integer items occupy in terminal write
...
Integers can be hexadecimal, decimal or octal. An optional case-insensitive
suffix specifies their size: HH: 8 bit, H/S: 16 bit, L: 32 bit, LL: 64 bit
An optional U suffix makes a number unsigned. Ordinary 0x hex numbers are
always treated as unsigned. +0x or -0x hex numbers are treated as signed
unless they have a U suffix. Unsigned integers cannot be larger than 2^64-1.
If n is an unsigned integer then -n is also a valid unsigned integer as in C.
Signed integers must fall into the [-2^63, 2^63-1] range or a correspondingly
smaller range when a suffix specifies a smaller type. Out of range signed
numbers trigger a warning.
Ordinary 0x hex numbers with n hex digits (counting leading zeros) use
the smallest size of 1, 2, 4 and 8 bytes that can accommodate any n-digit hex
number. If a suffix specifies a size explicitly the corresponding number of
least significant bytes are written. Otherwise, signed and unsigned integers
alike occupy the smallest of 1, 2, 4, or 8 bytes needed to accommodate them
in their respective representation.
2022-07-12 11:32:38 +01:00
Stefan Rueger
62d3eebd56
Fix 64-bit integer terminal write where high bit set
...
Using strtoll() can only return numbers in the range [-2^63, 2^63-1]. This
means that 0xffffFFFFffffFFFF (2^64-1) will be out of range and is written as
max LL. Actually, every 64-bit number with high-bit set will wrongly be
written as max LL.
This commit uses strtoull() instead to fix this, and checks for unsiged out-
of-range error. strtoull() also has the neat benefit that input with a minus
sign is treated like C unsigned numbers, ie, -u is also a valid unsigned
number if only u is one. In case the input is meant to be treated as signed,
it is therefore still OK to use strtoull() in the first instance only that in
this case a second check against the range of the signed domain is necessary.
2022-07-12 11:19:47 +01:00
Stefan Rueger
9afa56381e
Remove unused component is_signed in terminal write
2022-07-12 11:19:05 +01:00
Stefan Rueger
ff43e0544d
Correct a parse message in terminal write
2022-07-12 11:18:15 +01:00
Stefan Rueger
177834ae7c
Ensure enough memory is allocated for buf in terminal write
2022-07-12 11:16:16 +01:00
Stefan Rueger
d3ad078577
Ensure terminal write fill mode ... always fills with last data item
2022-07-12 11:15:30 +01:00
Stefan Rueger
39a00bc71e
Ensure +0x...f does not strip suffix f in terminal write
2022-07-12 11:14:41 +01:00
Stefan Rueger
360d7c502b
Make suffix fully case insensitive (allow Hh, Ll, ...) in terminal write
2022-07-12 11:13:46 +01:00
Stefan Rueger
d9450058c8
Cache strlen(argv[i]) in term.c cmd_write() and prevent negative array index
2022-07-12 11:12:20 +01:00
Jan Egil Ruud
69ee5da613
Improve error handling for devices that does not support HVUPDI.
2022-07-12 12:01:17 +02:00
Jan Egil Ruud
2478c18745
Do not let the hvupdi extended option take any configuration values. The hvupdi type is implied by the part configuration.
2022-07-11 15:26:41 +02:00
Jan Egil Ruud
173b4f9d0a
Clean up and simplify hvupdi handling, and set default hvupdi_variant to -1.
2022-07-11 14:07:45 +02:00
Stefan Rueger
ff8f519a34
Fix PICKit2 ATmega2560 flash paged flash read
...
The paged read in pickit2.c has two errors:
- It drops load extended address commands unless a paged read happens at a
64k byte boundary; this is invalid when reading files with holes
- It wrongly assumed that flash memory is byte addressed
The fix is to carry out a load extended address command, if needed, at the
beginning of each paged flash read with the correct word address. Although the
pickit2_paged_load() has independent parameters page_size, addr and n_bytes,
AVRDUDE only ever calls paged read/write functions with page_size and n_bytes
both set to mem->page_size and addr aligned with a page boundary. Therefore, it
is sufficient to set the load extended address at the beginning of each page
read.
2022-07-10 23:41:44 +01:00
Stefan Rueger
215ea1af5c
Merge branch 'partdesc' of github.com:stefanrueger/avrdude into partdesc
2022-07-07 18:34:26 +01:00
Stefan Rueger
9e2cea3ada
Implement developer options -p */[*cdosSrwt] for part descriptions
2022-07-07 18:32:19 +01:00
Jan Egil Ruud
91310e6f50
Move hvupdi_support list to a new prog_parm_updi group, and initialize the list.
2022-07-07 12:23:05 +02:00
Ruud, Jan Egil
9e5ea25b9e
Add HVUPDI_SUPPORT list for programmers.
2022-07-05 14:14:37 +02:00
Stefan Rueger
64ee4858fd
Update 2nd debug message in avr.c with correct function name
2022-07-05 01:00:45 +01:00
Stefan Rueger
d3b22fa3c6
Update debug message in avr.c with correct function name
2022-07-05 00:57:40 +01:00
Stefan Rueger
00ea21597e
Merge pull request #1001 from MCUdude/add-missing-bits-and-pieces
...
Add missing delays in avrdude.conf
2022-07-05 00:05:32 +01:00
Stefan Rueger
2b6ee8f4d1
Adapt whitespace to existing style in avrftdi.c
2022-07-04 23:54:02 +01:00
Stefan Rueger
7aad03cbcd
Fix paged read for ATmega2560 et al for ft245r.c
2022-07-04 23:11:32 +01:00
Stefan Rueger
a721e485cb
Refactor paged read/write routines in ft245r.c
2022-07-04 23:04:36 +01:00
Stefan Rueger
237cb63211
Steamline avrftdi support for ATmega2560 et al
2022-07-04 12:30:37 +01:00
MCUdude
d2bb964fc7
Attempt to fix EEPROM write issue #1009
2022-07-04 12:30:37 +01:00
Joerg Wunsch
f22b81c00e
Fix a number of logic errors in the previous commits
...
RSP3_FAIL_CRC_FAILURE is 0x43 rather than 0x47.
jtag3_errcode() must only be applied to a reason code, not
to any general status code.
2022-07-04 12:30:37 +01:00
Joerg Wunsch
8953967fc3
Replace internal knowledge in jtag3.c by a public API
...
In certain situations (CRC failure, device locked), that JTAG3
read functions need to return an indication to the caller that
it is OK to proceed, and allow erasing the device anyway.
Historically, the JTAG3 code passed the respective protocol
errors directly (and unexplained) up to the caller, leaving
the decision to the caller how to handle the situation.
Replace that by a more common return value API. New code should
prefer this API instead of any hardcoded return values.
2022-07-04 12:30:37 +01:00
Stefan Rueger
ef785a617a
Treat x bits in .conf SPI commands as 0
2022-07-04 12:30:37 +01:00
prchal
134509cc6f
adding support for all Linux baud rates v.2
...
If optiboot can work at higher bauds, why not avrdude.
Versoin 2 of #985 .
Linux uses the old-style bitmapped version of the Bxxxx macros.
2022-07-04 12:30:37 +01:00
MCUdude
963a1e54af
Fix JTAG transaction close issue
...
Fixes issue #366
2022-07-04 12:30:37 +01:00
MCUdude
b167e88422
Reduce programmer description string length
...
to less than 80 characters. #941 related
2022-07-04 12:30:37 +01:00
Stefan Rueger
3893a21164
Fix avrftdi support for ATmega2560 et al (load extended address)
2022-07-04 12:30:25 +01:00
MCUdude
6473a6d71a
Add avrdude_message to verbose mode
2022-07-01 07:36:07 +02:00
MCUdude
30c1b31b8d
Send 12V pulse to HV_UPDI_VARIANT_2 targets as well
2022-06-29 17:12:57 +02:00
Ruud, Jan Egil
65763b5700
Correct hvupdi_variant for AVR DD devices.
2022-06-29 17:12:57 +02:00
Ruud, Jan Egil
39008ac2c1
Add UPDI HV type to device description.
2022-06-29 17:12:57 +02:00
MCUdude
577856cf15
Use HV UPDI constants rather than arbitrary numbers
2022-06-29 17:12:57 +02:00
MCUdude
50220289bb
Add high-voltage UPDI info to docs
2022-06-29 17:12:57 +02:00
MCUdude
e068341716
Make sure "-x hvupdi" is only valid for Pickit4 and Powerdebugger
2022-06-29 17:12:57 +02:00
MCUdude
f67c35744e
add support for "-x hvupdi" that triggers HV UPDI
2022-06-29 17:12:57 +02:00
MCUdude
ba98e48880
add "hvupdi_variant" property to avrdude.conf
2022-06-29 17:12:52 +02:00
Stefan Rueger
0240b361f5
Merge branch 'avrdudes:main' into partdesc
2022-06-28 22:53:22 +01:00
Stefan Rueger
a21f3d20af
Merge branch 'avrdudes:main' into issue942
2022-06-28 22:38:47 +01:00
Jörg Wunsch
8cd6f357b1
Merge pull request #1013 from MCUdude/jtag3-eeprom-fix
...
JTAG3 UPDI EEPROM fix
2022-06-28 22:36:19 +02:00
Jörg Wunsch
7ec51a5185
Merge pull request #996 from dl8dtl/jtag3_retcode
...
Replace internal knowledge in jtag3.c by a public API
Supersedes #982
2022-06-28 22:21:50 +02:00
Stefan Rueger
09c168a186
Merge branch 'avrdudes:main' into issue942
2022-06-28 20:56:49 +01:00
Stefan Rueger
d8a30aa8c4
Merge branch 'avrdudes:main' into partdesc
2022-06-28 20:44:34 +01:00
Stefan Rueger
3bd75e74c6
Move developer options into own source file and expand part description -p \*
...
-p \*/c check address bits in SPI commands
-p \*/d description of core part features
-p \*/o opcodes for SPI programming parts and memories
-p \*/s show avrdude.conf entries of parts
-p \*/ss show full avrdude.conf entry as tab separated table
-p \*/w wd_... constants for ISP parts
-p \*/\* all of the above except -p \*/s
-p \* same as -p\*/\*
2022-06-28 20:34:31 +01:00
Jörg Wunsch
6d1c83e182
Merge pull request #993 from prchal/patch-1
...
adding support for all Linux baud rates
2022-06-26 22:59:49 +02:00
Jörg Wunsch
55dddc57cc
Merge pull request #979 from MCUdude/dragon-jtag-fix
...
Dragon JTAG fix: restart firmware after programming
2022-06-26 22:53:32 +02:00
Stefan Rueger
0a7f2645c9
Merge branch 'partdesc' of github.com:stefanrueger/avrdude into partdesc
2022-06-26 15:15:37 +01:00
Stefan Rueger
317cc6d492
Add part type to -p \* .desc output
2022-06-26 15:10:19 +01:00
Stefan Rueger
40425ffac4
Merge branch 'avrdudes:main' into partdesc
2022-06-26 14:49:07 +01:00
Hans
8159c46013
Merge branch 'avrdudes:main' into hv-updi
2022-06-25 22:47:27 +02:00
MCUdude
89b0aa72e0
Attempt to fix EEPROM write issue #1009
2022-06-25 11:39:16 +02:00
Joerg Wunsch
ae0e3e2f8e
Fix a number of logic errors in the previous commits
...
RSP3_FAIL_CRC_FAILURE is 0x43 rather than 0x47.
jtag3_errcode() must only be applied to a reason code, not
to any general status code.
2022-06-22 23:33:53 +02:00
MCUdude
692c13ed98
Add missing chip erase delay for ATmega48/88/168/328PB
2022-06-19 19:40:31 +02:00
MCUdude
aa211f7580
Add missing efuse write delay for ATmega169/A/P/PA and ATmega328P
2022-06-19 19:23:34 +02:00
MCUdude
3b0a2abc20
Reduce programmer description string length
...
to less than 80 characters. #941 related
2022-06-19 10:53:07 +02:00
Joerg Wunsch
3082630430
Replace internal knowledge in jtag3.c by a public API
...
In certain situations (CRC failure, device locked), that JTAG3
read functions need to return an indication to the caller that
it is OK to proceed, and allow erasing the device anyway.
Historically, the JTAG3 code passed the respective protocol
errors directly (and unexplained) up to the caller, leaving
the decision to the caller how to handle the situation.
Replace that by a more common return value API. New code should
prefer this API instead of any hardcoded return values.
2022-06-15 23:32:22 +02:00
Marius Greuel
3148b31e01
Merge pull request #972 from earies/cmake-libdir-fix
...
Fix src/CMakeLists.txt to honor CMAKE_INSTALL_LIBDIR
2022-06-08 21:53:22 +02:00
Marius Greuel
fc9d640f0b
Merge pull request #945 from mariusgreuel/pr-micronucleus-macos-usb-issue
...
Fix micronucleus bootloader to check for unresponsive USB devices
2022-06-08 21:46:40 +02:00
prchal
bd8c17b35f
adding support for all Linux baud rates v.2
...
If optiboot can work at higher bauds, why not avrdude.
Versoin 2 of #985 .
Linux uses the old-style bitmapped version of the Bxxxx macros.
2022-06-07 11:50:03 +02:00
MCUdude
bdb4128de3
Fix JTAG transaction close issue
...
Fixes issue #366
2022-05-30 19:22:20 +02:00
Stefan Rueger
952ad72fb9
Add -p \* to summarise properties of parts in conf
2022-05-24 16:56:11 +01:00
Ebben Aries
3b0d7e5d5d
Fix src/CMakeLists.txt to honor CMAKE_INSTALL_LIBDIR
2022-05-21 14:25:27 -06:00
Marius Greuel
053c2dcdd3
CMake: Include GCC specific options also for MSYS2
2022-05-11 20:57:14 +02:00
Marius Greuel
8b61c9dd8f
CMake: Move MSVC compatibility shim into library
2022-05-11 20:56:05 +02:00
Subhaditya Nath
b9a012cebb
Fix .Dd macro in manpage
...
The correct format for .Dd according to mdoc(7) is -
.Dd month day, year
2022-05-08 20:35:32 +05:30
Joerg Wunsch
9bc28d410e
Post-7.0 changes
...
Update version date in configure.ac.
Update template in NEWS
2022-05-07 22:57:49 +02:00
Joerg Wunsch
a2e456ca8a
v7.0 release preparation
2022-05-07 22:20:31 +02:00
Joerg Wunsch
43ddea9102
Calibration memory of ATtiny43U is only 1 byte
...
Closes issue #921 .
2022-05-05 22:58:45 +02:00
Marius Greuel
01a9e42d7d
Fix typo in micronucleus message
2022-05-05 22:08:46 +02:00
Marius Greuel
c64f2030a1
Improve micronucleus bootloader user experience for unresponsive USB devices
2022-05-05 21:42:27 +02:00
Marius Greuel
3bdf138721
Fix micronucleus bootloader to check for unresponsive USB devices
2022-05-05 20:45:47 +02:00
Joerg Wunsch
a4c9fcdcd7
More fixes for PR #915
2022-05-02 22:51:22 +02:00
Jörg Wunsch
ca16fc2ce6
Merge pull request #930 from cederom/cederom-programmer-avrftdi-ktlink
...
Added KT-LINK FT2232H interface with IO switching and voltage buffers.
2022-05-01 22:29:46 +02:00
Jörg Wunsch
d7c59ca2f9
Merge pull request #931 from MCUdude/linuxspi-baud-fix
...
Fix linuxspi baud to clock period calculation
2022-05-01 22:26:23 +02:00
Joerg Wunsch
4bcd0eaa1d
Fix a number of mistakes in avrdude.conf.in
...
Stefan Rueger found a lot of mistakes in this file.
Closes #915
2022-05-01 21:55:50 +02:00
Stefan Rueger
033b2ed796
Treat x bits in .conf SPI commands as 0
2022-04-29 00:37:28 +01:00
Stefan Rueger
580c37fbfe
Describe -A in the man and .texi documentation
2022-04-29 00:14:45 +01:00
Stefan Rueger
f47ec634f8
On verify always verify full input file
2022-04-28 17:53:10 +01:00
Stefan Rueger
52734bafc6
Add option -A to separately disable trailing-0xff removal
2022-04-28 17:29:06 +01:00
Stefan Rueger
52b20f4a28
Provide self-documenting API for disabling trailing-0xff removal
2022-04-28 17:26:09 +01:00
Stefan Rueger
2397984d2b
Disable trailing-0xff removal when invoking arduino programmer
2022-04-27 18:54:13 +01:00
Joerg Wunsch
08ad5ea445
Fix broken texinfo
...
@ must be escaped as @@
2022-04-26 23:19:20 +02:00
Stefan Rueger
e18d436f88
Move evaluating 'is flash' from caller to callee avr_mem_hiaddr()
2022-04-15 20:48:46 +01:00
Stefan Rueger
ed38456f83
Piggy-back 'Do not remove trailing 0xff' onto option -D
2022-04-15 20:46:40 +01:00
MCUdude
6fceea8f71
Fix linuxspi default port
...
If no port is specified, Avrdude will try to use the default port specified in avrdude.conf. If not present, use port specified in linuxspi.c
2022-04-11 22:28:12 +02:00
MCUdude
9d025e6a70
Fix linuxspi baud to clock period calculation
...
#927 related
2022-04-10 23:36:53 +02:00
Tomasz 'CeDeROM' CEDRO
b99a145b9f
Added KT-LINK FT2232H interface with IO switching and voltage buffers.
...
Example TPI run: https://github.com/avrdudes/avrdude/issues/928
Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
2022-04-10 22:28:44 +02:00
MCUdude
1363c7fe76
Fix buffer overflow issue
...
when in terminal fill mode
2022-04-09 20:08:44 +02:00
MCUdude
08bd5fa938
Add string write to terminal example
2022-04-05 19:37:45 +02:00
MCUdude
17b67da03e
Make sure memory can be filled with a string
...
... and not just the last character
2022-04-04 09:38:02 +02:00
MCUdude
795dd91575
Code cleanup + formatting
2022-04-01 22:23:55 +02:00
MCUdude
8f100f5df3
Initial support for string write
2022-04-01 21:57:53 +02:00
MCUdude
f0f9059ade
Tweak nexttok for better string handling
...
Now a string that starts and ends with a quote (") is combined into a single (argc) argument rather than being split where spaces used to be
2022-04-01 16:52:59 +02:00