diff --git a/src/DAP_config.h b/src/DAP_config.h index 89e856f..a917aa0 100644 --- a/src/DAP_config.h +++ b/src/DAP_config.h @@ -174,7 +174,7 @@ static __inline const char* pin_to_str(uint8_t pin){ static __inline void FTDI_BITBANG_SETUP() { int success; /* Enable bitbang mode */ - success = ftdi_set_bitmode(&__ftdic, dir_state, BITMODE_SYNCBB ); + success = ftdi_set_bitmode(&__ftdic, dir_state, BITMODE_BITBANG ); if( success<0 ){ DEBUGF("Could not change to async. bitbang: %s\n",ftdi_get_error_string(&__ftdic)); } @@ -203,17 +203,7 @@ static __forceinline void FTDI_WRITE_OUT( ) { } FTDI_WRITE_OUT_READ_MODE( ); - /* every write generates the same amout of reads */ - - success = 0; - while(out_state_buff_pos!=0) { - success = ftdi_read_data(&__ftdic,in_buff,out_state_buff_pos); - if( success < 0 ) { - DEBUGF("Could not read pins: %s\n",ftdi_get_error_string(&__ftdic)); - exit(1); - } - out_state_buff_pos -= success; - } + out_state_buff_pos = 0; } @@ -236,7 +226,7 @@ static __inline void FTDI_BEGIN_READ(){ if( success<0 ){ DEBUGF("Could not change to sync. bitbang: %s\n",ftdi_get_error_string(&__ftdic)); } - success = ftdi_usb_purge_rx_buffer(&__ftdic); + success = ftdi_usb_purge_buffers(&__ftdic); if( success<0 ){ DEBUGF("Could not flush buffer: %s\n",ftdi_get_error_string(&__ftdic)); } @@ -274,7 +264,7 @@ static __inline void FTDI_END_READ(){ } pin_read_pos = is_in_read_mode = 0; - success = ftdi_set_bitmode(&__ftdic, dir_state, BITMODE_SYNCBB ); + success = ftdi_set_bitmode(&__ftdic, dir_state, BITMODE_BITBANG ); if( success<0 ){ DEBUGF("Could not change to async. bitbang: %s\n",ftdi_get_error_string(&__ftdic)); } @@ -372,8 +362,6 @@ static __inline void PORT_SWD_SETUP (void) { static __forceinline uint32_t PIN_IN ( uint8_t pin ) { uint8_t c; if( dir_state & pin ){ - //dir_state &= ~pin; - //ftdi_set_bitmode(&__ftdic, dir_state, BITMODE_SYNCBB ); DEBUGF("Pin %s is not an input pin!\n", pin_to_str(pin)); } int success = ftdi_read_pins(&__ftdic,&c); @@ -385,8 +373,6 @@ static __forceinline uint32_t PIN_IN ( uint8_t pin ) { static __forceinline void PIN_SET ( uint8_t pin, uint32_t bit ) { if( !(dir_state & pin) ){ - //dir_state |= pin; - //ftdi_set_bitmode(&__ftdic, dir_state, BITMODE_SYNCBB ); DEBUGF("Pin %s is not an output pin!\n", pin_to_str(pin)); return; } @@ -400,33 +386,6 @@ static __forceinline void PIN_SET ( uint8_t pin, uint32_t bit ) { } } -/* -static __forceinline void PIN_SET ( uint8_t pin, uint32_t bit ) { - - int success; - uint8_t is_set = out_state & pin; - if(bit){ - out_state |= pin; - success = ftdi_write_data(&__ftdic,&out_state,1); - if( success<0 ){ - DEBUG("Could not write pin TCK_SWCLK: %s\n",ftdi_get_error_string(&__ftdic)); - if(!is_set){ - out_state &= ~pin; - } - } - }else{ - out_state &= ~pin; - success = ftdi_write_data(&__ftdic,&out_state,1); - if( success<0 ){ - DEBUG("Could not write pin TCK_SWCLK: %s\n",ftdi_get_error_string(&__ftdic)); - if(is_set){ - out_state |= pin; - } - } - } -} -*/ - extern void late_close_socket(); /** Disable JTAG/SWD I/O Pins. Disables the DAP Hardware I/O pins which configures: