main,board,ftdiJtagBitbang: use pin ID instead of shift
This commit is contained in:
parent
074e616a3f
commit
61e959f93d
|
|
@ -85,7 +85,7 @@ openFPGALoader -- a program to flash FPGA
|
|||
--list-fpga list all supported FPGA
|
||||
-m, --write-sram write bitstream in SRAM (default: true)
|
||||
-o, --offset arg start offset in EEPROM
|
||||
--pins arg pin config (only for ft232R) TDI:TDO:TCK:TMS
|
||||
--pins arg pin config TDI:TDO:TCK:TMS
|
||||
--probe-firmware arg firmware for JTAG probe (usbBlasterII)
|
||||
--protect-flash arg protect SPI flash area
|
||||
--quiet Produce quiet output (no progress bar)
|
||||
|
|
|
|||
|
|
@ -12,14 +12,14 @@
|
|||
|
||||
/* AN_232R-01_Bit_Bang_Mode_Available_For_FT232R_and_Ft245R */
|
||||
enum {
|
||||
FT232RL_TXD = (1 << 0),
|
||||
FT232RL_RXD = (1 << 1),
|
||||
FT232RL_RTS = (1 << 2),
|
||||
FT232RL_CTS = (1 << 3),
|
||||
FT232RL_DTR = (1 << 4),
|
||||
FT232RL_DSR = (1 << 5),
|
||||
FT232RL_DCD = (1 << 6),
|
||||
FT232RL_RI = (1 << 7)
|
||||
FT232RL_TXD = 0,
|
||||
FT232RL_RXD = 1,
|
||||
FT232RL_RTS = 2,
|
||||
FT232RL_CTS = 3,
|
||||
FT232RL_DTR = 4,
|
||||
FT232RL_DSR = 5,
|
||||
FT232RL_DCD = 6,
|
||||
FT232RL_RI = 7
|
||||
};
|
||||
|
||||
/* AN_108_Command_Processor_for_MPSSE_and_MCU_Host_Bus_Emulation_Modes */
|
||||
|
|
|
|||
|
|
@ -38,20 +38,22 @@ FtdiJtagBitBang::FtdiJtagBitBang(const FTDIpp_MPSSE::mpsse_bit_config &cable,
|
|||
{
|
||||
unsigned char *ptr;
|
||||
|
||||
_tck_pin = 1 << pin_conf->tck_pin;
|
||||
_tms_pin = 1 << pin_conf->tms_pin;
|
||||
_tdi_pin = 1 << pin_conf->tdi_pin;
|
||||
_tdo_pin = 1 << pin_conf->tdo_pin;
|
||||
|
||||
/* Validate pins */
|
||||
uint8_t pins[] = {_tck_pin, _tms_pin, _tdi_pin, _tdo_pin};
|
||||
uint8_t pins[] = {pin_conf->tck_pin, pin_conf->tms_pin,
|
||||
pin_conf->tdi_pin, pin_conf->tdo_pin};
|
||||
for (int i = 0; i < sizeof(pins) / sizeof(pins[0]); i++) {
|
||||
if (pins[i] > FT232RL_RI || pins[i] < FT232RL_TXD) {
|
||||
printf("%d\n", pins[i]);
|
||||
printError("Invalid pin ID");
|
||||
throw std::exception();
|
||||
}
|
||||
}
|
||||
|
||||
_tck_pin = 1 << pin_conf->tck_pin;
|
||||
_tms_pin = 1 << pin_conf->tms_pin;
|
||||
_tdi_pin = 1 << pin_conf->tdi_pin;
|
||||
_tdo_pin = 1 << pin_conf->tdo_pin;
|
||||
|
||||
/* store FTDI TX Fifo size */
|
||||
if (_pid == 0x6001) // FT232R
|
||||
_rx_size = 256;
|
||||
|
|
|
|||
24
src/main.cpp
24
src/main.cpp
|
|
@ -624,14 +624,6 @@ static int parse_eng(string arg, double *dst) {
|
|||
}
|
||||
}
|
||||
|
||||
static int get_bit_index(int mask)
|
||||
{
|
||||
for (int i = 0; i < 32; i++)
|
||||
if (mask & (1 << i))
|
||||
return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* arguments parser */
|
||||
int parse_opt(int argc, char **argv, struct arguments *args, jtag_pins_conf_t *pins_config)
|
||||
{
|
||||
|
|
@ -807,14 +799,14 @@ int parse_opt(int argc, char **argv, struct arguments *args, jtag_pins_conf_t *p
|
|||
}
|
||||
|
||||
static std::map <std::string, int> pins_list = {
|
||||
{"TXD", get_bit_index(FT232RL_TXD)},
|
||||
{"RXD", get_bit_index(FT232RL_RXD)},
|
||||
{"RTS", get_bit_index(FT232RL_RTS)},
|
||||
{"CTS", get_bit_index(FT232RL_CTS)},
|
||||
{"DTR", get_bit_index(FT232RL_DTR)},
|
||||
{"DSR", get_bit_index(FT232RL_DSR)},
|
||||
{"DCD", get_bit_index(FT232RL_DCD)},
|
||||
{"RI" , get_bit_index(FT232RL_RI) }};
|
||||
{"TXD", FT232RL_TXD},
|
||||
{"RXD", FT232RL_RXD},
|
||||
{"RTS", FT232RL_RTS},
|
||||
{"CTS", FT232RL_CTS},
|
||||
{"DTR", FT232RL_DTR},
|
||||
{"DSR", FT232RL_DSR},
|
||||
{"DCD", FT232RL_DCD},
|
||||
{"RI" , FT232RL_RI}};
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
int pin_num;
|
||||
|
|
|
|||
Loading…
Reference in New Issue