討論串[問題] 一個讀取 uart 的 process
共 3 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓5(5推 0噓 8→)留言13則,0人參與, 3年前最新作者gn00618777 (非常念舊)時間3年前 (2021/04/25 21:24), 編輯資訊
2
0
1
內容預覽:
版友好. 我是在 Linux 寫 C。之前寫了一個 process ,是 1個 byte 1 個 byte 讀取的. blocking 程式,每讀1個byte就檢查是否是 header,但被說寫得不好。. 於是乎再寫了一個 non-blocking的,主要是先蒐集我想要的長度後,再檢查是否是. he
(還有493個字)

推噓1(1推 0噓 1→)留言2則,0人參與, 3年前最新作者jimmytzeng (jimmytseng)時間3年前 (2021/05/02 20:34), 編輯資訊
0
0
1
內容預覽:
我會建議採用producer/consumer多執行緒的設計,一個producer thread 採用token ring方式把uart收進資料結構,很單純的把每一個byte都收進來。. 那麼另一個consumer 作為解析token ring的thread,在把解析完的packet送進queue或
(還有10個字)

推噓0(0推 0噓 4→)留言4則,0人參與, 2年前最新作者gn00618777 (非常念舊)時間2年前 (2021/06/06 18:15), 編輯資訊
0
0
2
內容預覽:
寫code駑鈍... 我參考了版友建議,改了寫法。. 我用了類似生產者消費者方式。當 select uart 有資料時,讀取 sizeof(rbuf) = 256. 的長度。根據uart處於何種狀態(MSG_WAIT_ID1, MSG_WAIT_ID2....),來決定抓取的數量. 完整header
(還有404個字)
首頁
上一頁
1
下一頁
尾頁