Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1139004
  • 博文数量: 322
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3276
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-17 09:21
文章分类

全部博文(322)

文章存档

2010年(155)

2009年(167)

我的朋友

分类: 嵌入式

2010-03-15 23:13:56

驱动加载:1.静态加载 (系统启动时自动的加载动内核,自动的注册设备并创建设备接点,系统启动后应用程序可以直接运行)

          2.动态加载(既模块加载,系统启动时不会进行加载驱动程序,需要人为手动加载,就是说系统启动后我们的应用程序不能直接应用驱动,而是我门必须手动的用insmod命令去加载)

     其中动态加载我们又可以分为三种去研究;

1.     加载驱动后,我们自己去创建主设备号,从设备号,利用cat /proc/devices 去查看主设备号是否重复,然后根据应用程序中使用的设备名称用mknod 命令去创建设备接点。

2.     加载驱动后,驱动程序会利用register_chrdev()函数自动产生主设备号去在内核中注册设备,我们利用cat /proc/devices命令和驱动程序中注册的设备名去查询主设备号和从设备号后,在根据应用程序使用的设备名,去利用mknod去创建。(利用驱动中注册的设备名是查询自动生成的主设备号,驱动中的设备名称不一定要和创建的设备接点名相同,他们之间可以用主设备号 去关联,而应用程序的设备名称则必须和创建的设备接点名相同)

3.     加载驱动后,驱动程序利用devfs系统,这个系统可以自动的产生主设备号,然后自动的创建设备接点。我们只要用加载驱动后,直接运行应用程序就行了。

阅读(921) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~