全部博文(175)
发布时间:2013-02-26 11:31:42
C语言中结构体对齐问题 收藏 关于C语言中的结构体对齐问题1,比如:struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B;sizeof( A)=6, sizeof( B)=8,为什么?注:sizeof(short)=2,sizeof(long)=4因为:“成员对齐有一个重要的条件,即每个成员按自己的方式对齐.其.........【阅读全文】
发布时间:2012-12-20 17:38:09
串口的open操作(tty_open) 分类: linux驱动之串口(非console) 2012-08-23 00:00 138人阅读 评论(0) 收藏 举报 根据前面的操作,串口作为字符驱动也已经注册到系统了,/dev目录下也有设备文件节点了。 那接下来uart的操作是如何进行的呢? 操作硬件之前都是要先open......【阅读全文】
发布时间:2012-12-15 11:31:34
终端设备驱动:终端设备分类:串行端口终端(/dev/ttySn), 伪端口(/dev/pty), 控制台终端(/dev/ttyn, /dev/console)。终端设备驱动结构:包含tty核心,tty线路规程(以特殊的方式格式化从一个用户或硬件收到到数据,ppp或bluetooth),tty驱动。 tty设备发送数据流程:tty核心从用户获取数据---->tty线程规程驱动----->tty驱动----->硬件。接收数据,相反。 struct tty_struct { int ma......【阅读全文】
发布时间:2012-12-14 19:17:45
一、首先把tty驱动在linux中的分层结构理清楚:自上而下分为TTY核心层、TTY线路规程、TTY驱动。二、TTY核心层与线路规程层分析用户空间的程序直接对tty核心层进行读写等相关操作,在tty_io.c中:int__init tty_init(void){ cdev_init(&tty_cdev,&tty_fops); if(cdev_add(&tty_cdev, MKDEV(TTYAUX_MAJOR, 0), 1) || register_chrdev_region(MKDEV(TTYAUX_MAJOR, 0), 1, "/dev/tty")< 0) ......【阅读全文】