实验六LED 控制实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六LED 控制实验
一、实验目的
通过实验学习如何将一个驱动添加到Kconfig,编译到内核;
通过实验掌握在Linux 下驱动程序的编写方法。
二、实验设备
硬件:EduKit-IV 嵌入式教学实验平台、Mini2410 核心子板、PC 机;
软件:Windows 2000/NT/XP、Ubuntu 8.04、其他嵌入式软件包。
三、实验内容
编写EduKit-IV 实验箱Linux 操作系统下LED 灯的应用程序。
编写 EduKit-IV 实验箱Linux 操作系统下LED 灯的驱动;
实验步骤:
下面介绍如何将一个驱动添加到内核中,并且在配置选项中能够通过menuconfig 配置内核时选择该驱动:
1)单击菜单应用程序->附件->终端打开终端,在终端中输入以下命令设置开发所需的环境变量。
$ source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh
$ source /usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/path.sh
2)将实验目录$SIMPLEDIR/8.1-led_test/driver 下的eduk4-led.c 复制到目录内核目录$KERNELDIR/drivers/char 下。
3)修改$KERNELDIR/drivers/char 目录下的Kconfig 文件,在文件的末尾按照如下内容修改并保存:
….
config MMTIMER
tristate "MMTIMER Memory mapped RTC for SGI Altix"
depends on IA64_GENERIC || IA64_SGI_SN2
default y
help
The mmtimer device allows direct userspace access to the
Altix system timer.
config EDUKIT4_LED
tristate "Edukit4 Led"
source "drivers/char/tpm/Kconfig"
endmenu
这样当make menuconfig 时,将会出现Edukit4 Led 选项。
4)修改$KERNELDIR/drivers/char 目录下的Makefile 文档,在文件的适当位置按照如下内容修改并保存:
….
obj-$(CONFIG_HANGCHECK_TIMER) += hangcheck-timer.o
obj-$(CONFIG_TCG_TPM) += tpm/
obj-$(CONFIG_EDUKIT4_LED) += eduk4-led.o
11
# Files generated that shall be removed upon make clean
….
5)单击菜单应用程序->附件->终端打开终端,在终端命令行输入以下命令配置裁剪内核。$ cd $KERNELDIR
$ make menuconfig
稍后将弹出以下菜单:
图8-1-6 make menuconfig 后弹出的菜单
我们选择出厂提供的配置文件,选择Load an Alternate Configuration File,将弹出配置文件选择对话框,在文本框中输入配置文件config-eduk4,如下图,选择“OK”按回车键完成配置文件的选择:
图8-1-7 出厂默认配置文件
6)完成配置文件的选择后,菜单将进入到初始界面,接下来将根据下面的步骤来完成对LED 驱动的支持,通过计算机键盘上下键选择Device Drivers 并按回车,将出现以下菜单:
图8-1-8 选择Device Drivers 后的菜单
按上下键选择Character devices 并按回车,将出现以下菜单:
图8-1-9 选择Character devices 后菜单
按上下键选择Edukit4 Led 并按y 键,前面的<>内将有*号,表明选中Led 驱动,如下图:
图8-1-10 选择Led 驱动
按左右键选择Exit 回到上一级菜单,依次,当最后一次选择Exit 时,会弹出以下对话框提示是否保存配置:
图8-1-11 保存配置
直接选择“Yes”回车,配置完成。
7)执行以下命令编译内核:
$ make
编译完成之后将在路径$KERNELDIR/arch/arm/boot 下生成zImage 镜象,同时也会自动拷贝到$EXPDIR 目录下。按照前面章节的介绍将该镜象下载到flash 中。
8)将路径切换到$SIMPLEDIR/8.1-led_test/app 下,执行以下命令编译应用程序:
$ cd $SIMPLEDIR/8.1-led_test/app
$ make
$ make install
$ make clean
在该目录下将生成可执行文件led_test,并自动将该文件拷贝到/home/example/tftp/目录下。9)准备好EduKit-IV + Mini2410-IV 平台,注意Mini2410-IV 板上的跳线为闭合状态,且确保Mini2410-IV 板载Linux 映像为实验映像(请参照下册开篇:实验环境构建),连接好交叉串口线于板载COM2 和PC 端串口,连接好交叉网线与板载主板网卡接口和PC 端网口。10)在终端执行以下命令打开minicom 串口终端:
$ sudo minicom
11)给实验平台加电,进入Linux 系统,可以看到minicom 终端的启动打印信息。
12)启动完成后,在minicom 下执行以下命令将led_test 下载到tmp 目录下:
# cd /tmp
# tftp -g 192.192.192.190 -r./led_test -l./led_test
附:请用交叉网线连接主机和实验平台,注意实验平台上的网卡是打开的,并核对主机网卡的ip 地址是否为192.192.192.190,设置方法可参照上册第六章节6.5。
13)给led_test 添加可执行权限。
# chmod 777 led_test
14)运行led_test。