什么是linux下的C语言驱动开发?

Posted

tags:

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

驱动指的是硬件的驱动吗?为什么要在linux下开发?它和linux内核有什么关系?

驱动一般是指硬件驱动,当然也有数据库驱动程序。
至于为什么要在Linux下开发,主要是为了在Linux下使用测试。
驱动程序就是Linux内核的一个重要组成部分。
参考技术A 设备驱动程序是一组由内核中的相关子例程或数据组成的I/O设备软件借口。linux/windows分别有自己的驱动,根据各自的需要进行开发。
在linux内核里有一个sysfs的文件夹,它是一个处于内存的虚拟文件系统。帮助用户能用一个简单文件系统的方式来观察系统中各种设备的拓扑结构。这样的话,就可以把设备文件当成普通文件访问。
参考技术B 你想想, 你的操作系统用的是linux, 理所当然, 驱动程序就应该开发适合linux操作系统的了, 你第一个问题就解决了.
第二个嘛, 也很简单, 你想想, 电脑是如何识别硬件的, 是通过操作系统, 也就是linux, 操作系统调用linux内核程序, 然后内核找到相应的硬件设备并对其进行操作, 简单的来说, linux内核相当于操作系统与硬件设备的一个接口.本回答被提问者采纳
参考技术C 这个吗,比如你是个硬件生产厂,生产一种鼠标,需要给WINDOWS的用户提供驱动,也需要给LINUX/苹果Mac OS提供驱动,那么就需要用C语言写驱动程序了。

linux内核重要组成部分之一,就是硬件驱动。

Android深度探索HAL与驱动开发 第六章

第六章

 


 本章是android底层开发的第一个章节,本章是第一个linux驱动程序,统计单词个数。

本章作为实战第一章,首先要做的就是了解linux驱动到底是个什么东西,首先了解linux驱动的工作方式,linux系统将每一个驱动都映射成一个文件,保存在/dev中,再使用c语言函数ioctl向驱动的设备文件发送打印命令。编写linux驱动程序,需要接受被写入的数据,并将它们通过pc的并口、usb等端口发送给打印机, 需要linux响应应用程序传过来的数据。

    然后编写linux驱动程序的步骤,步骤如下:

1建立linux驱动骨架。

  Module_init 和module_exit宏制定

2注册和注销设备文件

  Misc_register   mics_deregister

3.指定驱动相关信息

      Module_author  module_license module_alias module_description

4.制定回调函数

5.编写业务逻辑

6.编写makefile文件

7.编译linux驱动程序

8.安装和卸载linux驱动

然后,我们就可以真正开始我们的程序了,利用设备文件作为介质与应用程序进行交互。应用程序通过向设备文件传递一个由空格分隔的字符串,然后从设备文件读出来的是该字符串包含的单词数。在编写前首先建立存放驱动程序的目录,然后建立驱动源代码文件并编写一个makefile文件,之后进行编写骨架等一系列操作,通过书上内容可以完美编译。 

最后测试驱动,可以使用的方法有:

1 Ubuntu linux进行测试

2 在android模拟器上通过原生c程序测试

3 使用android NDK测试

4 使用java代码直接操作设备文件测试

5使用S3C6410开发板测试

6 将驱动编译进linux内核进行测试

最后一个小节讲述了使用Eclipse开发和测试linux驱动程序,利于深入了解内核技术。

开发步骤如下:

1.建立c工程

2建立c源代码文件链接

3设置include路径

4编译linux驱动

测试步骤如下

     1导入test_word_count.c文件

     2设置include路径

     3建立target

     4build工程

     5运行测试程序

 

虽然驱动的功能不复杂,但是足以让我了解驱动的完成开发过程。本章虽然仅仅是一个简单的实例,但是包含内容很多,

以上是关于什么是linux下的C语言驱动开发?的主要内容,如果未能解决你的问题,请参考以下文章

i.MX6ULL驱动开发 | 23 - Linux下的驱动分离与分层——platform平台驱动模型

嵌入式Linux-C01 嵌入式LinuxC语言编程的概念

嵌入式Linux-C01 嵌入式LinuxC语言编程的概念

Linux驱动开发-安装驱动参数传递

(57)Linux驱动开发之三Linux字符设备驱动

linux下驱动的问题