文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>uclinux驱动的静态编译

uclinux驱动的静态编译

时间:2006-07-15  来源:luanjian

一直都有做一个自己的blog的想法,但是一直没有静下心来,好好写写,今天就用最常用的文字编辑工具word,来记录一些点点嘀嘀。

前段时间把以前买的开发板拿来完,就记录一下我在s3c44b0上静态编译驱动的经历吧。基本是照着一个网友的方法做了下来,根据我的44b0的板子稍做改动。

   假设我们需要添加一个名为led的字符型设备驱动,主设备号为220,次设备号为0(只有一个从设备)。静态加载的步骤如下:

1、编写自己的驱动程序源文件mydrv.c,并放在\uClinux-dist\linux-2.4.x\drivers\char下面。一个典型的字符型驱动的最后一般包括如下内容:
static  int led_init(void)
{
    int ret;
    ret = register_chrdev(mydrv_major, " mydrv ", &my_fops);
    if(ret == 0) printk("register_chrdev succeed!");
    else         printk("register_chrdev fail!\n");
        return 0;
}

static __exit void led _cleanup(void)
{
     unregister_chrdev(led _major, " mydrv ");
     printk("register_chrdev succeed!\n");
     return ;
}
module_init(led _init);
module_exit (led _cleanup);
函数led_init的任务是注册设备,led_cleanup的任务是取消注册。  
2.在\uClinux-dist\vendors\Samsung\44B0\Makefile中添加如下语句(以刚才的设备为例,实际添加时当然要根据你自己的设备名称和设备号来添加):
   led,  c, 220, 0
   这句话的目的是在内核中创建一个与你的驱动程序对应的设备节点。

3.在firmware\uClinux-Samsung-2500\linux-2.4.x\drivers\char\Makefile
中添加如下语句:
    obj-$(CONFIG_CHAR_LED) +=led.o
    这句话的目的是根据编译选项$(CONFIG_CHAR_LED)来决定是否要添加该设备驱动。

4.在\uClinux-dist\linux-2.4.x\drivers\char\config.in
中添加:
if [“$CONFIG_ARCH_SAMSUNG”=”y”]; then
bool '  ,MYDRV driver module ' CONFIG_CHAR_MYDRV y
这句话的目的是在运行make menuconfig时产生与你的设备对应的编译选项。

5.运行make menuconfig,应该能看到你自己的设备的选项,选中就可以了。

6.编译内核,下载,运行自己的测试程序。

由于编译内核非常慢,所以自己先写一个Makefile编译驱动,没有错误静态编译到内核中运行。我的Makefile如下,

CC = /usr/local/bin/arm-elf-gcc

LD = /usr/local/bin/arm-elf-ld

CFLAGS = -D__KERNEL__ -D__linux__ -DNO_MM -fno-builtin -I/home/qianwei/uClinux-dist/linux-2.4.x/include/linux -I/home/qianwei/uClinux-dist/linux-2.4.x/include -Wall -Os -mapcs -fno-strict-aliasing -fno-common  -pipe -mapcs-32 -mshort-load-bytes -msoft-float  -DMODULE

led_driver.o: led_driver.c

       $(CC) $(CFLAGS) -c $^ -o $@

.PHONY: clean

clean:

       -rm -f *.o

distclean:

       @make clean

       rm -f tags *~

相关阅读 更多 +
排行榜 更多 +
萌趣贪吃蛇

萌趣贪吃蛇

休闲益智 下载
火柴人超级战车安卓版

火柴人超级战车安卓版

飞行射击 下载
火箭少女特种兵最新版

火箭少女特种兵最新版

飞行射击 下载