位置:51电子网 » 技术资料 » 嵌入式系统

GPIO设备程序开发步骤

发布时间:2008/12/25 0:00:00 访问次数:680

  gpio驱动可以归类为linux设备驱动的字符设备驱动,以下是开发它的一些具体步骤。

  (1)模块化驱动程序

  不失linux驱动开发的一般性,在写字符设备的驱动程序时,也要遵守模块化编程的一般规范。设备模块在用户空间的初始化和终止:

  ●init mnodule()向内核注册模块提供数据结构、局部和全局变量。

  ●cleanup_module()取消所有init_module在内核中的注册。

  (2)设备模块在内核空间的内存申请和释放

  kmalloc()函数分配一段内存,这样就实现了chrdevs向量表中指向设备驱动程序名称的指针。使用kfree释放内存。

  (3)字符设备主设备号和次设备号的分配

  主设备号标志设备对应的驱动程序,内核利用主设备号将设备与相应的驱动程序对应起来。主设备号的取值范围是0~255,如果不善加规划,则容易造成主设备号的冲突。主设备号的分配有静态和动态之分,从开发设备的角度来看,推荐静态设备号的分配。

  次设备号由驱动程序使用,内核的其他部分并不使用它,仅将它传递给驱动程序。一个驱动程序控制若干个设备,次设备号提供了一种区分它们的方法。

  (4)设备模块在内核空间的注册与注销

  字符设备的注册有2种方法,一种是常用注册方法,通过系统函数register_chrdev()将设备加入到系统设备列表中;另一种方法是devfs技术,通过系统函数devfs ̄register()实现设备的注册。注销与注册相反,分别调用unregister_chrdev()函数和devfs_unregister()函数。

  (5)设备模块在内核空间提供系统调用的函数

  设备驱动程序在注册成功以后,用户可以通过访问设备特殊文件(一般情况在/dev目录下)实现系统调用。

  gpio驱动程序只需要一个file_operati。ns数据结构体就可以了。这是因为gp10本身在设计阶段就定制好了接入的物理设备,接入到gpio端口的物理设备并不需要即插即用。因此可以在开发阶段定制该接口的物理设备`也可以担这个接口的设各作为该产品的标配外设发布。

  这样,在编写驱动程序的过程中,只要写好应用程序使用标准系统调用打开、读取、写和关闭等处理函数,就可以完成驱动程序的开发。其中,标准系统调用处理函数在所有的字符设备里面具有同样的功能。

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



  gpio驱动可以归类为linux设备驱动的字符设备驱动,以下是开发它的一些具体步骤。

  (1)模块化驱动程序

  不失linux驱动开发的一般性,在写字符设备的驱动程序时,也要遵守模块化编程的一般规范。设备模块在用户空间的初始化和终止:

  ●init mnodule()向内核注册模块提供数据结构、局部和全局变量。

  ●cleanup_module()取消所有init_module在内核中的注册。

  (2)设备模块在内核空间的内存申请和释放

  kmalloc()函数分配一段内存,这样就实现了chrdevs向量表中指向设备驱动程序名称的指针。使用kfree释放内存。

  (3)字符设备主设备号和次设备号的分配

  主设备号标志设备对应的驱动程序,内核利用主设备号将设备与相应的驱动程序对应起来。主设备号的取值范围是0~255,如果不善加规划,则容易造成主设备号的冲突。主设备号的分配有静态和动态之分,从开发设备的角度来看,推荐静态设备号的分配。

  次设备号由驱动程序使用,内核的其他部分并不使用它,仅将它传递给驱动程序。一个驱动程序控制若干个设备,次设备号提供了一种区分它们的方法。

  (4)设备模块在内核空间的注册与注销

  字符设备的注册有2种方法,一种是常用注册方法,通过系统函数register_chrdev()将设备加入到系统设备列表中;另一种方法是devfs技术,通过系统函数devfs ̄register()实现设备的注册。注销与注册相反,分别调用unregister_chrdev()函数和devfs_unregister()函数。

  (5)设备模块在内核空间提供系统调用的函数

  设备驱动程序在注册成功以后,用户可以通过访问设备特殊文件(一般情况在/dev目录下)实现系统调用。

  gpio驱动程序只需要一个file_operati。ns数据结构体就可以了。这是因为gp10本身在设计阶段就定制好了接入的物理设备,接入到gpio端口的物理设备并不需要即插即用。因此可以在开发阶段定制该接口的物理设备`也可以担这个接口的设各作为该产品的标配外设发布。

  这样,在编写驱动程序的过程中,只要写好应用程序使用标准系统调用打开、读取、写和关闭等处理函数,就可以完成驱动程序的开发。其中,标准系统调用处理函数在所有的字符设备里面具有同样的功能。

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!