linux系统LED驱动的移植 日志

LED驱动的移植记录


 目的
    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  
    cp  fsc100_led_test   /nfs/rootfs
    
    //----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               //运行测试程序并观察现象   4个LED会闪烁
    
    //----2、    动态编译LED驱动
    配置内核时按“空格”选择,配置完成后保存退出
    $ make menuconfig
        Device Drivers  --->  
            Character devices  --->  
                <M> FSC100  LED  Device  Support
    
    保存退出,重新编译后把zImage拷贝到tftpboot下,把驱动模块拷贝到/source/rootfs下
    $ make  zImage  modules
    $ cp  arch/arm/boot/zImage  /tftpboot
    $ cp  drivers/char/fsc100_led_drv.ko  /nfs/rootfs
    
    重新启动开发板,linux运行起来后在终端下操作
    
    # mknod  /dev/led  c  252  0  //创建设备节点
    #insmod  fsc100_led_drv.ko    //加载LED驱动模块
    # ./fsc100_led_test           //运行测试程序并观察现象

 

Guess you like

Origin blog.csdn.net/ggggyj/article/details/86242206