5433|4

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

linux驱动程序如何自动创建节点 [复制链接]

将驱动程序加进内核编译,然后烧录到板子上,发现不能自动创建节点,需要手动输入 mknod 命令。
请教!如何操作能够使内核自动创建设备节点。

最新回复

过来学习  详情 回复 发表于 2010-5-31 17:29
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
关注这个问题。
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
内核创建没搞过,倒是用脚本弄过,调用mknod创建节点文件,而且C语言库里也有mknod的函数
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

4
 
现在都是使用class来实现动态加载并创建设备节点啦,


  1. static struct class *spidev_class;

  2. /*-------------------------------------------------------------------------*/

  3. static int spidev_probe(struct spi_device *spi)
  4. {
  5.         ....
  6.         
  7.         dev = device_create(spidev_class, &spi->dev, spidev->devt,
  8.                 spidev, "spidev%d.%d",
  9.                 spi->master->bus_num, spi->chip_select);
  10.         ...
  11. }

  12. static int spidev_remove(struct spi_device *spi)
  13. {
  14.     ......
  15.     device_destroy(spidev_class, spidev->devt);
  16.     .....

  17.     return 0;
  18. }

  19. static struct spi_driver spidev_spi = {
  20.     .driver = {
  21.         .name =                "spidev",
  22.         .owner =        THIS_MODULE,
  23.     },
  24.     .probe =        spidev_probe,
  25.     .remove =        __devexit_p(spidev_remove),

  26. };

  27. /*-------------------------------------------------------------------------*/

  28. static int __init spidev_init(void)
  29. {
  30.     ....

  31.     spidev_class = class_create(THIS_MODULE, "spidev");
  32.     if (IS_ERR(spidev_class)) {
  33.         unregister_chrdev(SPIDEV_MAJOR, spidev_spi.driver.name);
  34.         return PTR_ERR(spidev_class);
  35.     }
  36.     ....
  37. }
  38. module_init(spidev_init);

  39. static void __exit spidev_exit(void)
  40. {
  41.     ......
  42.     class_destroy(spidev_class);
  43.     ......
  44. }
  45. module_exit(spidev_exit);

  46. MODULE_AUTHOR("Andrea Paterniani, ");
  47. MODULE_DESCRIPTION("User mode SPI device interface");
  48. MODULE_LICENSE("GPL");
复制代码

大概就是这样,你自己在driver目录下找个例子看看就知道了
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
过来学习
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表