最新公告:

联系我们

 深圳市华宇晶电子科技有限公司

http://huayujing.com

http://huayujing.cn

深圳市南山区高新技术产业园中区科文路2号东一楼

邮箱:hyj@hyjic.com

地铁:深大站A3出口。深圳科技园广场50米。

高小姐0755-26001683  26008661  

手机:18123979133  

郭小姐:18138851533

传真:26001683

QQ: 3147194936 

技术资料

首页>技术资料

如何在嵌入式LINUX中增加自己的设备驱动程序

更新时间:2016-04-25  点击率:3981
驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于uClinux不支持模块动态加载,而且嵌入式LINUX不能够象桌面LINUX那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而这里只介绍将设备驱动程序静态编译进uClinux内核的方法。
下面以UCLINUX为例,介绍在一个以模块方式出现的驱动程序test.c基础之上,将其编译进内核的一系列步骤:
 
1 改动test.c源带代码 
第一步,将原来的:
#include
#include
char kernel_version[]=UTS_RELEASE;
改动为:
#ifdef MODULE
#include
#include
char kernel_version[]=UTS_RELEASE;
#else
#define MOD_INC_USE_COUNT
#define MOD_DEC_USE_COUNT
#endif
第二步,新建函数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/linux/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 depmake linuxmake linux.textmake linux.datacat 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了。
下一篇: DSP芯片解密实例技术解析 上一篇: WIN32编程示例:嵌入式软件开发程序入门

深圳市华宇晶电子科技有限公司

地址:深圳市南山区高新技术产业园中区科文路中钢大厦东
邮箱:hyj@hyjic.com
地铁:深大站A3出口。深圳科技园广场50米。
联系人:李小姐 易小姐
联系电话:0755-26001683 26008661
手机:18123979133 18138851533

Copyright 2015 深圳市华宇晶电子科技有限公司 All Rights Reserved. 最高法院:反向工程法律声明 公司团队
主营业务:芯片解密,IC解密,单片机解密,样机克隆,芯片破解等一系列服务 粤ICP备15080534号-2