會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客





用MCC gen 出的 bootloader code 無法進入 __interrupt() INTERRUPT_InterruptManager () 問題
新會員
註冊日期:
1月13日 17:42:39
所屬群組:
註冊會員
文章: 19
等級: 3; EXP: 9
HP : 0 / 52
MP : 6 / 76
離線
MCU: PIC16F18345

用MCC gen 出的 bootloader code 是接受UART CMD,
我想修改接收 I2C CMD 的方式,
(因此再由MCC gen 出 I2C 的 code)

但bootloader 的code , 當 PIC16F18345 接收到I2C 時, 沒跑進 __interrupt() INTERRUPT_InterruptManager () { }..


請問
1. MCC bootloader code 是不是將 INTERRUPT_VECTOR 移到其他位置?

2. 若要將 MCC bootloader code 能接I2C 且進到__interrupt() INTERRUPT_InterruptManager () { }.. 要如何修改??

6月04日 11:56:31
轉換PDF檔 列印


Re: 用MCC gen 出的 bootloader code 無法進入 __interrupt() INTERRUPT_InterruptManager () 問題
資深會員
註冊日期:
2009/02/26 09:42
所屬群組:
註冊會員
文章: 353
等級: 17; EXP: 53
HP : 0 / 413
MP : 117 / 13746
離線
MCC所產生的UART Bootloader並沒有使用Interrupt mode, 而是使用polling的方式, MCC已經將Reset Vector與Interrupt Vector幫您Remap到Application的起始位址(0x700)了.

所以您在Bootloader FW無法使用中斷. 因為開中斷的風險是當Flash在做Erase或是Write時, 萬一中斷發生了, 會導致Flash操作異常. 所以UART Bootloader才使用polling mode, 再者也不佔用Application會使用到PIC16的唯一中斷向量.

除非您的Application code沒有使用到中斷, 就可以再Bootloader使用中斷.(但記得把那段Remapped Reset Vector & Interrupt Vector的code註解掉)

檢查一下GIE 與 PIE是否有Enable.

6月04日 12:16:25
轉換PDF檔 列印


Re: 用MCC gen 出的 bootloader code 無法進入 __interrupt() INTERRUPT_InterruptManager () 問題
新會員
註冊日期:
1月13日 17:42:39
所屬群組:
註冊會員
文章: 19
等級: 3; EXP: 9
HP : 0 / 52
MP : 6 / 76
離線
Bootloader and Application 都會用到中斷

想請問
1. PIC16F18345 的I2C 一定要使用 中斷 的方式嗎?
2. Bootloader and Application 能同時使用中斷嗎?
3. 如何將 中斷 vector 重新指定新的位址??

6月04日 15:12:17
轉換PDF檔 列印


Re: 用MCC gen 出的 bootloader code 無法進入 __interrupt() INTERRUPT_InterruptManager () 問題
資深會員
註冊日期:
2009/02/26 09:42
所屬群組:
註冊會員
文章: 353
等級: 17; EXP: 53
HP : 0 / 413
MP : 117 / 13746
離線
1. MCC Generate出來的I2C slave default是使用中斷.
2. PIC16F系列只有一個中斷向量, 只能給Bootloader或是Application其中一個使用
3. 問題3, 在MCC generate的Bootloader code就有了~ 看一下附圖. 我剛剛測試是可以的~ 您試一下!

附加檔案:



jpg  Remap_Reset_Vector.jpg (108.19 KB)
5477_5ed8b9bc5e845.jpg 798X529 px

6月04日 17:07:11
轉換PDF檔 列印






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

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project