版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#define pISR_DMA2 (*(unsigned *(_ISR_STARTADDRESS+0x6c#define pISR_DMA3 (*(unsigned *(_ISR_STARTADDRESS+0x70#define pISR_SDI (*(unsigned *(_ISR_STARTADDRESS+0x74位置#define pISR_SPI0 (*(unsigned *(_ISR_STARTADDRESS+0x78, (*(unsigned *(_ISR_STARTADDRESS+0x7c#define pISR_NFCON (*(unsigned *(_ISR_STARTAD
2、DRESS+0x80 / Added for 2440.ARB_MODE (*(unsigned *(_ISR_STARTADDRESS+0x84(*(unsigned *(_ISR_STARTADDRESS+0x88#define pISR_IICARB_SEL (*(unsigned *(_ISR_STARTADDRESS+0x8c REQ1 #define pISR_UART0 ARB_SEL01b,把 (*(unsigned *(_ISR_STARTADDRESS+0x98#define pISR_ADC (*(unsigned *(_ISR_STARTADDRESS+0x9c8一个中
3、断实例Main(如果KeyScan_Test;或REQ5 被服务,void KeyScan_Test(voidREQ1 被服务,ARB_SEL 01b。 如果被服务, ARB_SEL 位变为 static void _irq Key_ISR(void 。 如果 REQ3 ARB_SEL 位变为 11b。被服务,ARB_SEL 位变为 00b 。 7)INTPND寄存器 经过中断优先级选出优先级最高的中断后,这个中断在INTPND寄存器中的相应位被置1,随后CPU进入中断模式处理它
4、 同一时间,此寄存器只有一位被置1,在ISR中,可以根据这个位确定是哪个中断,清除中断时,往此位写入18)INTOFFSET寄存器 用来表示INTPND寄存器中哪位被置1了,即INTPND寄存器中位x为1时,INTOFFSET寄存器的值为x(x为0-31) 清除SRCPND、INTPND寄存器时,INTOFFSET寄存器被自动清除p 四、中断控制器操作实例:外部中断开发板上,K1-K4四个按键所接的CPU引脚可以设为外部中断,本程序的功能是,
5、当按下某个按键时,CPU调用中断服务程序点亮对应的LED* File:head.S 功能:初始化,设置中断模式、系统模式的栈,设置好中断处理函数* .extern main.text .global _start _start:* 中断向量,本程序中,除Reset和HandleIRQ外,其它异常都没有使用* b
6、60; Reset 0x04: 未定义指令中止模式的向量地址HandleUndef: b HandleUndef 0x08: 管理模式的向量地址,通过SWI指令进入此模式HandleSWI: b HandleSWI 0x0c: 指令预取终止导致的异常的向量地址HandlePrefetchAbort: b HandlePrefetchAbort 0x10: 数据访问终止导致的异常的向量地址HandleDataAbort:
7、160; b HandleDataAbort 0x14: 保留HandleNotUsed: b HandleNotUsed 0x18: 中断模式的向量地址 b HandleIRQ 0x1c: 快中断模式的向量地址HandleFIQ: b HandleFIQReset:
8、60; ldr sp, =4096 设置栈指针,以下都是C函数,调用前需要设好栈 bl disable_watch_dog 关闭WATCHDOG,否则CPU会不断重启 msr cpsr_c, #0xd2 进入中断模式,cpsr_c表示cpsr7:0,0xd2=0b1101 0010 ldr sp, =3
9、072 设置中断模式栈指针 msr cpsr_c, #0xdf 进入系统模式 ldr sp, =4096 设置系统模式栈指针, 其实复位之后
10、,CPU就处于系统模式, 前面的“ldr sp, =4096”完成同样的功能,此句可省略 bl init_led 初始化LED的GPIO管脚 bl init_irq
11、60; 调用中断初始化函数,在init.c中 msr cpsr_c, #0x5f 设置I-bit=0,开IRQ中断 ldr lr, =halt_loop 设置返回地址 ldr pc, =main 调用main函数halt_loop: b
12、 halt_loopHandleIRQ: sub lr, lr, #4 计算返回地址 stmdb sp!, r0-r12,lr 保存使用到的寄存器
13、60; 注意,此时的sp是中断模式的sp 初始值是上面设置的3072 ldr lr, =int_return
14、设置调用ISR即EINT_Handle函数后的返回地址 ldr pc, =EINT_Handle 调用中断服务函数,在interrupt.c中int_return: ldmia sp!, r0-r12,pc 中断返回, 表示将spsr的值复制到cpsr /* * init.c: 进行一些初始化 */ #include &
15、quot;s3c24xx.h"/* * LED1-4对应GPB5、GPB6、GPB7、GPB8 */#define GPB5_out (1<<(5*2 / LED1#define GPB6_out (1<<(6*2 / LED2#define GPB7_out (1<<(7*2
16、 / LED3#define GPB8_out (1<<(8*2 / LED4/* * K1-K4对应GPG0,GPG3,GPG5,GPG6 */#define GPG0_eint (2<<(0*2 / K1,EINT8#define GPG3_eint (2<<(3*2
17、/ K2,EINT11#define GPF5_eint (2<<(5*2 / K3,EINT13#define GPF6_eint (2<<(6*2 / K4,EINT14 /* * 关闭WATCHDOG,否则CPU会不断重启 */void disable_watch_dog(void WTCON = 0; / 关闭WATCHDO
18、G很简单,往这个寄存器写0即可void init_led(void GPBCON = GPB5_out | GPB6_out | GPB7_out | GPB8_out ;/* * 初始化GPIO引脚为外部中断 * GPIO引脚用作外部中断时,默认为低电平触发、IRQ方式(不用设置INTMOD */ void init_irq( GPGCON = GPG0_eint | GPG3_eint | GPG5_eint | GPG6_eint;
19、 / 对于EINT8、11、13、14,需要在EINTMASK寄存器中使能它们 EINTMASK &= (1<<8 & (1<<11 & (1<<13 & (1<<14; /* * 设定优先级: * ARB_SEL0 = 00b, ARB_MO
20、DE0 = 0: REQ1 > REQ3,即EINT0 > EINT2 * 仲裁器1、6无需设置 * 最终: * EINT0 > EINT2 > EINT11,EINT19,即K4 > K3 > K1,K2 * EINT11和EINT19的优先级相同 */ PRIORITY = (PRIORITY & (0x01 | (0x3&
21、lt;<7 | (0x0 << 7 ; /开启EINT8_23 INTMSK &= (1<<5; interrupt.c #include "s3c24xx.h" void EINT_Handle( unsigned long oft = INTOFFSET; switch( oft
22、160;/INTOFFSET为5时,代表INTPND的位5为1,则EINT8-23中断发生 case 5: GPBDAT |= (0x0f<<5; /LED全灭 if (EINTPEND & (1<<8 /EINT8发生(EINT8对应K1
23、 GPBDAT &= (1<<5; if (EINTPEND & (1<<11 /EINT11发生(EINT8对应K2 GPBDAT &= (1<<6;
24、 if (EINTPEND & (1<<13 /EINT13发生(EINT8对应K3 GPBDAT &= (1<<7; if (EINTPEND & (1<<14 /EINT14发生(EINT8对应K4 GPBDAT &= (1<<8;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国高端数控机床功能部件技术创新与进口替代路径研究报告
- 2026低压电缆产业园区集群效应与区域协同发展报告
- 2026中国液体化工品中转基地选址评估与投资回报分析报告
- 2026中国食品发酵技术市场分析及工业化应用预测研究报告
- 2026中国液体化工物流行业技术标准与规范化发展分析报告
- 2026 年道真县事业单位急需紧缺高层次人才笔试试卷 招录 18 人
- 消防安全隐患排查与整治要点培训课件
- 2026煤矿采煤机司机特种作业考试题库含答案
- 具身智能+工业生产安全监控智能巡检研究报告
- 讲堂实施方案
- T/TMAC 248-2025连续石墨化炉能源消耗限额
- 2026年兰州大学物理试题及答案
- 2026畜禽种业自主创新与核心种群建设战略研究报告
- IMDG Code 42-24 修正案 锂电池海运包装标记与标签规范 中文版(P903 包装标识更新全解)
- 校园统一身份认证平台建设方案
- 2026年陕西事业编考试综合管理模拟题及答案
- 初中数学七年级上册第一章《数学与我们同行》核心素养知识清单
- 供应链韧性的理论内涵与战略框架构建
- 2026年无人机应用技术考试测试题库附参考答案详解(完整版)
- 2026高考英语考前高频词汇+作文万能模板
- 2024人教版八年级英语下册(全册)教案
评论
0/150
提交评论