中断硬件驱动代码分析

中断硬件驱动代码分析

ID:16484879

大小:106.00 KB

页数:7页

时间:2018-08-10

中断硬件驱动代码分析_第1页
中断硬件驱动代码分析_第2页
中断硬件驱动代码分析_第3页
中断硬件驱动代码分析_第4页
中断硬件驱动代码分析_第5页
资源描述:

《中断硬件驱动代码分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、中断硬件驱动代码分析ARM-Week-1Learn-lumit-Step-15.中断按钮实验1,int0_driver.cintint0_open(void){初始化IO端口专用寄存器//setgpio'sdirection:setIOPMODregistermodebitto0=inputIOPMOD=IOPMOD&(~0x00000100);即把IOPMOD的第8位(9端口)清零,也就是设置为输入模式。//unmasktheswitchinterrupt...........INTMSK&=~((1<<21)

2、(1<<0));~((1<<21)

3、(1<<0))=~(100000000

4、0000000000000

5、1)=0111111111111111111110也就是要把INTMSK的22位和0位清零(开启中断控制器,开启外部中断控制0)。return0;}intint0_ioctl(unsignedintcmd,unsignedlongarg){switch(cmd)INT0_IO_ENABLE宏定义值为(1<<4)INT0_IO_ACTIVE_HIGH宏定义值为(1<<3)INT0_IO_RISING_EDGE宏定义值为(0x01)INT0_IO_FALLING_EDGE宏定义值为(0x02)INT0_IO_BOTH_EDGE宏定义值为(0x03){//Enable

6、interruptrequestandUnmaskPIO8interruptcaseINT0_ENABLE_INTERRUPT:IOPCON

7、=INT0_IO_ENABLE;INT0_IO_ENABLE为10000。把IO端口控制寄存器第4位置1,即开启XIRQ0。break;//clearint0pendinginterruptscaseINT0_CLEAR_INTERRUPT:INTPND

8、=INT0_MASK;INTO_MASK宏定义值为1,把INTPND第0位值1,即把外部中断0清0。break;//setrisingedgeinterruptcaseINT0_RISING_EDG

9、E_INTERRUPT:IOPCON

10、=INT0_IO_RISING_EDGE;设置中断为上升沿触发;break;//setfallingedgeinterruptcaseINT0_FALLING_EDGE_INTERRUPT:IOPCON

11、=INT0_IO_FALLING_EDGE;设置中断为下降沿触发;break;//setbothedgeinterruptcaseINT0_BOTH_EDGE_INTERRUPT:IOPCON

12、=INT0_IO_BOTH_EDGE;设置中断为下降/上升沿都触发;break;//setasactivehighcaseINT0_ACTIVE_HIGH:IO

13、PCON

14、=INT0_IO_ACTIVE_HIGH;设置中断为电平触发;break;default:break;}return0;}2,startup.smovr0,#0xd2;makeirqmodewithallirqsdisabledmsrcpsr_cxsf,r0MOVsp,#0x70000设置IRQ模式的栈指针。movr0,#0xd3;makesvcmodewithallirqsdisabledmsrcpsr_cxsf,r0MOVsp,#0x80000设置SVC模式的栈指针。*******************************************************

15、***************;*GettheaddressoftheCentrypoint.;**********************************************************************LDRlr,=__main保存__main的入口地址**********************************************************************;*Enabletheinterruptwhilestayinginthesupervisormode;********************************

16、**************************************MOVr0,#Mode_Svc:OR:F_BitMSRcpsr_c,r0MOVpc,lrIMPORTdo_irqEXPORTirq_handlerirq_handlerSUBlr,lr,#4STMFDsp!,{r0-r12,lr};pushr0-r12registerfileandlr(pcreturnaddress)MRSr4,spsrSTMF

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。