Skip to content

Commit a0f1303

Browse files
committed
jtag: added build/define options to enable/disable cables support
1 parent 05f41ac commit a0f1303

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

src/jtag.cpp

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
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
@@ -31,13 +33,21 @@
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

Comments
 (0)