关闭

linux驱动开发一般流程

标签: linux驱动
511人阅读 评论(0) 收藏 举报
分类:

首先,我们要考虑到作为驱动工程师要做的是拜托单片机开发的思路,在单板开发(没有OS)过程,设备的驱动接口直接交给了上层,驱动和应用互为平等。在有OS的系统中,驱动独立于硬件平台之外,应用工程师通过虚拟文件系统的read write对具体的IO进行操作

一般流程分为4步

1:我们首先要确定硬件平台接线,然后确定该设备接口,比如一般的IIC SPI USB USART 等接口

2:一般的发行版内核都有通用对应接口的驱动,我们将该文件稍加修改即可,比如内核中带有IIC接口

    AT24C02的存储芯片的驱动,我们现在要做SX8650的驱动(IIC),我们首先可以将该文件复制,然后

    可以分析,这两款IC无非是读取寄存器的方法不一样,所以我们首先需要修改对应的IIC速率,对应的IO接口配               置方式,对应内存地址分配,对应的寄存器读写方法API等

3.内核驱动有两种方式加载,一种是以模块的方式动态加载(驱动开发初期推荐),一种是直接编译入内核

4.修改对应目录下的Kconfig和Makefile

makefile和Kconfig的一般解释:

a、在kconfig中增加(假设对应的驱动为LED)

config LED_ARM9//配置选项,在menconfig时显示

tristate(bool二选一) "lfy config the led"   //bool和tristate的区别是一个是是否变异如内核,一个是三选一,是否编译入内核,模块编译入内核

depends on ARCH_S3C2410|XXX|AAA|BBB        //配置有效先决条件是该平台已被选中

help

this is led driver design by lfy

b、在makefile中增加

     obj-$(LED_ARM9)+=led.o //此处注意两点,第一点LED_ARM9一定要与kconfig名称一一对应,第二点就是     led.o为你编译驱动后的输出文件,此句话的意思就是如果LED_ARM9被配置,则此句简化为obj-y或者obj-     m,取决与你配置内核选择的是编译入内核还是已模块方式编译入内核

  对于单驱动文件可以使用上述makefile的规则,如果一个驱动对应多个输出文件则需要适当修改makefile

 obj-$(LED_ARM9)+=led.o

obj-y :=led.o a.o b.o c.o



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

linux驱动开发流程

嵌入式linux驱动开发流程 嵌入式系统中,操作系统是通过各种驱动程序来驾驭硬件设备的。设备驱动程序是操作系统内核和硬件设备之间的接口,它为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是...
  • EN_wang
  • EN_wang
  • 2012-01-31 10:09
  • 14563

Linux 设备驱动开发 —— platform设备驱动应用实例解析

前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习。         一、platform 驱动的工作过程...
  • zqixiao_09
  • zqixiao_09
  • 2016-03-14 19:27
  • 12581

【Linux 驱动】驱动开发第一步----开发环境搭配

一,环境搭建步骤       1)下载Linux源码              1> ~#apt-cache search linux-source 出现:linux-source - L...
  • tianshuai11
  • tianshuai11
  • 2012-04-09 23:27
  • 6021

Linux 驱动程序开发步骤(X86平台)

Linux 驱动程序开发步骤(X86平台) 本文转自:http://blog.sina.com.cn/s/blog_75f3979401015cwr.html 编写好驱动,通过挂载的方法将驱动程序挂载...
  • liushi558
  • liushi558
  • 2016-03-29 10:27
  • 550

Linux驱动开发学习的一些必要步骤

1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以i...
  • Leo_Walker
  • Leo_Walker
  • 2016-07-06 13:58
  • 3588

Linux设备驱动第一天学习笔记(如何将系统在开发板上运行起来、驱动开发基本步骤)

如何将系统在开发板上运行起来? 4.0 交叉编译器的获取?厂家提供 网上下载(厂家确认) 4.1 uboot进行操作? 1,解压厂家源码 2,进入源码 3,make distclean ...
  • PZ0605
  • PZ0605
  • 2016-11-24 17:26
  • 1734

linux 驱动程序开发实例(配套光盘)

  • 2013-06-13 14:33
  • 2.45MB
  • 下载

教你如何编写linux驱动

  • 2008-10-11 11:15
  • 432KB
  • 下载

LINUX设备驱动开发前准备

今天起开始学习LINUX设备驱动,在此更新博客与大家分享学习的经验及收获。 很多人和我一样应该都是从应用开发,想着手开始驱动的学习,我现在也是在做嵌入式这方面的开发,但对于驱动的掌握也不太好,我现在...
  • yanghanxing110
  • yanghanxing110
  • 2014-03-23 21:53
  • 1113

Linux设备驱动开发大致流程

2009-12-06 /20:34:07基于操作系统的驱动就是在无操作系统下的硬件接口函数加上操作系统外套实现一个嵌入式Linux设备驱动程序的大致流程如下:(l)查看原理图,理解设备的工作原理。(2...
  • eastoasis
  • eastoasis
  • 2009-12-06 20:33
  • 1153
    个人资料
    • 访问:6488次
    • 积分:124
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类