platfrom 设备总结

原创 2012年03月21日 11:27:42
 

注册设备的两种方式:

方法一:

 一:对于平台设备可以直接在板文件中添加代码(arch / arm / mach-s3cxxxx / mach-smdk2440.c)

 代码 1: static struct platfrom_device hello_device = {

                      .name     = "hello ",

                      .id             = -1,

                     .resource  = hello_resource,                      

                       ...................

                       .......................

                       };  添加设备结构体

代码2:继续添加设备资源(arch / arm / mach-s3cxxxx / mach-smdk2440.c)

          

static struct resource  hello_resource[] = {  

      [0] = {  //IO端口资源    

              .start = S3C24XX_PA_WATCHDOG,   

              .end   = S3C24XX_PA_WATCHDOG + S3C24XX_SZ_WATCHDOG - 1,   

              .flags = IORESOURCE_MEM,  

       },  

       [1] = {  //中断资源   

              .start = IRQ_WDT,                 .end   = IRQ_WDT,  

             .flags = IORESOURCE_IRQ,  

       }  

};  

3:继续把设备加入到设备数组中去arch / arm / mach-s3cxxxx / mach-smdk2440.c

  • static struct platform_device *smdk2440_devices[] __initdata = {  
  •        &s3c_device_usb,  
  •        &s3c_device_lcd,  
  •        &s3c_device_wdt,  
  •        &s3c_device_i2c0,  
  •        &s3c_device_iis,  
  •   &hello_device,   
  • };  
  •   

    之后系统在加载该驱动的时候会自动的调用platform_add_devices把设备注册到系统中去,该函数内部会调用platfrom_device_register().设备注册完闭

     

    方法二:

    直接定义即可:1。定义设备结构体

    static struct platfrom_device hello_device = {

                          .name     = "hello ",

                          .id             = -1,

                         .resource  = hello_resource,                      

                           ...................

                           .......................

                           }; 

    2。定义设备资源

    static struct resource  hello_resource[] = {  

          [0] = {  //IO端口资源    

                  .start = S3C24XX_PA_WATCHDOG,   

                  .end   = S3C24XX_PA_WATCHDOG + S3C24XX_SZ_WATCHDOG - 1,   

                  .flags = IORESOURCE_MEM,  

           },  

     

    3。注册设备 platfrom_device_register().

    static int __init  hello_init(void)  

    {  

           printk(banner);  

           return platform_device_register(&hello_device);  

    }  

    static void __exit hello_exit(void)  

    {  

           platform_device_unregister(&hello_device );  

    }  

      

    module_init(hello_init);  

    module_exit(hello_exit);  


     

     

     

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。

    相关文章推荐

    windows azure platfrom for english

    • 2010-11-03 13:52
    • 12.54MB
    • 下载

    platfrom签名资源文件

    Android学习心得(22) --- PackageManagerService源码解析platfrom.xml

    新博客地址blog.marssecure.complatform.xmlAndroid中沿用Linux用户和组的来限制系统资源的访问,查看从Android真机pull出/etc/permissions...

    platfrom RTC驱动分析

    嵌入式Linux之我行——S3C2440上RTC时钟驱动开发实例讲解 (2010-01-06 15:22) 分类: 内核、驱动开发篇 嵌入式Linux之我行,主要讲述和总结了本人在...

    裸设备总结

    • 2013-03-14 20:30
    • 3.10MB
    • 下载

    实验室设备管理系统项目总结(1)——Model层

    c++出身的我自从开始接触编程以来就很少做过其他语言的项目,而且一直做的也基本上是关于VC的,所以对于VC的各个方面也算是有一定的经验积累,而京城和我一块做项目的人或是不肯露出自己的“本事”,或是很菜...

    锐捷设备rcna试验总结

    • 2010-03-18 10:26
    • 10.39MB
    • 下载
    内容举报
    返回顶部
    收藏助手
    不良信息举报
    您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
    举报原因:
    原因补充:

    (最多只允许输入30个字)