FreeCalypso > hg > fc-usbser-tools
changeset 21:af801ab43a33
fteeprom-erase: convert to new local libs
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 08 Sep 2023 23:47:50 +0000 |
parents | 43b8e88dae02 |
children | 4e5c8ac4d508 |
files | fteeprom/Makefile fteeprom/fteeprom-erase.c |
diffstat | 2 files changed, 26 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/fteeprom/Makefile Fri Sep 08 22:40:14 2023 +0000 +++ b/fteeprom/Makefile Fri Sep 08 23:47:50 2023 +0000 @@ -22,8 +22,8 @@ ftee-mkblank: ftee-mkblank.c ${CC} ${CFLAGS} -o $@ $@.c -fteeprom-erase: fteeprom-erase.c - ${CC} ${CFLAGS} -o $@ $@.c -lftdi +fteeprom-erase: fteeprom-erase.o ${LIBS} + ${CC} ${CFLAGS} -o $@ $@.o ${LIBS} -lusb fteeprom-prog: fteeprom-prog.o ${LIBS} ${CC} ${CFLAGS} -o $@ $@.o ${LIBS} -lusb
--- a/fteeprom/fteeprom-erase.c Fri Sep 08 22:40:14 2023 +0000 +++ b/fteeprom/fteeprom-erase.c Fri Sep 08 23:47:50 2023 +0000 @@ -1,27 +1,41 @@ +/* + * This program connects to an FTDI chip via libusb and commands that FTDI + * chip to erase its EEPROM in one fell swoop. This operation is known + * to work on FT2232C/D chips with 5V-powered EEPROMs, but is NOT appropriate + * for FT232R. This operation is also not recommended for external EEPROMs + * powered with 3.3V, as typically used with FT2232H. + * + * The present version has been converted to use our local libraries + * (libftmini and libuwrap) instead of libftdi - thus the external dependency + * is only libusb. + */ + #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> -#include <ftdi.h> +#include <usb.h> +#include "../libuwrap/find_dev.h" +#include "../libuwrap/open_close.h" +#include "../libftmini/eeprom_func.h" main(argc, argv) char **argv; { - struct ftdi_context ftdi; + struct usb_device *dev; + usb_dev_handle *usbh; if (argc != 2) { fprintf(stderr, "usage: %s device-selector\n"); exit(1); } - ftdi_init(&ftdi); - if (ftdi_usb_open_string(&ftdi, argv[1]) < 0) { - fprintf(stderr, "FTDI USB open failed: %s\n", ftdi.error_str); + dev = find_usbdev_by_desc_string(argv[1]); + if (!dev) { + fprintf(stderr, "error: specified USB device not found\n"); exit(1); } - if (ftdi_erase_eeprom(&ftdi) < 0) { - fprintf(stderr, "EEPROM write error: %s\n", ftdi.error_str); - exit(1); - } - ftdi_usb_close(&ftdi); + usbh = usbwrap_open_dev(dev, 1); + ftmini_erase_eeprom(usbh); + usbwrap_close_dev(usbh); exit(0); }