LM3S811中断函数注册有两种方法,一是类似例程的看门狗,在起始的汇编文件改变相应中断处理函数名,并EXTERN,中断处理函数名字一致。二是,使用相应库的中断注册函数,但需要改sct文件,把默认注释的那句话改为不注释。
看到下面有人问,就把国产详细贴出来:
1.在watchdog例程中的 .s 文件跟Keil自己生成的 .s 文件是不太一样的,区别在于
例程中多
;******************************************************************************
;
; External declaration for the interrupt handler used by the application.
;
;******************************************************************************
EXTERN WatchdogIntHandler
并且watchdog中断向量那一行
DCD WatchdogIntHandler ; Watchdog timer(默认是的都是IntDefaultHandler)
Keil自己建立的 .s 文件里全是默认的IntDefaultHandler
2.方法一就是跟例程里的一样,把中断向量那一行改为自己的中断处理函数名字,并EXTERN出来,就OK
方法二是不需要修改Keil自己生成的 .s 文件,在中断初始化时注册中断处理函数 例如watchdog中断用
void WatchdogIntRegister(unsigned long ulBase, void(*pfnHandler)(void)); 这个函数注册
但要注意修改 .sct 文件
;* (vtable, +First);需要将此句的注释去掉
[ 本帖最后由 upc_arm 于 2012-1-6 09:23 编辑 ]
第二种方法,楼主能否举个例子啊
http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr