第八章 心得体会
通過第八章的學(xué)習(xí),了解了蜂鳴器的工作原理以及利用PWM驅(qū)動(dòng)使蜂鳴器發(fā)出聲音。、
學(xué)到的知識:
一、Linux驅(qū)動(dòng)的代碼重用
1、編譯是由多個(gè)文件組成的Linux驅(qū)動(dòng)
如果Linux驅(qū)動(dòng)只有1個(gè)源代碼文件,0bj-m變量可以和源代碼文件同名。如果Linux驅(qū)動(dòng)包含多個(gè)文件,就需要使用module-y來指定所以的目標(biāo)文件。
2、Linux驅(qū)動(dòng)模塊的依賴
代碼重用分為靜態(tài)和動(dòng)態(tài)兩種。
二、強(qiáng)行卸載Linux驅(qū)動(dòng)
情況1:初始化函數(shù)崩潰
情況2:卸載函數(shù)被阻塞
三、蜂鳴器(PWM)驅(qū)動(dòng)
1、蜂鳴器驅(qū)動(dòng)的原理
蜂鳴器也稱PWM,基本原理是通過脈沖來控制蜂鳴器的打開和停止。
PWM使用端口F的CPFCON寄存器進(jìn)行控制。改寄存器在linux內(nèi)核中對應(yīng)的宏是S3C64XX_GPFCON寄存器寄存器的虛擬地址。GPFCON只用了最高兩位來控制PWM。當(dāng)最高位為10時(shí),打開PWM。當(dāng)00時(shí),停止PWM。
2、實(shí)現(xiàn)蜂鳴器驅(qū)動(dòng)
編譯PWM驅(qū)動(dòng)的Makefile文件
obj-m :=pwm_driver.c
pwm_driver-objs :=pwm,o pwm_fun.o
3、測試蜂鳴器驅(qū)動(dòng)
打開PWM
# ./ioctl /dev/pwm_dev 1 0
停止PWM
# ./ioctl /dev/pwm_dev 0 0
轉(zhuǎn)載于:https://www.cnblogs.com/chen-yang/p/5638375.html
總結(jié)