簡體   English   中英

IPC管道通過文件/ dev / ttyS0和/ dev / ttyS1

[英]IPC pipe through files /dev/ttyS0 and /dev/ttyS1

我想通過串口dev文件執行IPC管道。 這是我首先要使用的要求

sudo socat /dev/ttyS0,raw,echo=0,crnl /dev/ttyS1,raw,echo=0,crnl

它給出了如下錯誤

2014/12/xx 10:33:19 socat[17848] E tcgetattr(4, 0x7fffe76ecaa0): Input/output error

一旦ttyS0和ttyS1連接起來,我假設我們可以像使用pipe()一樣執行讀/寫操作,我將有兩個程序peer0.c和peer1.c,peer0.c打開/ dev / ttyS0和peer1。 c打開/ dev / ttyS1,因此讀寫操作應如下

peer0=>ttyS0--->---ttyS1=>peer1
peer0<=ttyS0---<---ttyS1<=peer1

由於/ dev / ttyS(0/1)是系統范圍的,因此我可以在一個終端中運行peer0.c程序,在另一終端中運行peer1.c,

基本上,我有一個基於Linux的嵌入式應用程序,當移植到目標硬件時,它將由基於Linux的PC通過minicom UART接口進行控制。 目標打開其ttyS0以讀取從PC發送的uart數據,在PC中,命令將通過minicom發送到目標。 現在,我想在一個終端中的同一台PC上運行目標應用程序,並希望從另一個終端/ minicom發送命令。 同樣,通信應該是雙向的

有可能實現這個目標嗎? 還是有其他類似的方法可以達到相同目的?

提前致謝

如果只想傳輸文件,請使用協議通過串行鏈接進行傳輸,例如ZMODEM( http://en.wikipedia.org/wiki/ZMODEM ),如果要完整的IPC,請通過鏈接建立PPP連接( http://en.wikipedia.org/wiki/Point-to-Point_Protocol

 peer0=>ttyS0--->---ttyS1=>peer1 peer0<=ttyS0---<---ttyS1<=peer1 

您似乎希望socat參與上述--->------<--- 這是不可能的,因為socat必須打開ttyS0ttyS1並與peer0爭奪ttyS0輸入,並與peer1爭奪ttyS1輸入。 要實現通過另一個端口與一個串行端口上的應用程序進行通信的目標,只需用一根空調制解調器電纜連接兩個端口即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM