Re: bootloader程序复位问题
|
||||
---|---|---|---|---|
版主
|
ㄧ般使用 Bootloader 比較難控制的是 "中斷的向量轉移"。假設USER程式的執行點是 0x200 的話一般也會將中斷向量轉到 0x208 (hi-priority) & 0x218 for Low Priority。
所以在 Bootloader 程式裡就須將 0x08 & 0x18 的位置擺放goto 指令將向量轉移出去給 User 的中斷進入點。而 User程式在宣告中斷函數時也要將原先指到0x08 的位址改成 0x208。
發表於: 2008/7/8 9:56
|
|||
|
Re: bootloader程序复位问题
|
||||
---|---|---|---|---|
版主
|
轉成繁體中文 :
用戶程式只實現簡單的通過中斷控制led閃爍,發現當運行boot時,將用戶程式通過串口寫入flash,開始運行用戶程式,可是每過16s左右就會復位,又從boot開始運行(即0位址處),這是由於使能看門狗的緣故,如果禁止則不會復位,後來我把通過中斷控制led閃爍,改為在主程序中關led,在中斷中開led,發現,當更新完程式,用戶程式開始運行,led閃爍幾次後,就一直亮,也就是說死在中斷裏了,所以才會復位,但是單獨執行用戶程式是沒有問題的,請問這是什麼原因造成的,是不是由於重新定位中斷向量的原因呀,還請各位幫助,謝謝
發表於: 2008/7/8 9:44
|
|||
|
bootloader程序复位问题
|
||||
---|---|---|---|---|
新會員
|
我用的是18f4520+mplabv8.0+picc18v9.5
用户程序只实现简单的通过中断控制led闪烁,发现当运行boot时,将用户程序通过串口写入flash,开始运行用户程序,可是每过16s左右就会复位,又从boot开始运行(即0地址处),这是由于使能看门狗的缘故,如果禁止则不会复位,后来我把通过中断控制led闪烁,改为在主程序中关led,在中断中开led,发现,当更新完程序,用户程序开始运行,led闪烁几次后,就一直亮,也就是说死在中断里了,所以才会复位,但是单独执行用户程序是没有问题的,请问这是什么原因造成的,是不是由于重新定位中断向量的原因呀,还请各位帮助,谢谢
發表於: 2008/7/7 20:39
|
|||
|