Вы можете использовать приложение типа xmodem для передачи файла через любой терминал. Является ли последовательный порт, с которого вы говорите, с терминала, или это также консоль ядра.
Если ваше ядро не шумит, то вы можете использовать свое текущее соединение, чтобы сделать xmodem как передачу. На стороне хоста вы можете использовать kermit, который хорош и подходит для сценариев.
Если вы хотите сделать ваш последовательный порт необработанным, и у вас открыт файловый дескриптор ttyfd,
Вот один из способов сделать это:
struct termios tty, orig_tty;
...
if(tcgetattr(ttyfd, &tty) < 0)
{
// error checking
}
// backup tty, make it raw and apply changes
orig_tty = tty;
cfmakeraw(&tty);
if(tcsetattr(ttyfd, TCSAFLUSH, &tty) < 0)
{
// error checking
}
...
//end of program or error path :
tcsetattr(ttyfd, TCSAFLUSH, &orig_tty)
Не забудьте восстановить настройки в конце вашей программы, если вам все еще нужен терминал с хорошим поведением.