嵌入式linux 内核驱动程序模块编译及其操作流程


   本笔记,是介绍嵌入式linux的驱动程序模块不同于运行于用户的应用程序,现在介绍的是运行于内核态的驱动程序的编译及运行流程,不介绍如何编写。此程序的运行,基于mini2440开发板

step 1:

      编写一个运行于内核的驱动程序
      随便写一个最简单的程序,并命名为 amwjie72.c
_______________________________________________________________
|
|     #include <linux/kernel.h>
|     #include <linux/module.h>
|
|     static int __init module_init(void)
|     {
|         printk("Hello,  module is installed !\n");
|         return 0;
|     }
|
|     static void __exit module_cleanup(void)
|     {
|        printk("Good-bye,  module was removed!\n");
|     }
|
|     module_init(module_init);
|     module_exit(module_cleanup);
|     MODULE_LICENSE("GPL");
|______________________________________________________________


step 2:
      把编写的 amwjie72.c 拷贝到内核根目录
      /drivers/char下


step 3:
      修改  char  目录下的 Kconfig 文件,使其在配置内核的时候
      能进行选择。
 ______________________________________________________________ 
|        
|    config AMWJIE72
|           tristate "first module"
|           help
|             for more information,please sent E-mail to 
|              amwjie72@163.com
|______________________________________________________________


step 4:
      回到linux内核的根目录下,执行
      make menuconfig

      ---> Device Drivers ---> Character devices 
         --->first module
 
      选为 M 后。再保存退出
      
     【注】 此步,必须在根目录下有一个内核的配置文件.

step 5:
      在linux内核根目录下,/drivers/char  打开Makefile 
      加入如下:
_______________________________________________________________
|
|   obj-$(AMWJIE72)   +=amwjie72.o
|______________________________________________________________

     把内核配置信息与真正的源代码联系起来


step 6:
      在内核根目录下
      执行
      make modules
      在内核根目录下/drivers/char 下会生成amwjie72.ko模块文件

      此文件,可下载到开发板上运行
 
      【注】:1> 在修改Kconfig 文件时 AMWJIE72 可随意命名,
                 但要与Makefile文件里的括号内一致,以此建立联系
              
              2> amwjie72.ko 文件下到开发板要想运行起来,还必须
                 要所用内核包括对该模块文件的支持,即要将内核
                 编译后,再下载进去。

step 7:
      编译内核                   
      在内核根目录下执行
      make zImage
      在内核根目录下/arch/arm/boot 下会生成zImage文件

step 8:
      将 zImage 与 amwjie72.ko 拷贝到 windows 环境下

step 9:
      将 开发板 置于 NOR FLASH 启动方式
      进入BIOS 界面后,选择 [k] 功能,用 DNW 来传送内核(zImage) 
      BIOS 会自动烧写内核到Nand Flash 分区中

step 10:
      用 rz 命令,并用串口发送 amwjie72.ko文件到开发板

step 11:
      用 chmod 命令来改变文件权限
      执行
      chmod +x amwjie72.ko


step 12:
      再将模块文件复制到/lib/modules/2.6.29.4-FriendlyARM目录

step 13
      使用如下两个命令来装载和卸载模块
   
      1>: modprobe amwjie72 
      2>: rmmod    amwjie72
    
      【注】 如上两命令,不再需要加“.ko” 尾缀了


       【[注]】:
                如要再修改驱动程序模块,无须再次编译内核
                只要修改了驱动程序后。再重复step 6,10,11,12

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值