Chinaunix首页 | 论坛 | 博客
  • 博客访问: 699013
  • 博文数量: 152
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1793
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 12:26
个人简介

相信自己,只有不想做的,没有做不到的。

文章分类

全部博文(152)

文章存档

2021年(1)

2015年(2)

2014年(74)

2013年(75)

分类: LINUX

2013-11-07 22:50:41

实验目的】

1.     驱动程序的静态编译和动态编译

2.     应用程序如何打开/操作设备

【实验环境】

?          主机:ubuntu 10.10发行版

?          目标机:FS_S5PC100平台

?          交叉编译工具:arm-cortex_a8-linux-gnueabi-gcc

【实验步骤】

?          修改内核配置

$ make menuconfig

Kernel Features  --->

       [*] Use the ARM EABI to compile the kernel

       [*]   Allow old ABI binaries to run with this kernel (EXPERIMENTAL)

 

?           添加驱动文件

将实验代码LED_TEST/fsc100_led_drv.c拷贝到drivers/char下

 

?           修改drivers/char/Kconfig

在menu "Character devices"下面

添加如下内容:

config  FSC100_LED

     tristate "FSC100  LED  Device Support"

       depends  on  ARCH_S5PC100

           help

     support  led  device  on  FS_S5PC100  develop  board

 

?           修改drivers/char/Makefile

在 obj-$(CONFIG_HANGCHECK_TIMER) += hangcheck-timer.o 下一行添加:

obj-$(CONFIG_FSC100_LED) += fsc100_led_drv.o

 

?           交叉编译测试程序fsc100_led_test.c

arm-cortex_a8-linux-gnueabi-gcc  fsc100_led_test.c  –o  fsc100_led_test 

sudo  cp  fsc100_led_test   /source/rootfs

 

?           设置u-boot环境变量

# setenv  serverip 192.168.1.100

# setenv  ipaddr 192.168.1.200

# setenv  bootcmd  tftp  20008000  zImage\; go  20008000

# setenv  bootargs  root=nfs  nfsroot=192.168.1.100:/source/rootfs  console=ttySAC0,115200 init=/linuxrc  ip=192.168.1.200

# saveenv

 

1、 静态编译LED驱动

?         配置内核时按“空格”选择,配置完成后保存退出

$ make menuconfig

       Device Drivers  ---> 

              Character devices  ---> 

                     <*> FSC100  LED  Device Support

 

?         保存退出,重新编译后把zImage拷贝到tftpboot下

$ make  zImage

$ cp  arch/arm/boot/zImage  /tftpboot

 

重新启动开发板,加载内核并运行。在终端下执行下面操作

?         创建设备节点

# mknod  /dev/led  c  252  0

 

?         运行测试程序并观察现象

# ./fsc100_led_test

 

2、 动态编译LED驱动

?         配置内核时按“空格”选择,配置完成后保存退出

$ make menuconfig

       Device Drivers  ---> 

              Character devices  ---> 

                     FSC100  LED  Device  Support

 

?         保存退出,重新编译后把zImage拷贝到tftpboot下,把驱动模块拷贝到/source/rootfs下

$ make  zImage  modules

$ cp  arch/arm/boot/zImage  /tftpboot

$ cp  drivers/char/fsc100_led_drv.ko  /source/rootfs

 

重新启动开发板,linux运行起来后在终端下操作

?         创建设备节点

# mknod  /dev/led  c  252  0

 

?         加载LED驱动模块

#insmod  fsc100_led_drv.ko

 

?         运行测试程序并观察现象

# ./fsc100_led_test

阅读(551) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~