Remapped SWD pins to FTDI cable signals

master
powertomato 12 years ago committed by Stefan Krulj
parent 5b68fe4b96
commit 9578abf6d9
  1. 23
      src/DAP_config.h
  2. 3
      src/Debug.h
  3. 12
      src/socket_ipc.c

@ -139,19 +139,19 @@ of the same I/O port. The following SWDIO I/O Pin functions are provided:
// Configure DAP I/O pins ------------------------------
#define TMS_SWDIO RI
#define TMS_SWDIO RTS
#define TCK_SWCLK TXD
#define TDO_SWO RXD
#define TDI DCD
#define nRESET DTR
#define nTRST RTS
#define nTRST RI
#define LED_CONN CTS
#define LED_RUN DSR
static __inline const char* pin_to_str(uint8_t pin){
switch(pin){
case TMS_SWDIO:
return "TMS_SWDIO(RI)";
return "TMS_SWDIO(RTS)";
case TCK_SWCLK:
return "TCK_SWCLK(TXD)";
case TDO_SWO:
@ -161,7 +161,7 @@ static __inline const char* pin_to_str(uint8_t pin){
case nRESET:
return "nRESET(DTR)";
case nTRST:
return "nTRST(RTS)";
return "nTRST(RI)";
case LED_CONN:
return "LED_CONN(CTS)";
case LED_RUN:
@ -203,18 +203,17 @@ static __forceinline void FTDI_WRITE_OUT( ) {
}
FTDI_WRITE_OUT_READ_MODE( );
/* every generates the same amout of reads */
/* every write generates the same amout of reads */
success = 0;
while(success == 0) {
while(out_state_buff_pos!=0) {
success = ftdi_read_data(&__ftdic,in_buff,out_state_buff_pos);
if( success < 0 ) {
DEBUG("Could not read pins: %s\n",ftdi_get_error_string(&__ftdic));
exit(1);
}
out_state_buff_pos -= success;
}
if( success != out_state_buff_pos ){
DEBUG("Could not read pins: %s\n",ftdi_get_error_string(&__ftdic));
exit(1);
}
out_state_buff_pos = 0;
}

@ -10,7 +10,8 @@
#ifndef SRC_DEBUG_H_
#define SRC_DEBUG_H_
#ifdef DEBUG_TARGET
#define DEBUG_OUT
#ifdef DEBUG_OUT
# define DEBUG(format, ...) fprintf (stderr, format, ##__VA_ARGS__)
#else
# define DEBUG(format, ...)

@ -67,10 +67,14 @@ void wait_for_client(void) {
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);
if (bind(sockfd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0){
DEBUG("ERROR on binding");
exit(1);
int yes = 1;
if ( setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) < 0){
DEBUG("ERROR on binding");
exit(1);
}
if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
DEBUG("ERROR on binding");
exit(1);
}
listen(sockfd,5);

Loading…
Cancel
Save