1212#include < vector>
1313#include < string>
1414
15+ #ifdef ENABLE_ANLOGIC_CABLE
1516#include " anlogicCable.hpp"
17+ #endif
1618#ifdef USE_LIBFTDI
1719#include " ch552_jtag.hpp"
1820#endif
3133#ifdef ENABLE_JETSONNANOGPIO
3234#include " jetsonNanoJtagBitbang.hpp"
3335#endif
36+ #ifdef ENABLE_JLINK
3437#include " jlink.hpp"
38+ #endif
3539#ifdef ENABLE_CMSISDAP
3640#include " cmsisDAP.hpp"
3741#endif
42+ #ifdef ENABLE_DIRTYJTAG
3843#include " dirtyJtag.hpp"
44+ #endif
45+ #ifdef ENABLE_ESP_USB_JTAG
3946#include " esp_usb_jtag.hpp"
47+ #endif
48+ #ifdef ENABLE_CH347
4049#include " ch347jtag.hpp"
50+ #endif
4151#include " part.hpp"
4252#ifdef ENABLE_REMOTEBITBANG
4353#include " remoteBitbang_client.hpp"
@@ -98,7 +108,12 @@ Jtag::Jtag(const cable_t &cable, const jtag_pins_conf_t *pin_conf,
98108{
99109 switch (cable.type ) {
100110 case MODE_ANLOGICCABLE:
111+ #ifdef ENABLE_ANLOGIC_CABLE
101112 _jtag = new AnlogicCable (clkHZ);
113+ #else
114+ std::cerr << " Jtag: support for Anlogic cable was not enabled at compile time" << std::endl;
115+ throw std::exception ();
116+ #endif
102117 break ;
103118#ifdef USE_LIBFTDI
104119 case MODE_FTDI_BITBANG:
@@ -115,24 +130,44 @@ Jtag::Jtag(const cable_t &cable, const jtag_pins_conf_t *pin_conf,
115130 break ;
116131#endif
117132 case MODE_CH347:
133+ #ifdef ENABLE_CH347
118134 _jtag = new CH347Jtag (clkHZ, verbose, cable.vid , cable.pid , cable.bus_addr , cable.device_addr );
135+ #else
136+ std::cerr << " Jtag: support for CH347 cable was not enabled at compile time" << std::endl;
137+ throw std::exception ();
138+ #endif
119139 break ;
120140 case MODE_DIRTYJTAG:
141+ #ifdef ENABLE_DIRTYJTAG
121142 _jtag = new DirtyJtag (clkHZ, verbose);
143+ #else
144+ std::cerr << " Jtag: support for dirtyJtag cable was not enabled at compile time" << std::endl;
145+ throw std::exception ();
146+ #endif
122147 break ;
123- #ifdef ENABLE_GOWIN_GWU2X
124148 case MODE_GWU2X:
149+ #ifdef ENABLE_GOWIN_GWU2X
125150 _jtag = new GowinGWU2x ((cable_t *)&cable, clkHZ, verbose);
126- break ;
127151#else
128152 std::cerr << " Jtag: support for Gowin GWU2X was not enabled at compile time" << std::endl;
129153 throw std::exception ();
130154#endif
155+ break ;
131156 case MODE_JLINK:
157+ #ifdef ENABLE_JLINK
132158 _jtag = new Jlink (clkHZ, verbose, cable.vid , cable.pid );
159+ #else
160+ std::cerr << " Jtag: support for JLink cable was not enabled at compile time" << std::endl;
161+ throw std::exception ();
162+ #endif
133163 break ;
134164 case MODE_ESP:
165+ #ifdef ENABLE_ESP_USB_JTAG
135166 _jtag = new esp_usb_jtag (clkHZ, verbose, 0x303a , 0x1001 );
167+ #else
168+ std::cerr << " Jtag: support for esp32s3 cable was not enabled at compile time" << std::endl;
169+ throw std::exception ();
170+ #endif
136171 break ;
137172 case MODE_USBBLASTER:
138173#ifdef ENABLE_USBBLASTER
0 commit comments