[原创] LM3S811中断

upc_arm   2012-1-5 23:22 楼主
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 编辑 ]

回复评论 (1)

第二种方法,楼主能否举个例子啊

http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2012-1-6 09:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复