【Linux高级驱动】平台设备驱动机制的编程流程与编译进内核
【平台设备驱动机制的编程流程】

【如何将驱动静态的编译进内核镜像】
1.添加资源(dev-led.c)
1.1:一般来说,系统习惯上将资源放在arch/arm/plat-samsung/目录中
cp dev-led.c linux-2.6.35.5/arch/arm/plat-samsung
cp led.h linux-2.6.35.5/arch/arm/plat-samsung/include/plat
1.2:修改dev-led.c文件
.flags ,
.num_resources =ARRAY_SIZE(fsled_resource),
.resource =fsled_resource,
};
1.3:进入linux-2.6.35.5/arch/arm/plat-samsung/目录,修改其中的Makefile
vi Makefile
在其中添加如下代码
1.4:修改linux-2.6.35.5/arch/arm/plat-samsung/目录下的Kconfig
vi Kconfig
在其中添加如下代码
bool
help
Compile in platform device definitions for LED code
1.5:修改linux-2.6.35.5/arch/arm/mach-s5pc100/目录下的Kconfig
vi arch/arm/mach-s5pc100/Kconfig
bool "SMDKC100"
select CPU_S5PC100
select S3C_DEV_FB
select S3C_DEV_I2C1
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select S5PC100_SETUP_FB_24BPP
select S5PC100_SETUP_I2C1
select S5PC100_SETUP_SDHCI
select S3C_DEV_LED //新添加的代码
1.6 修改linux-2.6.35.5/arch/arm/mach-s5pc100/mach-smdkc100.c文件
vi arch/arm/mach-s5pc100/mach-smdkc100.c
修改下面的数组:
&s3c_device_i2c0,
&s3c_device_i2c1,
&s3c_device_fb,
&s3c_device_hsmmc0,
&s3c_device_hsmmc1,
&s3c_device_hsmmc2,
&smdkc100_lcd_powerdev,
&s5pc100_device_iis0,
&s5pc100_device_ac97,
#ifdef CONFIG_DM9000
&s5pc100_device_dm9000,
#endif
&fsled_device, //添加的选项,让系统完成初始化
};
1.7 修改linux-2.6.35.5/arch/arm/plat-samsung/include/plat/devs.h
vi arch/arm/plat-samsung/include/plat/devs.h
在其中添加如下代码:
2.添加驱动(led_drv.c)
2.1 cp led_drv.c linux-2.6.35.5/drivers/leds/目录
2.2 修改linux-2.6.35.5/drivers/leds/的Makefile
vi linux-2.6.35.5/drivers/leds/Makefile
在其中添加如下代码:
2.3 修改linux-2.6.35.5/drivers/leds/的Kconfig
vi linux-2.6.35.5/drivers/leds/Kconfig
在其中添加如下代码:
tristate "LED Support for farsight"
depends on ARCH_S5PC100
help
this is a led drv by farsight
2.4 配置选项
make menuconfig
Device Drivers --->
[*] LED Support --->
<*> LED Support for farsight
3.编译内核
make zImage
@成鹏致远
(email:wwwlllll@126.com)
(qq:552158509)
【Linux高级驱动】平台设备驱动机制的编程流程与编译进内核的更多相关文章
- Linux Platform devices 平台设备驱动
设备总线驱动模型:http://blog.csdn.net/lizuobin2/article/details/51570196 本文主要参考:http://www.wowotech.net/devi ...
- 字符设备驱动、平台设备驱动、设备驱动模型、sysfs的比较和关联
转载自:http://www.kancloud.cn/yueqian_scut/emlinux/106829 学习Linux设备驱动开发的过程中自然会遇到字符设备驱动.平台设备驱动.设备驱动模型和sy ...
- [kernel]字符设备驱动、平台设备驱动、设备驱动模型、sysfs几者之间的比较和关联
转自:http://www.2cto.com/kf/201510/444943.html Linux驱动开发经验总结,绝对干货! 学习Linux设备驱动开发的过程中自然会遇到字符设备驱动.平台设备驱动 ...
- 【Linux高级驱动】linux设备驱动模型之平台设备驱动机制
[1:引言: linux字符设备驱动的基本编程流程] 1.实现模块加载函数 a.申请主设备号 register_chrdev(major,name,file_operations); b.创 ...
- Linux中总线设备驱动模型及平台设备驱动实例
本文将简要地介绍Linux总线设备驱动模型及其实现方式,并不会过多地涉及其在内核中的具体实现,最后,本文将会以平台总线为例介绍设备和驱动程序的实现过程. 目录: 一.总线设备驱动模型总体介绍及其实现方 ...
- 嵌入式Linux驱动学习之路(十七)驱动程序分层分离概念-平台设备驱动
平台设备驱动: 包含BUS(总线).DEVICE.DRIVER. DEVICE:硬件相关的代码 DRIVER:比较稳定的代码 BUS有一个driver链表和device链表. ①把device放入bu ...
- Linux驱动之平台设备驱动模型简析(驱动分离分层概念的建立)
Linux设备模型的目的:为内核建立一个统一的设备模型,从而有一个对系统结构的一般性抽象描述.换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要 ...
- Linux与Windows的设备驱动模型对比
Linux与Windows的设备驱动模型对比 名词缩写: API 应用程序接口(Application Program Interface ) ABI 应用系统二进制接口(Application Bi ...
- Linux学习 : 总线-设备-驱动模型
platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则为platform_driver.Linux 2.6的设备驱动模型中,把I2C.RTC.LCD等都归纳为pl ...
随机推荐
- 通过pyqt5实现俄罗斯方块游戏例子
# *_* coding:utf-8 *_* # 开发团队:中国软件开发团队# 开发人员:Administrator# 开发时间:2019/3/17 2:13# 文件名称:RussiaBoard# 开 ...
- POJ-1456 Supermarket 销售商品【贪心】+【并查集】
题目链接:http://poj.org/problem?id=1456 题目大意: 有N件商品,分别给出商品的价值和销售的最后期限,只要在最后日期之前销售处,就能得到相应的利润,并且销售该商品需要1天 ...
- 聊聊RPC原理二
之前写了一篇关于RPC的文章,浏览量十分感人:),但是感觉文章写得有些粗,觉得很多细节没有讲出来,这次把里边的细节再次补充和说明. 这次主要说的内容分为: 1. RPC的主要结构图. 2.分析结构图的 ...
- Java开发人员必须掌握的两个Linux魔法工具(四)
子曰:"工欲善其事,必先利其器." 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 学习应该是快乐的,在这个乐园中我努力让自己能用简洁易懂(搞笑有趣) ...
- SQLite中的SELECT子句使用表达式
SQLite中的SELECT子句使用表达式 在SELECT语句中可以只有SELECT子句不写FROM子句.这些表达式列表将被单次计算,生成一行,然后组成工作表.这对于测试和判断独立表达式很有用.例如, ...
- HDU.4352.XHXJ's LIS(数位DP 状压 LIS)
题目链接 \(Description\) 求\([l,r]\)中有多少个数,满足把这个数的每一位从高位到低位写下来,其LIS长度为\(k\). \(Solution\) 数位DP. 至于怎么求LIS, ...
- AJAX传输——以XML文件传输为例
此文档解决以下问题: 一.responseText获取数据 1.AJAX异步传输,get请求方式/post请求方式,输出全部xml数据 二.responseXML获取数据 2.AJAX异步传输,get ...
- ubuntu jdk 安装
sudo add-apt-repository ppa:linuxuprising/java sudo apt-get update sudo apt-get install oracle-java1 ...
- LeetCode全文解锁 √
分享一波大牛整理leetcode,方便整理思路 可以点击下载
- Linux kernel engineer--trace
http://oliveryang.net/ https://github.com/yangoliver