diff --git a/src/config.c b/src/config.c index 7bf83095..2800ed0f 100644 --- a/src/config.c +++ b/src/config.c @@ -352,6 +352,7 @@ TOKEN *new_constant(const char *con) { !strcmp("HAS_VTARG_SWITCH", con)? HAS_VTARG_SWITCH: !strcmp("HAS_VTARG_ADJ", con)? HAS_VTARG_ADJ: !strcmp("HAS_VTARG_READ", con)? HAS_VTARG_READ: + !strcmp("HAS_FOSC_ADJ", con)? HAS_FOSC_ADJ: !strcmp("pseudo", con)? 2: !strcmp("yes", con) || !strcmp("true", con)? 1: !strcmp("no", con) || !strcmp("false", con)? 0: diff --git a/src/developer_opts.c b/src/developer_opts.c index 83070ea5..1db1d38d 100644 --- a/src/developer_opts.c +++ b/src/developer_opts.c @@ -256,6 +256,8 @@ static char *extra_features_str(int m) { strcat(mode, " | HAS_VTARG_ADJ"); if(m & HAS_VTARG_READ) strcat(mode, " | HAS_VTARG_READ"); + if(m & HAS_FOSC_ADJ) + strcat(mode, " | HAS_FOSC_ADJ"); return mode + (mode[1] == 0? 0: 4); } diff --git a/src/lexer.l b/src/lexer.l index 5a568ae6..ac0e7db2 100644 --- a/src/lexer.l +++ b/src/lexer.l @@ -145,7 +145,7 @@ SIGN [+-] (?x: PM_(SPM|TPI|ISP|PDI|UPDI|HVSP|HVPP|debugWIRE|JTAG|JTAGmkI|XMEGAJTAG|AVR32JTAG|aWire) | - HAS_(SUFFER|VTARG_SWITCH|VTARG_ADJ|VTARG_READ) | + HAS_(SUFFER|VTARG_SWITCH|VTARG_ADJ|VTARG_READ|FOSC_ADJ) | yes|no|pseudo | true|false ) { /* Constants */ yylval = new_constant(yytext); return TKN_NUMBER; diff --git a/src/libavrdude.h b/src/libavrdude.h index 01105bc0..1ef6381f 100644 --- a/src/libavrdude.h +++ b/src/libavrdude.h @@ -215,6 +215,7 @@ typedef struct opcode { #define HAS_VTARG_SWITCH 2 #define HAS_VTARG_ADJ 4 #define HAS_VTARG_READ 8 +#define HAS_FOSC_ADJ 16 #define AVR_FAMILYIDLEN 7 #define AVR_SIBLEN 16