第七章 LED将为我闪烁:控制发光二级管
LED驱动开发实验
如图所示,LED1~LED2 分别与GPC0_3、GPC0_4 相连,通过GPC0_3、GPC0_4 引脚的高低电平
来控制三极管的导通性,从而控制LED 的亮灭。
根据三极管的特性,当这几个引脚输出高电平时,集电极和发射极导通,发光二极管点亮;反之,发光二极管熄灭。通过控制GPC0CON 和GPC0DAT 来控制GPC0_3 和GPC0_4 对应的LED。
将【光盘:实验资料\3. Linux 操作系统移植部分\移植全新的Linux3.2 内核到开发平台\1 Linux 内核编译实验\移植好的内核】目录拷贝到共享目录下(此内核为移植好的内核,如果用户做完Linux 内核移植实验,可以使用自己的内核,按照实际情况修改路径)。将【光盘:实验资料\4. Linux 驱动部分\Linux3.2 Drivers】目录拷贝到共享目录下。
建立工作目录,拷贝源码
$ mkdir workdir/driver
$ cd ~/workdir/driver/
$ cp /mnt/hgfs/share/linux-3.2-FS210-V3.tar.bz2 ./
$ cp /mnt/hgfs/share/Linux3.2Drivers/ ./ -a
解压内核源码
$ tar xvf linux-3.2-FS210-V3.tar.bz2
编译内核源码
$ cd ~/workdir/driver/linux-3.2-FS210-V3
$ cp fs210_defconfig .config
$ make zImage
编译驱动源码
$ make
查看编译生成的ko 文件,并拷贝到nfs 文件系统目录中。
$ ls
$ cp fs210_led.ko /source/rootfs/
执行 make led_test 命令编译测试文件。
$ make led_test
启动开发板,加载驱动。
# insmod fs210_led.ko
# mknod /dev/led c 250 0
# chmod 777 /dev/led
# ./led_test
可以看到LED1 间隔闪烁。