第八章蜂鸣器驱动

一、PWM原理:PWM连接到了TOUT1端口。

PWM使用端口FGPFCON寄存器进行控制。该寄存器在Linux内核中对应的宏是S3C64XX_GPFCON,该宏表示GPFCON寄存器的虚拟地址。GPFCON只用了最高两位(3031位)来控制PWM。当最高两位为10时,打开PWM。为00时停止PWM。所以只需通过iowrite32函数为GPFCON寄存器设置不同的值即可。

PWM驱动的三个文件:

Pwm.c 驱动主程序

Pwm_fun.h 引用了相应的头文件,以及定义了一些宏

Pwm_fun.c 文件包含了打开和停止PWM的两个函数(pwm_startpwm_stop

Makefile编译器看出,首先将pwm.cpwm_fun.c文件编译成pwm.opwm_fun.o,然后将这两个*.o文件链接成pwm_driver.o,最后生成pwm_driver.ko

二、Linux驱动代码的重用

静态重用:

例如:main.c  fun.c  product.c  product.h四个文件。其中,main.cLinux驱动的主程序。在fun.cproduct.cproduct.h中定义和实现了在main.c中使用的函数。在main.c中通过extern关键字使用fun.c中的函数,通过包含(includeproduct.h文件使用product.c中的函数。

需要注意的是,在Main.c文件中多了两个宏(_init_xit),这两个宏分别用来标识Linux驱动初始化函数(main_init)和(main_exit)。并不是必须使用,但使用它们会提高Linux驱动的运行效率。因为这两个宏是编译指令,如果用他们来标识main_initmain_exit函数,Linux就会认为main_initmain_exit函数是专门用来初始化和卸载Linux驱动的,会使这两个函数单独放在某个内存区域,从而提高效率。

 

转载于:https://www.cnblogs.com/BJBLOG/p/5651397.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值