Establish a third option to print out part definitions
Introduced -p <part>/A, which prints what -p <part>/S used to print, ie, all components of the part structures including the default ones. Now -p <part>/S prints the expanded part structure without use of parent and without printing default values. This functionality is new and predominantly needed for checking specific avrdude.conf entries, eg, avrdude -p*/St | grep pollindex The option -p <part>/s continues to print a short entry of `avrdude.conf` using its parent if so defined: $ avrdude -p m328p/s part parent "m328" desc = "ATmega328P"; id = "m328p"; signature = 0x1e 0x95 0x0f; ;
This commit is contained in:
parent
5f5002eeaa
commit
81136688f6
|
@ -601,7 +601,7 @@ static void dev_part_strct(AVRPART *p, bool tsv, AVRPART *base) {
|
||||||
|
|
||||||
// -p */[cdosw*]
|
// -p */[cdosw*]
|
||||||
void dev_output_part_defs(char *partdesc) {
|
void dev_output_part_defs(char *partdesc) {
|
||||||
bool cmdok, waits, opspi, descs, strct, cmpst, raw, all, tsv;
|
bool cmdok, waits, opspi, descs, astrc, strct, cmpst, raw, all, tsv;
|
||||||
char *flags;
|
char *flags;
|
||||||
int nprinted;
|
int nprinted;
|
||||||
AVRPART *nullpart = avr_new_part();
|
AVRPART *nullpart = avr_new_part();
|
||||||
|
@ -612,7 +612,7 @@ void dev_output_part_defs(char *partdesc) {
|
||||||
if(!flags && !strcmp(partdesc, "*")) // treat -p * as if it was -p */*
|
if(!flags && !strcmp(partdesc, "*")) // treat -p * as if it was -p */*
|
||||||
flags = "*";
|
flags = "*";
|
||||||
|
|
||||||
if(!*flags || !strchr("cdosSrw*t", *flags)) {
|
if(!*flags || !strchr("cdoASsrw*t", *flags)) {
|
||||||
dev_info("%s: flags for developer option -p <wildcard>/<flags> not recognised\n", progname);
|
dev_info("%s: flags for developer option -p <wildcard>/<flags> not recognised\n", progname);
|
||||||
dev_info(
|
dev_info(
|
||||||
"Wildcard examples (these need protecting in the shell through quoting):\n"
|
"Wildcard examples (these need protecting in the shell through quoting):\n"
|
||||||
|
@ -621,14 +621,15 @@ void dev_output_part_defs(char *partdesc) {
|
||||||
" *32[0-9] matches ATmega329, ATmega325 and ATmega328\n"
|
" *32[0-9] matches ATmega329, ATmega325 and ATmega328\n"
|
||||||
" *32? matches ATmega329, ATmega32A, ATmega325 and ATmega328\n"
|
" *32? matches ATmega329, ATmega32A, ATmega325 and ATmega328\n"
|
||||||
"Flags (one or more of the characters below):\n"
|
"Flags (one or more of the characters below):\n"
|
||||||
" c check and report errors in address bits of SPI commands\n"
|
|
||||||
" d description of core part features\n"
|
" d description of core part features\n"
|
||||||
" o opcodes for SPI programming parts and memories\n"
|
" A show entries of avrdude.conf parts with all values\n"
|
||||||
" S show entries of avrdude.conf parts with all values\n"
|
" S show entries of avrdude.conf parts with necessary values\n"
|
||||||
" s show entries of avrdude.conf parts with necessary values\n"
|
" s show short entries of avrdude.conf parts using parent\n"
|
||||||
" r show entries of avrdude.conf parts as raw dump\n"
|
" r show entries of avrdude.conf parts as raw dump\n"
|
||||||
|
" c check and report errors in address bits of SPI commands\n"
|
||||||
|
" o opcodes for SPI programming parts and memories\n"
|
||||||
" w wd_... constants for ISP parts\n"
|
" w wd_... constants for ISP parts\n"
|
||||||
" * all of the above except s\n"
|
" * all of the above except s and S\n"
|
||||||
" t use tab separated values as much as possible\n"
|
" t use tab separated values as much as possible\n"
|
||||||
"Examples:\n"
|
"Examples:\n"
|
||||||
" $ avrdude -p ATmega328P/s\n"
|
" $ avrdude -p ATmega328P/s\n"
|
||||||
|
@ -638,7 +639,7 @@ void dev_output_part_defs(char *partdesc) {
|
||||||
" -p * is the same as -p */*\n"
|
" -p * is the same as -p */*\n"
|
||||||
" This help message is printed using any unrecognised flag, eg, -p/h\n"
|
" This help message is printed using any unrecognised flag, eg, -p/h\n"
|
||||||
" Leaving no space after -p can be an OK substitute for quoting in shells\n"
|
" Leaving no space after -p can be an OK substitute for quoting in shells\n"
|
||||||
" /s and /S outputs are designed to be used as input in avrdude.conf\n"
|
" /s, /S and /A outputs are designed to be used as input in avrdude.conf\n"
|
||||||
" Sorted /r output should stay invariant when rearranging avrdude.conf\n"
|
" Sorted /r output should stay invariant when rearranging avrdude.conf\n"
|
||||||
" The /c, /o and /w flags are less generic and may be removed sometime\n"
|
" The /c, /o and /w flags are less generic and may be removed sometime\n"
|
||||||
" These options are just to help development, so not further documented\n"
|
" These options are just to help development, so not further documented\n"
|
||||||
|
@ -654,8 +655,9 @@ void dev_output_part_defs(char *partdesc) {
|
||||||
descs = all || !!strchr(flags, 'd');
|
descs = all || !!strchr(flags, 'd');
|
||||||
opspi = all || !!strchr(flags, 'o');
|
opspi = all || !!strchr(flags, 'o');
|
||||||
waits = all || !!strchr(flags, 'w');
|
waits = all || !!strchr(flags, 'w');
|
||||||
strct = all || !!strchr(flags, 'S');
|
astrc = all || !!strchr(flags, 'A');
|
||||||
raw = all || !!strchr(flags, 'r');
|
raw = all || !!strchr(flags, 'r');
|
||||||
|
strct = !!strchr(flags, 'S');
|
||||||
cmpst = !!strchr(flags, 's');
|
cmpst = !!strchr(flags, 's');
|
||||||
tsv = !!strchr(flags, 't');
|
tsv = !!strchr(flags, 't');
|
||||||
|
|
||||||
|
@ -687,8 +689,11 @@ void dev_output_part_defs(char *partdesc) {
|
||||||
if(!part_match(partdesc, p->desc) && !part_match(partdesc, p->id))
|
if(!part_match(partdesc, p->desc) && !part_match(partdesc, p->id))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(strct || cmpst)
|
if(astrc || strct || cmpst)
|
||||||
dev_part_strct(p, tsv, !cmpst? NULL: p->parent_id? locate_part(part_list, p->parent_id): nullpart);
|
dev_part_strct(p, tsv,
|
||||||
|
astrc? NULL:
|
||||||
|
strct? nullpart:
|
||||||
|
p->parent_id? locate_part(part_list, p->parent_id): nullpart);
|
||||||
|
|
||||||
if(raw)
|
if(raw)
|
||||||
dev_part_raw(p);
|
dev_part_raw(p);
|
||||||
|
|
Loading…
Reference in New Issue