您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

如安在嵌入式LINUX中增长本身的配置驱动步调

发布日期:2011-04-23


    驱动步调的利用可以根据两种要领编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于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 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了。