jtag: merge init_internal to CTOR, pass verbose to jtag drivers
This commit is contained in:
parent
4bf4b94bbb
commit
75d98d12e9
46
src/jtag.cpp
46
src/jtag.cpp
|
|
@ -81,21 +81,6 @@ Jtag::Jtag(const cable_t &cable, const jtag_pins_conf_t *pin_conf,
|
||||||
_state(RUN_TEST_IDLE),
|
_state(RUN_TEST_IDLE),
|
||||||
_tms_buffer_size(128), _num_tms(0),
|
_tms_buffer_size(128), _num_tms(0),
|
||||||
_board_name("nope"), device_index(0)
|
_board_name("nope"), device_index(0)
|
||||||
{
|
|
||||||
init_internal(cable, dev, serial, pin_conf, clkHZ, firmware_path,
|
|
||||||
invert_read_edge, ip_adr, port);
|
|
||||||
detectChain(5);
|
|
||||||
}
|
|
||||||
|
|
||||||
Jtag::~Jtag()
|
|
||||||
{
|
|
||||||
free(_tms_buffer);
|
|
||||||
delete _jtag;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Jtag::init_internal(const cable_t &cable, const string &dev, const string &serial,
|
|
||||||
const jtag_pins_conf_t *pin_conf, uint32_t clkHZ, const string &firmware_path,
|
|
||||||
const bool invert_read_edge, const string &ip_adr, int port)
|
|
||||||
{
|
{
|
||||||
switch (cable.type) {
|
switch (cable.type) {
|
||||||
case MODE_ANLOGICCABLE:
|
case MODE_ANLOGICCABLE:
|
||||||
|
|
@ -104,30 +89,30 @@ void Jtag::init_internal(const cable_t &cable, const string &dev, const string &
|
||||||
case MODE_FTDI_BITBANG:
|
case MODE_FTDI_BITBANG:
|
||||||
if (pin_conf == NULL)
|
if (pin_conf == NULL)
|
||||||
throw std::exception();
|
throw std::exception();
|
||||||
_jtag = new FtdiJtagBitBang(cable, pin_conf, dev, serial, clkHZ, _verbose);
|
_jtag = new FtdiJtagBitBang(cable, pin_conf, dev, serial, clkHZ, verbose);
|
||||||
break;
|
break;
|
||||||
case MODE_FTDI_SERIAL:
|
case MODE_FTDI_SERIAL:
|
||||||
_jtag = new FtdiJtagMPSSE(cable, dev, serial, clkHZ,
|
_jtag = new FtdiJtagMPSSE(cable, dev, serial, clkHZ,
|
||||||
invert_read_edge, _verbose);
|
invert_read_edge, verbose);
|
||||||
break;
|
break;
|
||||||
case MODE_CH552_JTAG:
|
case MODE_CH552_JTAG:
|
||||||
_jtag = new CH552_jtag(cable, dev, serial, clkHZ, _verbose);
|
_jtag = new CH552_jtag(cable, dev, serial, clkHZ, verbose);
|
||||||
break;
|
break;
|
||||||
case MODE_CH347:
|
case MODE_CH347:
|
||||||
_jtag = new CH347Jtag(clkHZ, _verbose);
|
_jtag = new CH347Jtag(clkHZ, verbose);
|
||||||
break;
|
break;
|
||||||
case MODE_DIRTYJTAG:
|
case MODE_DIRTYJTAG:
|
||||||
_jtag = new DirtyJtag(clkHZ, _verbose);
|
_jtag = new DirtyJtag(clkHZ, verbose);
|
||||||
break;
|
break;
|
||||||
case MODE_JLINK:
|
case MODE_JLINK:
|
||||||
_jtag = new Jlink(clkHZ, _verbose, cable.vid, cable.pid);
|
_jtag = new Jlink(clkHZ, verbose, cable.vid, cable.pid);
|
||||||
break;
|
break;
|
||||||
case MODE_USBBLASTER:
|
case MODE_USBBLASTER:
|
||||||
_jtag = new UsbBlaster(cable, firmware_path, _verbose);
|
_jtag = new UsbBlaster(cable, firmware_path, verbose);
|
||||||
break;
|
break;
|
||||||
case MODE_CMSISDAP:
|
case MODE_CMSISDAP:
|
||||||
#ifdef ENABLE_CMSISDAP
|
#ifdef ENABLE_CMSISDAP
|
||||||
_jtag = new CmsisDAP(cable, cable.config.index, _verbose);
|
_jtag = new CmsisDAP(cable, cable.config.index, verbose);
|
||||||
break;
|
break;
|
||||||
#else
|
#else
|
||||||
std::cerr << "Jtag: support for cmsisdap was not enabled at compile time" << std::endl;
|
std::cerr << "Jtag: support for cmsisdap was not enabled at compile time" << std::endl;
|
||||||
|
|
@ -135,7 +120,7 @@ void Jtag::init_internal(const cable_t &cable, const string &dev, const string &
|
||||||
#endif
|
#endif
|
||||||
case MODE_XVC_CLIENT:
|
case MODE_XVC_CLIENT:
|
||||||
#ifdef ENABLE_XVC
|
#ifdef ENABLE_XVC
|
||||||
_jtag = new XVC_client(ip_adr, port, clkHZ, _verbose);
|
_jtag = new XVC_client(ip_adr, port, clkHZ, verbose);
|
||||||
break;
|
break;
|
||||||
#else
|
#else
|
||||||
std::cerr << "Jtag: support for xvc-client was not enabled at compile time" << std::endl;
|
std::cerr << "Jtag: support for xvc-client was not enabled at compile time" << std::endl;
|
||||||
|
|
@ -143,17 +128,17 @@ void Jtag::init_internal(const cable_t &cable, const string &dev, const string &
|
||||||
#endif
|
#endif
|
||||||
#ifdef ENABLE_LIBGPIOD
|
#ifdef ENABLE_LIBGPIOD
|
||||||
case MODE_LIBGPIOD_BITBANG:
|
case MODE_LIBGPIOD_BITBANG:
|
||||||
_jtag = new LibgpiodJtagBitbang(pin_conf, dev, clkHZ, _verbose);
|
_jtag = new LibgpiodJtagBitbang(pin_conf, dev, clkHZ, verbose);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#ifdef ENABLE_JETSONNANOGPIO
|
#ifdef ENABLE_JETSONNANOGPIO
|
||||||
case MODE_JETSONNANO_BITBANG:
|
case MODE_JETSONNANO_BITBANG:
|
||||||
_jtag = new JetsonNanoJtagBitbang(pin_conf, dev, clkHZ, _verbose);
|
_jtag = new JetsonNanoJtagBitbang(pin_conf, dev, clkHZ, verbose);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#ifdef ENABLE_REMOTEBITBANG
|
#ifdef ENABLE_REMOTEBITBANG
|
||||||
case MODE_REMOTEBITBANG:
|
case MODE_REMOTEBITBANG:
|
||||||
_jtag = new RemoteBitbang_client(ip_adr, port, _verbose);
|
_jtag = new RemoteBitbang_client(ip_adr, port, verbose);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
|
|
@ -163,8 +148,15 @@ void Jtag::init_internal(const cable_t &cable, const string &dev, const string &
|
||||||
|
|
||||||
_tms_buffer = (unsigned char *)malloc(sizeof(unsigned char) * _tms_buffer_size);
|
_tms_buffer = (unsigned char *)malloc(sizeof(unsigned char) * _tms_buffer_size);
|
||||||
memset(_tms_buffer, 0, _tms_buffer_size);
|
memset(_tms_buffer, 0, _tms_buffer_size);
|
||||||
|
|
||||||
|
detectChain(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Jtag::~Jtag()
|
||||||
|
{
|
||||||
|
free(_tms_buffer);
|
||||||
|
delete _jtag;
|
||||||
|
}
|
||||||
int Jtag::detectChain(int max_dev)
|
int Jtag::detectChain(int max_dev)
|
||||||
{
|
{
|
||||||
char message[256];
|
char message[256];
|
||||||
|
|
|
||||||
|
|
@ -110,12 +110,6 @@ class Jtag {
|
||||||
JtagInterface *_jtag;
|
JtagInterface *_jtag;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void init_internal(const cable_t &cable, const std::string &dev,
|
|
||||||
const std::string &serial,
|
|
||||||
const jtag_pins_conf_t *pin_conf, uint32_t clkHZ,
|
|
||||||
const std::string &firmware_path,
|
|
||||||
const bool invert_read_edge,
|
|
||||||
const std::string &ip_adr, int port);
|
|
||||||
/*!
|
/*!
|
||||||
* \brief search in fpga_list and misc_dev_list for a device with idcode
|
* \brief search in fpga_list and misc_dev_list for a device with idcode
|
||||||
* if found insert idcode and irlength in _devices_list and
|
* if found insert idcode and irlength in _devices_list and
|
||||||
|
|
@ -124,7 +118,7 @@ class Jtag {
|
||||||
* \return false if not found, true otherwise
|
* \return false if not found, true otherwise
|
||||||
*/
|
*/
|
||||||
bool search_and_insert_device_with_idcode(uint32_t idcode);
|
bool search_and_insert_device_with_idcode(uint32_t idcode);
|
||||||
int8_t _verbose;
|
bool _verbose;
|
||||||
int _state;
|
int _state;
|
||||||
int _tms_buffer_size;
|
int _tms_buffer_size;
|
||||||
int _num_tms;
|
int _num_tms;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue