mini2440:最简单的嵌入式linux驱动程序模块,嵌入式linux 内核驱动程序模块编译及其操作流程...

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

step 1:

编写一个运行于内核的驱动程序

随便写一个最简单的程序,并命名为 amwjie72.c

_______________________________________________________________

|

|     #include |     #include |

|     static int __init module_init(void)

|     {

|         printk("Hello,  module is installed !

");

|         return 0;

|     }

|

|     static void __exit module_cleanup(void)

|     {

|        printk("Good-bye,  module was removed!

");

|     }

|

|     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

|              [email protected]

|______________________________________________________________

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

你可能感兴趣的:(mini2440:最简单的嵌入式linux驱动程序模块,嵌入式linux 内核驱动程序模块编译及其操作流程...)