| | |

mdk-凯发app

问题类别:arm 开发工具 > mdk-arm 浏览次数:3039
发布日期:2012/4/23 17:12:11 文章来源:米尔科技
回复日期:2013/11/28 14:05:16
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的用户指南部分。

凯发k8官网的技术支持服务指南

常见问题解答

网站地图