我目前使用16550兼容的UART,我希望能夠更改FIFO中斷觸發級別(我在高UART負載下丟棄位元組,我想減少門檻 - 這是一個動力不足的嵌入式系統)。當然,我可以在8250_port.c駕駛員改變它,如果我想:
[PORT_NS16550A] = {
.name = "NS16550A",
.fifo_size = 16,
.tx_loadsz = 16,
.fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
.flags = UART_CAP_FIFO | UART_NATSEMI,
},
但它會更方便將其從用戶空間的改變而無需重新編譯內核。
我希望的following documentation已過時:
截至2000年年末,有沒有辦法在Linux用戶可以設定這些 直接(setserial的不能做到這一點)。雖然許多PC只有1650位元組的緩沖區,但更好的UARTS具有更大的緩沖區。
如果這樣做(例如一些新十歲上下的ioctl)的手段,那么seterial (8)和stty (1)還沒有暴露的介面。
uj5u.com熱心網友回復:
我認為這個問題的一般解決方案是使用setserial來使uart更改模式。例如,使用Pericom PI7C9X7958,您可以使用多種操作模式,例如“550”和950模式。這些對應于16550或16950標準uart型別。每種模式都有一個與其相關的特定fifo大小和一些其他功能。
所以,如果您的設備支持的話,你可以嘗試
的setserial -v的/ dev/UART就是ttyS1 16950
,然后驗證
的setserial -g的/ dev /就是ttyS1 的/ dev/ttyS1,UART:16950/954,埠:0xc800,IRQ:16
uj5u.com熱心網友回復:
請問一下,您有Pericom PI7C9X7958的相關電路或設計Demo嗎轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279698.html
標籤:其他技術討論專區
