日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

FreeBSD handbook中文版 15 串口通訊( 二 )


FreeBSD 當前支持dumb 多端口串行接口卡 , 如BocaBoard 1008 and 2016 , 就象許多Digiboard
和Stallion TechnologIEs 制造的智能多接口卡 。默認的內(nèi)核只會尋找標準的COM 接口 。
要看看你的內(nèi)核是否支持你的串口 , 需要在內(nèi)核啟動時查看一些信息 , 或使用
/sbin/dmesg 命令重新播出內(nèi)核啟動信息 。特別的 , 尋找以sio 為特征的啟動信息 。
提示:要看看帶有sio 的信息 , 可以使用下面的命令:
# /sbin/dmesg | grep "sio"
第3 頁FreeBSD 使用手冊
例如 , 在一個帶有4 個串行口的系統(tǒng)上 , 這些是串行口特定的內(nèi)核啟動信息:
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A
如果你的內(nèi)核沒有認出你的所有串行口 , 你需要為你的系統(tǒng)定制一個內(nèi)核 。更多有關(guān)配
置內(nèi)核的細節(jié) , 可以看看第9 章 。
在你的內(nèi)核配置文件中相關(guān)的設(shè)備行是這樣的:
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr
你可以注釋掉或完全刪除你沒有的設(shè)備 。請看看sio 的有關(guān)如何為你的多端口主板寫入
配置信息的聯(lián)機手冊 。如果你使用了一個不同版本的FreeBSD 的配置文件 , 請小心點 , 因為
設(shè)備的標記在兩個版本之間已經(jīng)改變了 。
15.2.4 設(shè)備指定文件
內(nèi)核中的絕大多數(shù)設(shè)備可以通過device special files 來訪問 , 它就在/dev 目錄下 。
Sio 設(shè)備通過/dev/ttyd N (dial-in)和/dev/cuaa N (call-out)來訪問 。FreeBSD 也提供了初
始化的設(shè)備(/dev/ttyid N and /dev/cuai0 N) 和鎖定的設(shè)備(/dev/ttyld N and
第4 頁FreeBSD 使用手冊
/dev/cual0 N) 。初始化的設(shè)備在每次端口被打開時被用來初始化設(shè)備通訊端口參數(shù) 。例如使
用CTS/RTS 的流控制信號的crtscts 。鎖定設(shè)備被用來鎖定端口的標記以阻止用戶或程序改
變某個參數(shù);看看termios, sio, and stty 的聯(lián)機手冊了解更多信息 。
15.2.4.1 編譯設(shè)備指定文件
注意:FreeBSD 5.0 已把自動創(chuàng)建設(shè)備接點的devfs 文件系統(tǒng)作為是必需的 。如果你在
運行啟用devfs 的FreeBSD 版本 , 你就可以跳過這一節(jié) 。
一個在/dev 目錄下的叫做MAKEDEV 的shell 腳本管理著設(shè)備的特殊文件 。要使用
MAKEDEV 來編譯撥號設(shè)備 , 以使用COM1:(port 0),cd 進入/dev,然后執(zhí)行命令MAKEDEV
ttyd0 。同樣地 , 要編譯撥號設(shè)備以使用COM2:(port 1),可以執(zhí)行MAKEDEV ttyd1 。MAKEDEV
不僅僅創(chuàng)建/dev/ttyd N設(shè)備特殊文件 , 也創(chuàng)建/dev/cuaa N, /dev/cuaia N, /dev/cuala N,
/dev/ttyld N, 和/dev/ttyid N節(jié)點 。
編譯完支持新設(shè)備的特殊文件之后 , 需要檢查文件的權(quán)限來確定誰可以在這些文件上讀
寫—你可能不想讓普通的用戶來使用你的modem 吧 。默認的在/dev/cua*上的權(quán)限應(yīng)當比較
充分:
crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1
這些許可允許用戶uucp 和在組撥號上的用戶使用呼出設(shè)備 。
15.2.5 串行端口配置
ttyd N (或cuaa N)設(shè)備是你要打開你的應(yīng)用程序的規(guī)則設(shè)備 。當一個進程打開某個設(shè)備 ,
它將有一個終端I/O 的默認設(shè)置 。你可以在命令行看這些設(shè)置:
# stty -a -f /dev/ttyd1
當你修改了這個設(shè)備的設(shè)置 , 這個設(shè)置會生效 , 除非設(shè)備被關(guān)閉 。當它被重新打開時 ,
它將回到默認設(shè)置 。要修改默認設(shè)置 , 你可以打開和調(diào)整initial state 設(shè)備的設(shè)置 。例如 ,

推薦閱讀