Hi Stefan,
I think I found the issue. In the function serialice.c:76 serialice_write(), if writing a character fails, the program will be stuck in the readback while loop:
write(fd, buffer + i, 1); while (read(fd, &c, 1) != 1) ;
I changed the write to keep trying until the write succeeds, which fixed the issue for now.
static int serialice_write(int fd, const void *buf, size_t nbyte) { char *buffer = (char *) buf; char c; int i;
for (i = 0; i < (int)nbyte; i++) { while (write(fd, buffer + i, 1) != 1) ; while (read(fd, &c, 1) != 1) ; if (c != buffer[i]) { printf("Readback error! %x/%x\n", c, buffer[i]); } }
return nbyte; }
-Daniel Liu