mirror of
git://projects.qi-hardware.com/ben-blinkenlights.git
synced 2024-12-27 12:22:24 +02:00
uart/avrdude: various corrections
nanonote-uart.patch: - avrdude.conf.in: CLK is reserved for clock output nanonote.patch: - nanonote.c (pin_map, nanonote_setpin, nanonote_getpin): make pin map zero-based - nanonote.c (nanonote_setpin): instead of having out own delay loop setting the pin repeatedly, just add the delay we need to pgm->ispdelay+100 - nanonote.c (nanonote_setpin): increase delay for atusb-pgm - nanonote.c (nanonote_getpin, nanonote_open): begin with all pins set to output and switch MISO only when read
This commit is contained in:
parent
1557630a8b
commit
9778f3fb1b
@ -1,7 +1,7 @@
|
||||
Index: avrdude/avrdude-5.10/avrdude.conf.in
|
||||
===================================================================
|
||||
--- avrdude.orig/avrdude-5.10/avrdude.conf.in 2011-02-03 21:08:13.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/avrdude.conf.in 2011-02-03 21:16:34.000000000 -0300
|
||||
--- avrdude.orig/avrdude-5.10/avrdude.conf.in 2011-02-04 17:26:06.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/avrdude.conf.in 2011-02-04 17:26:07.000000000 -0300
|
||||
@@ -592,6 +592,29 @@
|
||||
type = avr910;
|
||||
;
|
||||
@ -12,7 +12,7 @@ Index: avrdude/avrdude-5.10/avrdude.conf.in
|
||||
+# DAT1 1
|
||||
+# DAT0 2
|
||||
+# VSS -
|
||||
+# CLK 4
|
||||
+# CLK - (reserved for clock output)
|
||||
+# VDD -
|
||||
+# CMD 5
|
||||
+# DAT3 7
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: avrdude/avrdude-5.10/Makefile.am
|
||||
===================================================================
|
||||
--- avrdude.orig/avrdude-5.10/Makefile.am 2011-02-01 20:25:15.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/Makefile.am 2011-02-01 20:25:54.000000000 -0300
|
||||
--- avrdude.orig/avrdude-5.10/Makefile.am 2011-02-04 17:40:39.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/Makefile.am 2011-02-04 17:40:48.000000000 -0300
|
||||
@@ -111,6 +111,8 @@
|
||||
lists.c \
|
||||
lists.h \
|
||||
@ -13,8 +13,8 @@ Index: avrdude/avrdude-5.10/Makefile.am
|
||||
pgm.c \
|
||||
Index: avrdude/avrdude-5.10/config_gram.y
|
||||
===================================================================
|
||||
--- avrdude.orig/avrdude-5.10/config_gram.y 2011-02-01 18:50:48.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/config_gram.y 2011-02-01 20:27:31.000000000 -0300
|
||||
--- avrdude.orig/avrdude-5.10/config_gram.y 2011-02-04 17:40:39.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/config_gram.y 2011-02-04 17:40:48.000000000 -0300
|
||||
@@ -48,6 +48,7 @@
|
||||
#include "avr.h"
|
||||
#include "jtagmkI.h"
|
||||
@ -46,8 +46,8 @@ Index: avrdude/avrdude-5.10/config_gram.y
|
||||
current_prog->desc[PGM_DESCLEN-1] = 0;
|
||||
Index: avrdude/avrdude-5.10/lexer.l
|
||||
===================================================================
|
||||
--- avrdude.orig/avrdude-5.10/lexer.l 2011-02-01 18:53:11.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/lexer.l 2011-02-01 18:53:40.000000000 -0300
|
||||
--- avrdude.orig/avrdude-5.10/lexer.l 2011-02-04 17:40:39.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/lexer.l 2011-02-04 17:40:48.000000000 -0300
|
||||
@@ -164,6 +164,7 @@
|
||||
min_write_delay { yylval=NULL; return K_MIN_WRITE_DELAY; }
|
||||
miso { yylval=NULL; return K_MISO; }
|
||||
@ -59,8 +59,8 @@ Index: avrdude/avrdude-5.10/lexer.l
|
||||
Index: avrdude/avrdude-5.10/nanonote.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ avrdude/avrdude-5.10/nanonote.c 2011-02-01 21:33:19.000000000 -0300
|
||||
@@ -0,0 +1,302 @@
|
||||
+++ avrdude/avrdude-5.10/nanonote.c 2011-02-04 17:48:11.000000000 -0300
|
||||
@@ -0,0 +1,295 @@
|
||||
+/*
|
||||
+ * avrdude - A Downloader/Uploader for AVR device programmers
|
||||
+ * Copyright (C) 2000, 2001, 2002, 2003 Brian S. Dean <bsd@bsdhome.com>
|
||||
@ -128,6 +128,7 @@ Index: avrdude/avrdude-5.10/nanonote.c
|
||||
+ unsigned port;
|
||||
+ unsigned bit;
|
||||
+} pin_map[] = {
|
||||
+ { 0, 0}, /* 0: not assigned */
|
||||
+ { 3, 11 }, /* 1: PD11, DAT1 */
|
||||
+ { 3, 10 }, /* 2: PD12, DAT0 */
|
||||
+ { 0, 0 }, /* 3: VSS */
|
||||
@ -197,31 +198,22 @@ Index: avrdude/avrdude-5.10/nanonote.c
|
||||
+ pin &= PIN_MASK;
|
||||
+ }
|
||||
+
|
||||
+ if (pin < 1 || pin > sizeof(pin_map)/sizeof(*pin_map))
|
||||
+ if (pin < 1 || pin >= sizeof(pin_map)/sizeof(*pin_map))
|
||||
+ return -1;
|
||||
+ if (!pin_map[pin-1].port)
|
||||
+ if (!pin_map[pin].port)
|
||||
+ return -1;
|
||||
+
|
||||
+#if 0
|
||||
+fprintf(stderr, "pin %d (%u, %u) = %d\n",
|
||||
+pin, pin_map[pin-1].port, pin_map[pin-1].bit, value);
|
||||
+pin, pin_map[pin].port, pin_map[pin].bit, value);
|
||||
+#endif
|
||||
+ gpio_set(pin_map[pin-1].port, pin_map[pin-1].bit, value);
|
||||
+ gpio_set(pin_map[pin].port, pin_map[pin].bit, value);
|
||||
+
|
||||
+ {
|
||||
+ int i;
|
||||
+
|
||||
+ /*
|
||||
+ * @@@ investigate later
|
||||
+ * We get unstable results with values <= 15 but stable results
|
||||
+ * with 16.
|
||||
+ */
|
||||
+ for (i = 0; i != 100; i++)
|
||||
+ gpio_get(pin_map[pin-1].port, pin_map[pin-1].bit);
|
||||
+ }
|
||||
+
|
||||
+ if (pgm->ispdelay > 1)
|
||||
+ bitbang_delay(pgm->ispdelay);
|
||||
+ /*
|
||||
+ * We get unstable results with values <= 16 but stable results
|
||||
+ * with 17 and above.
|
||||
+ */
|
||||
+ bitbang_delay(pgm->ispdelay+100);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
@ -237,15 +229,16 @@ Index: avrdude/avrdude-5.10/nanonote.c
|
||||
+ pin &= PIN_MASK;
|
||||
+ }
|
||||
+
|
||||
+ if (pin < 1 || pin > sizeof(pin_map)/sizeof(*pin_map))
|
||||
+ if (pin < 1 || pin >= sizeof(pin_map)/sizeof(*pin_map))
|
||||
+ return -1;
|
||||
+ if (!pin_map[pin].port)
|
||||
+ return -1;
|
||||
+
|
||||
+ v = gpio_get(pin_map[pin-1].port, pin_map[pin-1].bit);
|
||||
+ gpio_input(pin_map[pin].port, pin_map[pin].bit); /* @@@ hack */
|
||||
+ v = gpio_get(pin_map[pin].port, pin_map[pin].bit);
|
||||
+#if 0
|
||||
+fprintf(stderr, "pin %d (%u, %u): %d\n",
|
||||
+pin, pin_map[pin-1].port, pin_map[pin-1].bit, v);
|
||||
+pin, pin_map[pin].port, pin_map[pin].bit, v);
|
||||
+#endif
|
||||
+ return pin & PIN_INVERSE ? !v : v;
|
||||
+}
|
||||
@ -323,7 +316,7 @@ Index: avrdude/avrdude-5.10/nanonote.c
|
||||
+ gpio_output(CMD);
|
||||
+ gpio_output(DAT3);
|
||||
+ gpio_output(DAT2);
|
||||
+ gpio_input(DAT1); /* @@@ hack */
|
||||
+ gpio_output(DAT1);
|
||||
+
|
||||
+ nanonote_disable(pgm);
|
||||
+
|
||||
@ -366,7 +359,7 @@ Index: avrdude/avrdude-5.10/nanonote.c
|
||||
Index: avrdude/avrdude-5.10/nanonote.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ avrdude/avrdude-5.10/nanonote.h 2011-02-01 20:27:11.000000000 -0300
|
||||
+++ avrdude/avrdude-5.10/nanonote.h 2011-02-04 17:40:48.000000000 -0300
|
||||
@@ -0,0 +1,6 @@
|
||||
+#ifndef nanonote_h
|
||||
+#define nanonote_h
|
||||
|
Loading…
Reference in New Issue
Block a user