Comments (6)
Avrdude supports m328p, t817 and x128a1u. Would it be possible to implement support for 128da32 as well?
As in PR #1703?
from avrdude.
There are subtle but important differences between programmer, part and memory names:
- Programmer names are arbitrary product names, sometimes modified by the AVRDUDE project; it makes sense to get help for typos
- Part names are the official ones; small changes, even a letter, can make a big difference for programming, eg, the fuse bitfields between the ATmega328P and ATmega328PB are different. It is unclear to me whether DL can help the user. They really have to get the right part that's in front of them. But if it's implemented it is a bit more involved than for the programmer: the part id, their official part name, any of the full variant part names or their initial part up to a dash can be used to address a part; for example, we have
In this example one can use
m16 = ATmega16 - ATmega16: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A] - ATmega16-16AQR: TQFP44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V] - ATmega16-16AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V] - ATmega16-16AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V] - ATmega16-16MQ: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V] - ATmega16-16MU: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V] - ATmega16-16MUR: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V] - ATmega16-16PU: PDIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V] - ATmega16L-8AQ: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V] - ATmega16L-8AQR: TQFP44, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V] - ATmega16L-8AU: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V] - ATmega16L-8AUR: TQFP44, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V] - ATmega16L-8MU: MLF44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V] - ATmega16L-8MUR: VQFN44, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V] - ATmega16L-8PU: PDIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]
m16
,ATmega16
,ATmega16L
and 14 full variant names such asATmega16-16MU
that all point to the same partm16
. If a user typesATmega16-16MV
, should the user be advised to useATmega16-16MU
,ATmega16-16MQ
, and other variants? Probably best to suggest just one entryATmega16 (m16)
. If the user typest16
should they be advised of just other idsm16
,t11
,t12
,t13
,t15
? Probably better to suggest full names, too as inATmega16 (m16)
,ATtiny11 (t11)
, ... - Memory names can be abbreviated as long as they are unique for the part:
flash
,flas
,fla
andfl
will work. What should be suggested forfls
? Always the full nameflash
or the closest abbreviations? - Memory names are matched case sensitive, but programmer and part names are treated case insensitive. DL will be implemented for case insensitive matches (which is probably what you want)
I think it's OK to limit suggestions for a part if the programmer has unambiguously been specified and hence the supported programming interfaces are known.
from avrdude.
Part names are the official ones; small changes, even a letter, can make a big difference for programming, eg, the fuse bitfields between the ATmega328P and ATmega328PB are different. It is unclear to me whether DL can help the user. They really have to get the right part that's in front of them
OK, this might be more difficult to solve than I first imagined. I'd think that we should only suggest the full name (atmega328p, not m328p), and ignore subtypes (ATmega328P-AU). So if the user uses -c m328L
or ATmega328P-AY
, suggest atmega328p
as the most possible option, not m328p
.
Memory names can be abbreviated as long as they are unique for the part: flash, flas, fla and fl will work
I think we should always suggest the full memory name to prevent confusion.
Memory names are matched case sensitive, but programmer and part names are treated case insensitive. DL will be implemented for case-insensitive matches (which is probably what you want)
I think case-insensitive matches for memories would be the best. A user may write -U EEPROM:w:data.hex:i
, because EEPROM is usually written with capital letters. However, suggestions would always be that the actual memory name is in avrdude.conf is; eeprom in lover case.
Off topic:
Avrdude supports m328p
, t817
and x128a1u
. Would it be possible to implement support for 128da32
as well?
from avrdude.
Off topic:
Avrdude supports m328p, t817 and x128a1u. Would it be possible to implement support for 128da32 as well?
Good idea.
from avrdude.
Avrdude supports m328p, t817 and x128a1u. Would it be possible to implement support for 128da32 as well?
As in PR #1703?
PR #1703 looks good.
from avrdude.
@MCUdude I won't be attempting to extend Damerau-Levenshtein to parts, mainly because I think that's waaay too complex a task with too little benefit. The asymmetry between parts and programmers as outlined above is just too big...
from avrdude.
Related Issues (20)
- Parallel port silently not working HOT 9
- No way to set fuses for ATTiny 1626 / UPDI ? HOT 1
- Bootrow r/w does not work for `-c serialupdi` HOT 7
- Terminal erase command HOT 8
- JTAGICE3 EDBG communication mode relies on hardcoded USBVID HOT 7
- Unable to flash using Avrdude on a 14'' M1 Macbook Pro HOT 2
- JTAG2UPDI: avrdude error: cannot find programmer id jtag2updi HOT 3
- Auto-build avrdude.pdf from texinfo sources HOT 4
- Correct part is not necessarily listed first when establishing connection HOT 7
- avr_opcodes.c: conflicting types for โop16_is_mnemoโ due to enum/integer mismatch HOT 1
- avrdude documentation typo(s) attemps HOT 1
- Unable to write LOCK bit byte to JTAG3_TPI HOT 3
- Does avrdude *have to* run as root in Linux for `-c xplainedmini_updi` (jtag3)? HOT 3
- Unexpected auto-erase consequences HOT 7
- `-E reset` and `-E noreset` support for the USBasp programmer
- Writing BOOTROW for Curiosity Nano HOT 3
- No programmers available
- winbond 25q64fv HOT 2
- AVR32 support HOT 5
- [MacOS] Avrdude built using autotools doesn't work HOT 22
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from avrdude.