Led驱动代码编译与加载

一.  简介

上一篇文章实现了 led灯 IO的 初始化的代码,文章地址如下:

Led驱动实验之Led灯初始化-CSDN博客

本文对上一篇编写的驱动代码进行编译,并在开发板上加载 Led驱动模块。

二.  Led 驱动代码编译

打开 ubuntu系统下,进入 2_led工程根目录下,编译代码:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$ make
make -C /home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga M=/home/wangtian/zhengdian_Linux/Linux_Drivers/2_led modules
make[1]: 进入目录“/home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga”
  CC [M]  /home/wangtian/zhengdian_Linux/Linux_Drivers/2_led/led.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/wangtian/zhengdian_Linux/Linux_Drivers/2_led/led.mod.o
  LD [M]  /home/wangtian/zhengdian_Linux/Linux_Drivers/2_led/led.ko
make[1]: 离开目录“/home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga”
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$ 

输入 "ls" 命令可以查看是否生成 led.ko驱动文件。

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$ ls
led.c               led.ko     led.mod.o  Makefile       Module.symvers
led.code-workspace  led.mod.c  led.o      modules.order
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$ 

将 led.ko驱动文件拷贝到 开发板根文件系统 /lib/modules/4.1.15/ 目录下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$ sudo cp -f led.ko /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ 

三.  Led 驱动模块加载

开发板上电后,进入根文件系统 /lib/modules/4.1.15/目录下,查看是否存在 拷贝过来的 led.ko驱动文件:

/ # cd /lib/modules/4.1.15/

查看 led.ko:

/lib/modules/4.1.15 # ls -l
total 12
-rw-r--r--    1 0        0             5414 Dec 24  2023 led.ko
-rw-r--r--    1 0        0                0 Dec 24  2023 modules.alias
-rw-r--r--    1 0        0                8 Dec 24  2023 modules.dep
-rw-r--r--    1 0        0                0 Dec 24  2023 modules.symbols
/lib/modules/4.1.15 # 

加载 Led驱动模块

/lib/modules/4.1.15 # modprobe led.ko 
led_init!
/lib/modules/4.1.15 #

确定 Led驱动模块已加载成功:运行 "lsmod"命令或运行 "cat /proc/devcies"命令

使用 lsmod命令查看已加载的驱动模块:

/lib/modules/4.1.15 # lsmod
Module                  Size  Used by    Tainted: G  
led                     1356  0 
/lib/modules/4.1.15 # 

或者查看 /proc/devices目录下是否已存在 Led设备:

Led驱动代码编译与加载_第1张图片

这时候查看开发板上 Led灯 (红色灯)是否已亮。

Led驱动代码编译与加载_第2张图片

可以看出,我的开发板上的 红色灯已经亮,说明 Led驱动模块加载成功,也说明 Led的 IO初始化代码已经成功运行。

卸载 Led驱动模块

使用 "rmmod led.ko" 命令卸载驱动模块:

/lib/modules/4.1.15 # rmmod led.ko 
led_exit!
/lib/modules/4.1.15 # 

这时可以查看开发板上的 Led灯(红色灯)是否灭了:

Led驱动代码编译与加载_第3张图片

Led灯灭说明:卸载函数接口中,所加的 关闭 Led灯的代码可以成功运行。

下一篇文章完善 Led驱动代码。

你可能感兴趣的:(Linux驱动学习,arm开发,linux)