diff options
| author | Bdale Garbee <bdale@gag.com> | 2010-05-06 13:58:31 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2010-05-06 13:58:31 -0600 | 
| commit | cde60f16f6ab2cdd5010a0e106ae312d144947cf (patch) | |
| tree | 2e294d10bb6550377346f6f19c2ff553b2dc2899 /src/ao_dbg.c | |
| parent | 8be04df7e1e0a369ffb1137c6e2ec63585e3c935 (diff) | |
Revert "Merge remote branch 'remotes/origin/fix-reset'"
This reverts commit 314d27a73c903fef2968dabac3d5313573713460, reversing
changes made to fa77db2ffd8a749c93767db5a6311131e00473ae.
For whatever reason, this is utterly not doing the right things today!
Diffstat (limited to 'src/ao_dbg.c')
| -rw-r--r-- | src/ao_dbg.c | 54 | 
1 files changed, 39 insertions, 15 deletions
| diff --git a/src/ao_dbg.c b/src/ao_dbg.c index 2988aed4..e7fbd7ad 100644 --- a/src/ao_dbg.c +++ b/src/ao_dbg.c @@ -175,30 +175,54 @@ ao_dbg_set_pins(void)  	DBG_PORT_DIR &= ~DBG_DATA;  } -#define ao_reset_delay()	ao_delay(AO_MS_TO_TICKS(20)) +static void +ao_dbg_long_delay(void) +{ +	uint8_t	n; + +	for (n = 0; n < 20; n++) +		_asm nop _endasm; +} + +#define AO_RESET_LOW_DELAY	AO_MS_TO_TICKS(100) +#define AO_RESET_HIGH_DELAY	AO_MS_TO_TICKS(100)  void  ao_dbg_debug_mode(void)  { -	ao_dbg_set_pins();	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N);	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0      );  	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N,     0    |DBG_DATA|    0      );  	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0      );	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N,     0    |DBG_DATA|    0      );	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0      );	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N);	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N,     0    |DBG_DATA|DBG_RESET_N);	ao_reset_delay(); +	ao_dbg_set_pins(); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N,     0    |DBG_DATA|    0    ); +	ao_delay(AO_RESET_LOW_DELAY); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0    ); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N,     0    |DBG_DATA|    0    ); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0    ); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N,     0    |DBG_DATA|DBG_RESET_N); +	ao_delay(AO_RESET_HIGH_DELAY);  }  void  ao_dbg_reset(void)  { -	ao_dbg_set_pins();									ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N);	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0      );	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N);	ao_reset_delay(); -	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N,     0    |DBG_DATA|DBG_RESET_N);	ao_reset_delay(); +	ao_dbg_set_pins(); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0    ); +	ao_delay(AO_RESET_LOW_DELAY); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0    ); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0    ); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|    0    ); +	ao_dbg_long_delay(); +	ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N); +	ao_delay(AO_RESET_HIGH_DELAY);  }  static void | 
