如何将驱动加入内核

发布者:innovator8最新更新时间:2025-01-07 来源: cnblogs关键字:驱动  S5PV210 手机看文章 扫描二维码
随时随地手机看文章

驱动有两种存在形式:

 

1、驱动原文件和编译驱动文件的Makefile,一般是由厂家提供,例如一个网卡,厂家会给提供一个驱动源文件(.c)   

编译时需要改动Makefile中的KERN_DIR(开发板linux内核的源码树目录)编译会生成一个.ko文件  然后insmod装载

该类型优势:方便调试开发

 

2、已经存在于内核中的驱动,例如DM9000。

优势:可以在内核配置时make menuconfig决定内核怎么编译

 

其中1、2可以相互转换。

 

如何将1-->2

1、将写好的驱动源文件放入内核源码中正确的目录下

2、在Makefile中添加相应的依赖

     vim 1目录下的Makefile 参考Makefile中的相似模块

     如obj -$(CONFIG_LEDS_S5PV210)    +=leds.o     

   

补充:

      $(CONFIG_TEST) 是一个整体,$(xxx)表示引用变量 xxx

   比如定义 CONFIG_TEST=y

   $(CONFIG_TEST)就是y
   obj-$(CONFIG_TEST) 就是 obj-y
    
   又比如定义 CONFIG_TEST=m
   $(CONFIG_TEST)就是m
   obj-$(CONFIG_TEST) 就是 obj-m
 

     相当于加入了一个新的配置CONFIG_LEDS_S5PV210   依赖于CONFIG_LEDS_S5PV210该宏  (其中CONFIG_是系统自动加上的  LEDS_S5PV210暂时标记下 下一步再解释)

     如何配置这个宏呢???   make menuconfig ?

     此时在 make menuconfig  找到相应的文件夹 找不到CONFIG_LEDS_S5PV210 

     因为 make menuconfig的原理是读取当前目录下的Kconfig文件

 

3、在Kconfig中添加相应的配置项 

    相应用位置添加:
    config PXA_SKEL
    tristate 'SKEL Driver for PXA'
    depend on ARCH_PXA||ARCH_SA1100
    default y
    help

    说明:依赖关系有则加上,无则不管,此将其编译进内核所以default y。

例如:

      config LEDS_S5PV210(名字必须和Makefile中的CONFIG_LEDS_S5PV210对应)

      tristate 'LED Support  for S5PV210'(tristate 表示三态的  即编译内核时可以Y、M、N)这一句make menucinfig时会在可视化界面中看到

      help  说明

 

make menuconfig 配置  配置完成后保存即可

 

如何判断已经配置成功了?

vim .config

 

能找到:

CONFIG_LEDS_S5PV210=y

 

直接make编译内核即可

 

总结:

第1步:将写好的驱动源文件放入内核源码中正确的目录下
第2步:在Makefile中添加相应的依赖
第3步:在Kconfig中添加相应的配置项
第4步:make menuconfig

 

5.4.17.将驱动添加到内核中


关键字:驱动  S5PV210 引用地址:如何将驱动加入内核

上一篇:Linux下简易蜂鸣器驱动代码及测试实例
下一篇:Linux下GPIO驱动(一) ----一个简单的LED驱动

推荐阅读最新更新时间:2026-03-19 13:14

基于Linux 3.0.8 Samsung FIMC(S5PV210) 的摄像头驱动框架解读(一)
FIMC这个名字应该是从S5PC1x0開始出现的。在s5pv210里面的定义是摄像头接口。可是它相同具有图像数据颜色空间转换的作用。 而exynos4412对它的定义看起来更清楚些,摄像头接口被定义为FIMC-LITE 。颜色空间转换的硬件结构被定义为FIMC-IS。 不多说了,我们先来看看Linux3.0.8 三星的BSP包中与fimc驱动相关的文件。 上面的源代码文件组成了整个fimc的驱动框架。 通过.c文件的命名也大致能够推測到FIMC的几个用途: 1、Capture ,Camera Interface 用于控制Camera,及m2m操作 2、Output,这个用途能够简单看成:仅仅使用了FIMC的
[单片机]
基于Linux 3.0.8 Samsung FIMC(<font color='red'>S5PV210</font>) 的摄像头<font color='red'>驱动</font>框架解读(一)
ARM-Linux S5PV210 UART驱动(2)---- 终端设备驱动
  在Linux中,UART串口驱动完全遵循tty驱动的框架结构,但是进行了底层操作的再次封装,所以先介绍tty终端设备驱动。 一、终端设备   1.串行端口终端(/dev/ttySACn)   2.伪终端(/dev/pty/)   3.控制台终端(/dev/ttyn,/dev/console) 二、驱动结构   1.tty分层结构如下图所示:    包含tty核心、tty线路规程、tty驱动,其中tty规程的工作是以特殊的方式格式化从一个用户或者硬件接收到的数据,常采用一个协议转换的形式,如PPP、Bluetooth。   2.tty主要源文件关系及数据流向如下图: 特定的tty设备驱动的主体工作是填充tty_driv
