Replies: 2 comments
-
It will be great that developers who are familiar with the code base can shed lights on the functions of the core common files. Thanks. |
Beta Was this translation helpful? Give feedback.
-
I think you've pretty much presented the main organising principles of the AVRDUDE source very well. Worth mentioning the separation
The library functions historically were part of the stand-alone CLI, so they need a lot of work to get into library "shape": removing exit(n), making the functions re-entrant, thread-safe, fix memory leaks (though they will not be significant), Also worth pointing out that avrdude.conf, config_gram.y, lexer.l and config.c are a very important part, the "knowledge base" of AVRDUDE and actually almost 40% of the code (in terms of number of lines). If you want to get familiar with the code I recommend starting to read the files you mentioned. For example, follow through what happens when someone types Whilst there is an excellent documentation of the stand-alone CLI, there is only scarce documentation of the libavrdude functions (as far as I can see), and the latter are "in flow". |
Beta Was this translation helpful? Give feedback.
-
If we look at the avrdude source codes, other than the
doc
,msvc
helper files, then there are CMake/Autotools scripts, programmer/bootloader specific files, libusb/hidapi/serial/parallel transport files, avrdude.conf related files, some help files (likelist.c
) and some core common files.https://github.com/avrdudes/avrdude/tree/main/src
I think the core common files include the following. Please help to see if I miss any other important files.
avr.c
avrpart.c
developer_opts.c
fileio.c
main.c
pgm.c
pgmtype.c
term.c
update.c
Beta Was this translation helpful? Give feedback.
All reactions