linux开发笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux开发笔记相关的知识,希望对你有一定的参考价值。

  1. linux设备控制接口

    设备驱动程序的一个基本功能就是管理和控制设备,同时为用户应用程序提供管理和控制设备的接口。驱动支持设备控制接口,在Linux中这个接口是通过ioctl函数来实现的。

     ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:
    int ioctl(int fd, ind cmd, …);
        其中fd是用户程序打开设备时使用open函数返回的文件标示符,cmd是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,这个参数的有无和cmd的意义相关。
        ioctl函数是文件结构中的一个属性分量,就是说如果你的驱动程序提供了对ioctl的支持,用户就可以在用户程序中使用ioctl函数来控制设备的I/O通道。
     ioctl的必要性
        如果不用ioctl的话,也可以实现对设备I/O通道的控制,但那是很乱的。例如,我们可以在驱动程序中实现write的时候检查一下是否有特殊约定的数据流通过,如果有的话,那么后面就跟着控制命令(一般在socket编程中常常这样做)。但是如果这样做的话,会导致代码分工不明,程序结构混乱,程序员自己也会头昏眼花的。所以,我们就使用ioctl来实现控制的功能。要记住,用户程序所作的只是通过命令码(cmd)告诉驱动程序它想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做的事情。

  2. MSB与LSB

    MSB是Most Significant Bit的缩写,最高有效位。在二进制数中,MSB是最高加权位。与十进制数字中最左边的一位类似。通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。  
    LSB(Least Significant Bit),意为最低有效位;MSB(Most Significant Bit),意为最高有效位,若MSB=1,则表示数据为负值,若MSB=0,则表示数据为正。


本文出自 “孙国栋” 博客,请务必保留此出处http://qtlinux.blog.51cto.com/3052744/1752336

以上是关于linux开发笔记的主要内容,如果未能解决你的问题,请参考以下文章

Linux驱动开发-字符设备控制技术笔记 3

Linux驱动开发-字符设备控制技术笔记 3

Linux MIPI DSI LCD设备驱动开发调试细节学习笔记

读书笔记第七章

Linux MIPI DSI LCD设备驱动开发调试细节学习笔记

Android深度探索(卷1)HAL与驱动开发 第七章 LED将为我闪烁:控制发光二极管 读书笔记