mirror of
https://github.com/mariusgreuel/avrdude.git
synced 2025-12-13 09:24:55 +00:00
Implement and document a libusb-based USB transport for the JTAG ICE
mkII. The serial transport methods have been moved out into a record of function pointers for that purpose, defaulting to the actual serial connection that natively applies to the hosting system. Iff inside the JTAG ICE mkII handler a port name starting with "usb" has been detected, the record of function pointers is switched to USB. Optionally, a serial number might be specified, so only the JTAG ICE mkII matching the given serial number will be opened. The match is done right-to-left, so only the least significant bytes of the serial number need to be given. In order to make the change as least intrusive to existing drivers as possible, the entire naming scheme of the serial_foo() function entry points has been maintained as access macros that encapsulate these into the respective indirect function calls via serdev->foo(). git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@478 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
25
serial.h
25
serial.h
@@ -32,12 +32,25 @@
|
||||
|
||||
extern long serial_recv_timeout;
|
||||
|
||||
extern int serial_open(char * port, long baud);
|
||||
extern int serial_setspeed(int fd, long baud);
|
||||
extern void serial_close(int fd);
|
||||
struct serial_device
|
||||
{
|
||||
int (*open)(char * port, long baud);
|
||||
int (*setspeed)(int fd, long baud);
|
||||
void (*close)(int fd);
|
||||
|
||||
extern int serial_send(int fd, char * buf, size_t buflen);
|
||||
extern int serial_recv(int fd, char * buf, size_t buflen);
|
||||
extern int serial_drain(int fd, int display);
|
||||
int (*send)(int fd, char * buf, size_t buflen);
|
||||
int (*recv)(int fd, char * buf, size_t buflen);
|
||||
int (*drain)(int fd, int display);
|
||||
};
|
||||
|
||||
extern struct serial_device *serdev;
|
||||
extern struct serial_device serial_serdev, usb_serdev;
|
||||
|
||||
#define serial_open (serdev->open)
|
||||
#define serial_setspeed (serdev->setspeed)
|
||||
#define serial_close (serdev->close)
|
||||
#define serial_send (serdev->send)
|
||||
#define serial_recv (serdev->recv)
|
||||
#define serial_drain (serdev->drain)
|
||||
|
||||
#endif /* __serial_h__ */
|
||||
|
||||
Reference in New Issue
Block a user