bug #34027: avrdude AT90S1200 Problem (part 1 - bitbang

programmers)
* config_gram.y: Introduce new keyword "is_at90s1200".
* lexer.l: (Ditto.)
* avrdude.conf.in: Applew new keyword to the AT90S1200 device.
* avrpart.h: Introduce new flag AVRPART_IS_AT90S1200, reflecting
the is_at90s1200 configuration keyword.
* bitbang.c (bitbang_initialize): Replace existing test for
AT90S1200 by AVRPART_IS_AT90S1200
* avr.c (avr_write_byte_default): Avoid the pre-write reading for
the AT90S1200, as this appears to sometimes corrupt the high byte
by pre-programming the low byte just written into it.




git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1002 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
joerg_wunsch
2011-08-29 09:25:04 +00:00
parent 405765b59a
commit a4c8ac47bb
7 changed files with 38 additions and 3 deletions

View File

@@ -225,6 +225,7 @@ static int parse_cmdbits(OPCODE * op);
%token K_HAS_PDI /* MCU has PDI i/f rather than ISP (ATxmega). */
%token K_HAS_TPI /* MCU has TPI i/f rather than ISP (ATtiny4/5/9/10). */
%token K_IDR /* address of OCD register in IO space */
%token K_IS_AT90S1200 /* chip is an AT90S1200 (needs special treatment) */
%token K_IS_AVR32 /* chip is in the avr32 family */
%token K_RAMPZ /* address of RAMPZ reg. in IO space */
%token K_SPMCR /* address of SPMC[S]R in memory space */
@@ -1166,6 +1167,16 @@ part_parm :
free_token($3);
} |
K_IS_AT90S1200 TKN_EQUAL yesno
{
if ($3->primary == K_YES)
current_part->flags |= AVRPART_IS_AT90S1200;
else if ($3->primary == K_NO)
current_part->flags &= AVRPART_IS_AT90S1200;
free_token($3);
} |
K_IS_AVR32 TKN_EQUAL yesno
{
if ($3->primary == K_YES)
@@ -1175,7 +1186,7 @@ part_parm :
free_token($3);
} |
K_ALLOWFULLPAGEBITSTREAM TKN_EQUAL yesno
{
if ($3->primary == K_YES)