您的位置:首页 > 运维架构 > Linux

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

2014-08-05 23:13 239 查看
   本笔记,是介绍嵌入式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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: