Ubuntu 16.04 LTS를 실행하는 Jetson 개발 키트와 통신하기 위해 PC(Windows 10)를 사용하고 있습니다. PC에는 UART를 통해 데이터를 보내는 C 프로그램이 있으며 Ubuntu는 해당 데이터를 읽으려면 C 프로그램을 사용해야 합니다.
제 질문은 PC가 원시 바이트를 작성한 후 내 tty 파일(/dev/ttyTHS2)의 내용이 어떻게 되어야 합니까?입니다. 쓰기 작업 후 내용이 지워집니까? 파일을 추가하고 커서를 이동합니까? tty 파일이 지워질 때까지 특정 순간에 저장할 수 있는 상한이 있습니까?
온라인으로 검색해도 답변을 찾을 수 없었으므로 도움을 주시면 대단히 감사하겠습니다!
답변1
내 답변이 더 의미가 있도록 다른 순서로 답변하고 있습니다.
[tty에 쓰기]는 파일을 추가하고 커서를 이동합니까?
설마. tty는 블록 장치가 아닙니다.특징장비. 장치 파일에 단일 바이트를 쓰면 궁극적으로 UART가 활성화되어 비트를 전송하게 됩니다. 여러 바이트에 대해 이 과정을 반복합니다.
tty 파일이 지워질 때까지 특정 순간에 저장할 수 있는 상한이 있습니까?
예, 모자가 있습니다. 버퍼는 하드웨어와 소프트웨어에 존재합니다. tty에 쓰는 속도가 전송 속도보다 빠르면 버퍼가 채워지고 작업 블록이 기록됩니다. 정확한 치수는 잘 모르겠습니다. 버퍼 크기는 1이 될 것으로 예상됩니다(한 번에 1바이트만 쓸 수 있음).
PC가 일부 원시 바이트를 쓴 후 내 tty 파일(/dev/ttyTHS2)의 내용은 무엇이어야 합니까?
내가 아는 한, tty는 기본적으로 에코되지 않습니다. tty 파일에서 읽을 때 바이트를 읽을 때까지 작업이 차단됩니다.받았다바깥으로부터.
tty는 바이트만 알고 있습니다. "원시" 또는 "요리된" 바이트가 없습니다.
쓰기 작업 후 내용이 지워집니까?
일반적으로 쓰기 버퍼에서 읽지 않으므로 이는 실제로 중요하지 않습니다.
이 모든 답변은 IOCTL을 통해 구성된 tty를 가정합니다.