关于LM3S811例程中watchdog 的startup_rvmdk.S文件
[复制链接]
第一次打开LM3S811例程中watchdog,运行后,一个LED灯闪烁。
想自己建立一个工程,但是把watchdog.c移植到新建的工程后一直看不到效果。
刚开始以为设置的不对,就拿例程和自己的工程一个一个进行比较,发现不是设置的问题。
最后发现是startup_rvmdk.S和自己新建的工程的Startup.s有部分不一样。
startup_rvmdk.S多出下面的语句:
;******************************************************************************
;
; External declaration for the interrupt handler used by the application.
;
;******************************************************************************
EXTERN WatchdogIntHandler
;******************************************************************************
并且124行 DCD WatchdogIntHandler ; Watchdog timer
把自己的工程的Startup.s的117行
DCD IntDefaultHandler ; Watchdog
改为 DCD WatchdogIntHandler ; Watchdog (WatchdogIntHandler和程序中的中断处理函数名相同就行)
并在上面加上 EXTERN WatchdogIntHandler 就OK
现在遇到一个新的问题:
watchdog头文件中有个函数:void WatchdogIntRegister(unsigned long ulBase, void(*pfnHandler)(void));
我想把 EXTERN WatchdogIntHandler 注释掉,在main函数中初始化watchdog时使用这个函数注册它的中断处理函数,
可是没有看到效果,不知道为什么,请大家指教!
|