【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)
最新文章
- asp.net 生成 excel导出保存时, 解决迅雷下载aspx页面问题
- 修改Android系统字号(二)
- highcharts 柱状图动态设置数据应用实例
- cocos js响应过程
- Android - 服务器json数据交互.
- Notepad++插件之FingerText
- ajax动态加入的元素不被jquerymobile渲染问题
- [C#基础] 类
- Golang 探索对Goroutine的控制方法
- alpha-咸鱼冲刺day4
- Cleartext HTTP traffic to xxx not permitted解决办法
- ViewPager + TabLayout + Fragment + MediaPlayer的使用
- 【C#】wpf中的xmlns命名空间为什么是一个网址,代表了什么意思(转载)
- elk-准备(一)
- 给rm命令设置别名防止误操作
- 解决Sublime Text 3中文显示乱码问题(转)
- linux:帮助命令help、man、info
- python3模块: json &; pickle
- WPF 控件回车移动焦点
- 【云计算】jenkins,docker,mesos,marathon,k8s相关资料
热门文章
- 在python3下使用requests,xpath,urllib爬取不得姐网站相关视频爬虫源代码
- python套接字编程基础
- 附005.Docker Compose文件详解
- mysql5.7一键安装脚本
- js数据结构之hash散列的详细实现方法
- Android应用开发-数据存储和界面展现(二)
- FastDFS_v4.06安装简记
- 潭州课堂25班:Ph201805201 爬虫基础 第十三课 cookie (课堂笔记)
- 潭州课堂25班:Ph201805201 python 模块json,os 第六课 (课堂笔记)
- struts2中的session、request 、和action往页面中传值的方法