會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





[PIC16F18345] ISR issue when boot to APP FW from bootloader
新會員
註冊日期:
9月12日 13:25:47
所屬群組:
註冊會員
文章: 8
等級: 1; EXP: 73
HP : 3 / 18
MP : 1 / 1
離線
Hi 各位前輩

想請問一個關於ISR的問題
我這邊在實作Bootloader和APP FW(兩個專案)
我有將Microchip的fw download 的protocol修改掉
基本上從bootloader跳到APP FW是用MCC產生的語法去跳到APP FW
NEW_RESET_VECTOR1 = 0x800
/* Execute to current FW */
STKPTR=0x1F;
asm ("pagesel " str(NEW_RESET_VECTOR1));
asm ("goto " str(NEW_RESET_VECTOR1));

然後我的APP FW 的code offset也設定成0x800
因為我APP FW有使用interrupt,
這時候從bootloader跳到APP FW會失敗
失敗的狀況是會跳回到bootloader
如果APP FW沒有啟動interrupt, jump到APP FW
就可以執行成功

想請問的是
在bootloader是不是除了goto 0x800之外還, 還要作什麼動作?
才可以讓APP FW可以使用interrupt呢?

Thanks
Tien

9月12日 13:41:57
轉換PDF檔 列印


Re: [PIC16F18345] ISR issue when boot to APP FW from bootloader
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14101
等級: 72; EXP: 43
HP : 1071 / 1785
MP : 4700 / 69891
離線
除了開機的 Reset 跳到 0x0800 的位址執行應用程式外。還有中斷向量也是要從 0x0004 轉移到 0x0804 的位址。
這些都可以在反組譯 (Disassembly) 的視窗下看到。請檢查一下Bootloader 的0x0004 是否有 goto 0x0804 的指令,及你的 APP 在 0x0804 的位址是否有 goto ISR 的指令。

9月12日 17:11:58
轉換PDF檔 列印


Re: [PIC16F18345] ISR issue when boot to APP FW from bootloader
新會員
註冊日期:
9月12日 13:25:47
所屬群組:
註冊會員
文章: 8
等級: 1; EXP: 73
HP : 3 / 18
MP : 1 / 1
離線
Hi Ryang

現在應該就差我不知道如何用c語言將0x0400內容變成goto 0x0800
還不吝另賜教

Thanks
Tien.

9月13日 12:54:48
轉換PDF檔 列印


Re: [PIC16F18345] ISR issue when boot to APP FW from bootloader
新會員
註冊日期:
9月12日 13:25:47
所屬群組:
註冊會員
文章: 8
等級: 1; EXP: 73
HP : 3 / 18
MP : 1 / 1
離線
Hi Ryang
今天我發現這個問題是因為我移除了一段code
Void interrupt service_isr()
{
Asm (“pagesel “ str(NEW_INTERRUPT_VECTOR));
Asm (“goto “ str(NEW_INTERRUPT_VECTOR));
}
之前在整理程式時將沒有被call的function給清一清
這段就被清掉了
現在工作一切正常
感謝您歐
Tien.

9月13日 16:36:24
轉換PDF檔 列印


Re: [PIC16F18345] ISR issue when boot to APP FW from bootloader
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14101
等級: 72; EXP: 43
HP : 1071 / 1785
MP : 4700 / 69891
離線
謝謝,你也解了我的疑惑。

9月14日 11:52:21
轉換PDF檔 列印


Re: [PIC16F18345] ISR issue when boot to APP FW from bootloader
新會員
註冊日期:
9月12日 13:25:47
所屬群組:
註冊會員
文章: 8
等級: 1; EXP: 73
HP : 3 / 18
MP : 1 / 1
離線
Hi Ryang

現在又遇到問題就是
如何讓已經在run APP FW再跳回bootloader
並可以可以使用UART呢?

因為APP FW已經有再使用interrupt
是否還是要在
void interrupt INTERRUPT_InterruptManager (void)
裡面加
asm ("pagesel " str (0x0));
asm ("goto " str (0x0));

Thanks
Tien.

9月14日 18:10:29
轉換PDF檔 列印


Re: [PIC16F18345] ISR issue when boot to APP FW from bootloader
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14101
等級: 72; EXP: 43
HP : 1071 / 1785
MP : 4700 / 69891
離線
當然你可以在 APP 裡埋下返回 Bootloader 的動作條件,如: 按下某些特定鍵、或收到特定的 UART 命令。

當要強制跳回到 Bootloader 時,可以用 RESET 指令跳到 0x0000 的開機位址。

RESET 指令 :This instruction provides a way toexecute a hardware Reset by software.

Operation: Execute a device Reset. Resets the RI flag of the PCON register.

附加檔案:



jpg  擷取.JPG (78.05 KB)
16_59bb47e761312.jpg 1207X299 px

9月15日 11:24:23
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project