Re: PIC18F45K80在BOOTLOADER中使用中斷的問題
|
||||
---|---|---|---|---|
新會員
|
HI Sir:
你好 先把名詞定義一下 BOOT = BOOTLOADER (0x0000~0x1FFF) APP = 主程式(0x2000~0x7FFF) 我在BOOT中也有用到中斷副程式 因為沒有額外的設定,所以他應該是直接用了 0x0008和0x0018這兩個中斷向量 但我在跳到APP時,APP的中斷也會跳到BOOT的中斷 我想請教的是我們如何在BOOT跳到APP之後 讓APP執行他自己的中斷副程式 您幫我整理的這兩段CODE,請問這是要放在BOOT中嗎? 感覺是要放在BOOTLOADER中,讓他跳到0x2008和0x2018 但這樣原本BOOT的中斷副程式怎麼辦呢? 抱歉這部分我不是很清楚,還望不吝指導 謝謝
發表於: 2020/6/15 11:18
|
|||
|
Re: PIC18F45K80在BOOTLOADER中使用中斷的問題
|
||||
---|---|---|---|---|
版主
|
如果是使用 MCC 所產生的 Bootloader 可以在 MCC 裡直接設定 APP 應用程式的起始位址。
Bootloader 的 APP 程式起始位置是可以設定的,如你的 APP 是從 0x2000 開始,那 Bootloader 的中斷向量轉移就必須在 0x0008 及 0x0018 這兩個中斷執行位址利用 goto 轉移到 0x2008 及 0x2018 這兩個位址來讓 APP 執行中斷函式。 至於 APP 就需要在 Linker 設定裡講整個程式在位移到 0x2000 的起始位址,可以用 Code Offset = 0x2000 的設定將 APP 的編譯從 0x2000 開始編譯。並在 0x2008 及 0x2018 利用嵌入式組語方式跳到高優先權及低優先權中斷函式。 底下是一個中斷轉移的範例程式參考看看:
#include <xc.h>
發表於: 2020/6/15 10:24
Edited by Ryang on 2020年06月15日 10:41:46
Edited by Ryang on 2020年06月15日 11:17:47 |
|||
|
PIC18F45K80在BOOTLOADER中使用中斷的問題
|
||||
---|---|---|---|---|
新會員
|
HI All
目前我在PIC18F45K80中做了一個BOOTLOADER 並在其中使用了中斷 當燒錄完跳到AP後,只要發生中斷就還是會 跳到BOOTLOADER的中斷去執行,當然整體的工作會變得很怪 請問我該如何從BOOTLOADER跳到AP時一併更改AP的中斷向量呢? 整體的配置如下 BOOTLOADER: 0x0000~0x1FFF AP:0x2000~0x8000 因為在BOOTLOADER中使用了LIN的模組 看起來是需要中斷來做一些事情,輪巡恐會有一些其他的問題存在 以上,還望不吝賜教,謝謝
發表於: 2020/6/13 12:46
|
|||
|