从Flash和SRAM中触发中断的过程示例(二)
MOV pc,lr
END
这段代码在第一条指令链接到ivt.s。如果建立堆栈指针失败,将导致数据取消,因此堆栈的建立应当在跳转到C main()前建立。
C 代码
这样的话,TIMER1中相关的寄存器就被建立起来了,当寄存器匹配的时候,TIMER将会中断CPU的核。TIMER1 将会以60M Hz的速度运行。这段代码已经在实验板上测试过。实验板使用10 M Hz的晶振,同样地设置PLL。有关定时器的操作请参考LPC2106、5、4用户手册相关的章节。ISR的寄存器将为空,然后根据需要由后面的用户来设置。_irq编译关键字被用来定义IRQHandler()函数,作为一个IRQ ISR。
执行下面的指令,将会执行 init.s 中的C main
LDR lr,=_main
MOV pc,lr
下面是C代码:
/*********************************************************************
函数功能说明
************************************************************************/
_irq void IRQHandler(void);
void feed(void);
void Initialize(void);
/*****************************************************************
头文件
*************************************************************/
#include “LPC210x.h”
/*************************************************************
MAIN

评论