实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx

上传人:b****2 文档编号:2459116 上传时间:2022-10-29 格式:DOCX 页数:10 大小:819.55KB
下载 相关 举报
实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx_第1页
第1页 / 共10页
实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx_第2页
第2页 / 共10页
实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx_第3页
第3页 / 共10页
实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx_第4页
第4页 / 共10页
实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx

《实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx》由会员分享,可在线阅读,更多相关《实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx(10页珍藏版)》请在冰豆网上搜索。

实验四 IO接口LED灯驱动的静态编译 刘绍康 310127 电子信息工程1201.docx

实验四IO接口LED灯驱动的静态编译刘绍康310127电子信息工程1201

实验四I/O接口---LED灯驱动的静态编译

刘绍康

3120210127

电子信息工程1201

一、实验目的

通过实验学习如何将一个驱动添加到Kconfig,编译到内核;

通过实验掌握在Linux下驱动程序的编写方法。

通过实验掌握在Linux下如何将驱动静态编译进内核的方法

二、实验环境

硬件:

TQ2440开发板、PC机;

软件:

WindowsXP、CentOS、Linux2.6.30.4内核、EABI4.3.3工具、LED源代码

三、完成实验时间:

90分钟

四、实验原理:

驱动程序加载进内核的方法有两种:

静态编译进内核、动态加载进内核;

所谓静态编译进内核:

驱动的静态加载指的是直接把驱动程序编译进内核,在系统启动后可直接调用,不需要任何加载卸载命令。

静态编译的主要步骤:

●编写驱动程序源代码

●修改内核目录下的configure文件---添加某驱动选项

●修改内核目录下的makefile文件---添加编译该驱动设备的目标文件

●进行内核配置---加入该设备模块的支持

●编译内核

●下载内核到开发板

●编译测试程序

●准备好开发板

●下载测试程序到开发板

●运行测试程序

五、实验步骤

(一)代码准备

1.实验所需要的源代码的路径:

●内核源代码:

linux2.6.30.4.tar.gz在/mnt/hgfs/D/TQ2440/Linux源码/linux2.6.30.4/linux2.6.30.4.tar.gz

●LED灯驱动源代码:

EmbedSky_gpio.c在内核目录解压后(即linux2.6.30.4/drivers/char下)

●LED灯测试程序源代码:

测试程序leds_test.c在/mnt/hgfs/D/app/leds/(如未发现请另向教师咨询)

(二)静态编译

2.修改$linux-2.6.30.4/drivers/char目录下的Kconfig文件,在图中黑底位置加入如下内容修改并保存;

这样当makemenuconfig时,将会出现EmbedSkySKY2440/TQ2440BoardGPIOTest

(ControlLED)选项;

3.修改$linux-2.6.30.4/drivers/char目录下的Makefile文档,在文件的适当位置按照如下内容修改并保存:

4.终端命令行输入以下命令配置裁剪内核:

[fjut@fjut-virtual-machine~]#su

Password:

[root@fjut-virtual-machine~]#cd/opt/EmbedSky/linux2.6.30.4(前提是你已经将linux2.6.30.4.tar.gz解压到/目录下了)

[root@fjut-virtual-machinelinux2.6.30.4]#makemenuconfig(进行内核剪裁)

稍后将弹出以下菜单:

选择LoadanAlternateConfigurationFile,将弹出配置文件选择对话框,在文本框中输入配置文件config_EmbedSky_A70_256MB,如下图,选择“OK”按回车键完成配置文件的选择:

5.完成配置文件的选择后,菜单将进入到初始界面,接下来将根据下面的步骤来完成对LED驱动的支持,通过计算机键盘上下键选择DeviceDrivers并按回车,将出现以下菜单:

6.按上下键选择Characterdevices并按回车,将出现以下菜单:

7.按上下键选择EmbedSkySKY2440/TQ2440BoardGPIOTest(ControlLED)并按y键,前面的<>内将有*号,表明选中Led驱动,如下图:

按左右键选择Exit回到上一级菜单,依次,当最后一次选择Exit时,会弹出以下对话框提示是否保存配置:

8..执行以下命令编译内核

[root@fjut-virtual-machinelinux2.6.30.4]#makezImage

编译完成之后将在路径$linux-2.6.30.4/arch/arm/boot下生成zImage镜象,请按照实验三所述的方法将镜像文件烧写到开发板上。

到此,驱动GPIO模块已经静态编译进内核,开发板上电后所运行的内核就支持LED模块。

(三)测试阶段

1.将驱动测试程序的源代码编译成执行文件

[root@fjut-virtual-machinelinux2.6.30.4]#cp/mnt/hgfs/D/app/leds/home/fjut将共享目录下的源代码复制到用户主目录下

[root@fjut-virtual-machinelinux2.6.30.4]#cd/home/fjut/app/leds进入到测试程序源代码目录中

[root@fjut-virtual-machine/home/fjut/app/leds]#make编译生成执行文件leds_test

2.将该执行文件传送到开发板上:

利用minicom或者超级终端即可

3.杀死开发板自动运行的LED流水灯进程

在开发板终端[root@Embed/]#ps查找当前正在运行的流水灯led_player的进程号

如486rootled_player

[root@Embed/]#kill-9486杀死486号进程,关闭LED流水灯

4.运行执行文件

[root@Embed/]#./leds_test11点亮第1盏灯

1、修改$linux-2.6.30.4/drivers/char目录下的Kconfig文件,并保存

 

2.makemenuconfig

3.选择LoadanAlternateConfigurationFile,将弹出配置文件选择对话框,在文本框中输入配置文件config_Embe4.通过计算机键盘上下键选择DeviceDrivers并按回车,将出现以下菜单

5.按上下键选择Characterdevices并按回车,将出现以下菜单:

 

6、按上下键选择EmbedSkySKY2440/TQ2440BoardGPIOTest(ControlLED)并按y键,前面的<>内将有*号,表明选中Led驱动

 

7编译内核(zImage)

 

9.编译测试程序,发到开发板上

10.将驱动文件名改为一致:

 

11.用DNW把内核烧到开发板上

 

12.测试程序使12灯亮其他灯灭

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1