MDK-ARM中如何使用快速中断FIQ
| 问题类别:ARM软件工具 > Keil MDK | 浏览次数:7810 | 
| 发布日期:2012/4/23 17:12:11 | 文章来源:米尔科技 | 
| 回复日期:2020/12/20 9:57:07 | 
环境说明
MDK-ARM中国版3.05 及以上分析描述
MDK-ARM中如何使用快速中断FIQ?问题解答
	      根据ARM公司提供的资料,在使用快速中断的时候一般对时间要求比较高,这时建议客户使用汇编语言进行编写FIQ的中断处理函数,如果使用MDK的关键字__irq,则使用方法如下:
      1. 中断服务程序
      不同的ARM微控制器有不同的中断优先级和中断系统。参考开始使用ARM开发工具集用户指南, 中断,可了解各种中断相关概念。
      2. KEIL编译器提供关键字__irq 以定义标准的(irq)和(fiq)中断函数。
      例子:
      __irq void IRQ_Handler (void) {
      /* the interrupt code */
      }
      4. 对没有向量中断处理或FIQ中断函数的微控制器,需要按要求改变CPU的启动代码。
      例子:
      下面的C代码实现了一个空的 FIQ_Handler:
      __irq void FIQ_Handler (void) {
      ;
      }
      在启动代码中,要进行如下修改以调用FIQ_Handler: 
      Vectors          LDR     PC, Reset_Addr         
                            :
                           LDR     PC, FIQ_Addr           ; Instruction at FIQ Vector  
	      location
                            : 
	                       PRESERVE8                             ; tell linker: stack 
                                                                      ;alignment is 8-byte
                       IMPORT  FIQ_Handler             ; use external FIQ_Handler
      FIQ_Addr         DCD     FIQ_Handler         ; FIQ Entry point 
	      以上部分节选自KEIL的用户指南部分。
 
 产品中心
 服务与支持
 关于米尔
 联系我们
 关注我们
			
			            
                            
                                
                        
                            
                                
                        
                            