把设备驱动程序编译进嵌入式Linux内核

AK_47_Fihgt

AK_47_Fihgt

2016-01-29 17:39

把设备驱动程序编译进嵌入式Linux内核,把设备驱动程序编译进嵌入式Linux内核

  驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于uClinux不支持模块动态加载,而且嵌入式Linux不能够象桌面Linux那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而这里只介绍将设备驱动程序静态编译进uClinux内核的方法。

  下面以uClinux为例,介绍在一个以模块方式出现的驱动程序test.c基础之上,将其编译进内核的一系列步骤:

  (1) 改动test.c源带代码

  第一步,将原来的:

 #include
  #include
  char kernel_version[]=UTS_RELEASE;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/linux/)

  改动为:

 #ifdef MODULE
  #include
  #include
  char kernel_version[]=UTS_RELEASE;
  #else
  #define MOD_INC_USE_COUNT
  #define MOD_DEC_USE_COUNT
  #endif

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/linux/)

  第二步,新建函数int init_test(void)

  将设备注册写在此处:

 result=register_chrdev(254,"test",&test_fops);

  (2) 将test.c复制到/uclinux/linux/drivers/char目录下,并且在/uclinux/linux/drivers/char目录下mem.c中,int chr_dev_init( )函数中增加如下代码:

  #ifdef CONFIG_TESTDRIVE
  init_test();
  #endif

  (3) 在/uclinux/cinux/drivers/char目录下Makefile中增加如下代码:

 ifeq($(CONFIG_TESTDRIVE),y)
  L_OBJS+=test.o
  Endif

  (4) 在/uclinux/linux/arch/m68knommu目录下config.in中字符设备段里增加如下代码:

 bool 'support for testdrive' CONFIG_TESTDRIVE y

  (5) 运行make menuconfig(在menuconfig的字符设备选项里你可以看见我们刚刚添加的'support for testdrive'选项,并且已经被选中);make dep;make linux;make linux.text;make linux.data;cat linux.text linux.data linux.bin.

  (6) 在 /uClinux/romdisk/romdisk/dev/目录下创建设备:

  mknod test c 254 0

  并且在/uclinux/appsrc/下运行make,生成新的Romdisk.s19文件。

  到这里,在uClinux中增加设备驱动程序的工作可以说是完成了,只要将新的linux.bin与Romdisk.s19烧入目标板中,你就可以使用自己的新设备test了。

展开更多 50%)
分享

猜你喜欢

把设备驱动程序编译进嵌入式Linux内核

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
把设备驱动程序编译进嵌入式Linux内核

LINUX网络嵌入式设备

服务器
LINUX网络嵌入式设备

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何编写Linux设备驱动程序

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
如何编写Linux设备驱动程序

Linux系统上把PHP编译进Apache静态内核

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux系统上把PHP编译进Apache静态内核

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

linux内核模块和驱动程序的编写(2)

编程语言 网络编程
linux内核模块和驱动程序的编写(2)

为系统处理器编写Linux设备驱动程序

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
为系统处理器编写Linux设备驱动程序

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

实用技巧:DOS文件转换成UNIX文件格式

实用技巧:DOS文件转换成UNIX文件格式

深入理解和优化Windows XP启动

深入理解和优化Windows XP启动
下拉加载更多内容 ↓