linux uart驱动及应用

linux uart驱动及应用

ID:17485872

大小:182.77 KB

页数:13页

时间:2018-09-02

linux uart驱动及应用_第1页
linux uart驱动及应用_第2页
linux uart驱动及应用_第3页
linux uart驱动及应用_第4页
linux uart驱动及应用_第5页
资源描述:

《linux uart驱动及应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#defineTTY_MAJOR4#defineTTYAUX_MAJOR5Tty:终端设备的统称。一般分为:控制台、串口和pty./dev/ttySn:串行端口终端(串口),串行端口被看做字符设备。4:66(设备号)->../../devices/platform/serial8250/tty/ttyS24:67->../../devices/platform/serial8250/tty/ttyS34:68->../../devices/platform/serial8250/tty/ttyS4echotest>/dev/ttyS2

2、可接串口来测试ttyS2。Pty:pseudotty虚拟(伪)终端pts(pseudo-terminalslave)与ptmx(pseudo-terminalmaster)配合使用实现pty。打开一个伪terminal,那么将会在devpts文件系统/dev/pts下创建一个对应的pts字符文件。通过tty命令(或者whoami)查看当前终端,可以看出此伪terminal对应着pts3。再打开一个伪terminal:此伪terminal对应着pts4.两个终端间传输信息:/dev/tty:就是当前使用的终端。设备号:5:0tty可以是

3、pts3,也可以是tty1。控制台终端:tty0:代表当前使用的控制台终端。设备号4:0.Ubuntu下:图像界面下通过Ctrl+Alt+F1—F6可以切换到tty1到tty6。Ctrl+Alt+F7切会图像界面。Pts3发送到tty1。/dev/console是指向当前console。设备号5:1----------------------------------------------------------------------------------------------------------Tty核心:structtt

4、y_driver*alloc_tty_driver(intlines){structtty_driver*driver;driver=kzalloc(sizeof(structtty_driver),GFP_KERNEL);if(driver){kref_init(&driver->kref);driver->magic=TTY_DRIVER_MAGIC;driver->num=lines;(次设备个数)/*laterwe'llmoveallocationoftableshere*/}returndriver;}//分配一个结构体tt

5、y_driver,初始化其magic、num。inttty_register_driver(structtty_driver*driver){if(!(driver->flags&TTY_DRIVER_DEVPTS_MEM)&&driver->num){p=kzalloc(driver->num*2*sizeof(void*),GFP_KERNEL);}if(!driver->major){error=alloc_chrdev_region(&dev,driver->minor_start,driver->num,driver->na

6、me);}else{dev=MKDEV(driver->major,driver->minor_start);error=register_chrdev_region(dev,driver->num,driver->name);}//如果没有指定主设备号,则分配并注册,否则直接注册设备号。if(p){driver->ttys=(structtty_struct**)p;driver->termios=(structktermios**)(p+driver->num);}else{driver->ttys=NULL;driver->te

7、rmios=NULL;}cdev_init(&driver->cdev,&tty_fops);//初始化设备操作函数集。driver->cdev.owner=driver->owner;error=cdev_add(&driver->cdev,dev,driver->num);//注册字符设备。mutex_lock(&tty_mutex);list_add(&driver->tty_drivers,&tty_drivers);//此driver->tty_drivers加到链表tty_drivers上mutex_unlock(&tty

8、_mutex);if(!(driver->flags&TTY_DRIVER_DYNAMIC_DEV)){for(i=0;inum;i++){d=tty_register_device(driver,i,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。