[单片机]
ARM-Linux <font color='red'>S5PV210</font> UART<font color='red'>驱动</font>(2)---- 终端设备<font color='red'>驱动</font>
S5PV210(TQ210)学习笔记——输入子系统驱动
前面的文章简单的讲述了字符设备驱动程序的编写,用字符设备驱动的方式实现了按键驱动,但是,出了我们的自己编写的针对我们的这个驱动程序的应用程序之外,其他应用程序都无法接收我们这个驱动的键值输入,为了让所有应用程序都可以接收我们的按键驱动解析的键值,Linux内核定义了 输入子系统 的概念,也就是说,只要我们按照这个模型进行驱动开发,并为其提供必须的接口函数,那么,Linux内核就可以正常来获取我们的键盘值了。 输入子系统的原理分析强烈推荐观看韦东山老师的视频讲座,讲的非常清楚,我这里是按照输入子系统的方式实现的按键驱动,下面是源码,放在这里做个备份: #include linux/types.h #include linux
[单片机]
S5PV210(TQ210)学习笔记——Nand flash驱动编写
跟裸机程序一样,S5PV210的Nand flash模块跟S3C2440的Nand flash模块非常相似,如果不引入ECC,驱动程序的编写也非常简单,具体的分析及编写过程强烈推荐观看韦东山老师的视频教程,我是使用的Linux-3.8.6(Linux-3.8.3也一样)内核,驱动的API函数有些变化,不过原理是相通的,稍微看一下内核源码并参考下其他平台的相关代码就可以自己写出Nand flash驱动了,下面是Nand flash驱动的源码,没有启用ECC,当然,你也可以改成软件ECC,但是我的觉得既然软件ECC不如HWECC快,我就采用硬件ECC吧,我会在下篇文章中加入HWECC。 #include linux/module.h
[单片机]
基于s5pv210嵌入式linux系统sqlite3数据库移植
1、下载源码 http://www.sqlite.org/download.html 最新源码为3080100 2、解压 tar xvf XXXXX 3、配置编译环境 运行 ./configure –host=你的交叉编译工具的前缀 –prefix=你想编译安装的位置 我的host为arm-none-linux-gnueabi,prefix为/home/linux/sqlit3-arm 运行后会生成Makefile文件。 4、编译并安装 编译:make 安装:make install 安装完成后会在你设定的目录下生成安装好的文件: bin、include、lib、share bin:为编译完成的sqlite3可执行文件
[单片机]
基于<font color='red'>s5pv210</font>嵌入式linux系统sqlite3数据库移植
S5PV210的开发与学习:2.2 UBOOT学习笔记(零距离初体验uboot)
《2.uboot和系统移植-第3部分-2.3.零距离初体验uboot》 -------------------------------------------------------- 欢迎访问《朱老师物联网大讲堂》官方网站 www.zhulaoshi.org 以获取本课程更多信息 -------------------------------------------------------- 第一部分、章节目录 2.3.1_2.X210官方uboot配置编译实践 2.3.3.uboot的源码目录分析1 2.3.4.uboot的源码目录分析2 2.3.5.uboot的源码目录分析3 2.3.6.SourceInsight的基本使用
[单片机]
(七)u-boot2013.01.01 for s5pv210:《u-boot启动流程》
1.关于启动流程 1.1 启动阶段分为3个,bl0,bl1,bl2。下面只是就功能方面对它们做说明,实际设计的时候,也许会对其具体功能做出调整,也就是说,这几个阶段的划分是就功能而言的,不能看得太死。 bl0:出厂的时候就固化在irom中一段代码,主要负责拷贝8kb的bl1到s5pv210的一个96kb大小内部sram(Internal SRAM)中运行。值得注意的是s5pv210的Internal SRAM支持的bl1的大小可以达到16kb,容量的扩增是为了适应bootloder变得越来复杂而做的。虽然如此,但目前我们制作出来的bl1的大小仍然可以保持在8kb以内,同样能满足需求。 bl1:u-boot的前8kb代
[单片机]
(七)u-boot2013.01.01 for <font color='red'>s5pv210</font>:《u-boot启动流程》
s5pv210 uboot-2012-10移植(二) 之能够启动进入控制台
这次我们将从官网下载的最新uboot-2012-10移植到s5pv210开发板上,让其进入控制台,效果如下: 首先,我暂时没采用内核的SPL,这个将在后面给补上,这里的BL1是我自己参考资料写的,我用的是TQ210开发板,内存1G,对于不同的开发板,需要重新配置memory和修改uboot在内存里的地址,也就是CONFIG_SYS_TEXT_BASE。我的BL1代码在这里下载。 一、添加smdkv210单板 1.cp -a board/samsung/smdkc100 board/samsung/smdkv210 2.cp include/configs/smdkc100.h include/configs/smd
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved