|
|
|
|
@ -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: |
|
|
|
|
|