會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客





codeoffset 問題
新會員
註冊日期:
1月13日 17:42:39
所屬群組:
註冊會員
文章: 17
等級: 2; EXP: 86
HP : 0 / 46
MP : 5 / 66
離線
MCU: PIC16F18345

我設定 CODEODDSET=0x700 之後

下I2c 就跑不到 這裡..

void __interrupt() INTERRUPT_InterruptManager (void)
{
// interrupt handler
if(INTCONbits.PEIE == 1)
{
if(PIE1bits.BCL1IE == 1 && PIR1bits.BCL1IF == 1)
{
MSSP1_InterruptHandler();
}
else if(PIE1bits.SSP1IE == 1 && PIR1bits.SSP1IF == 1)
{
MSSP1_InterruptHandler();
if (1==SSP1STATbits.D_nA && 0==SSP1STATbits.R_nW )
{
if (i2c1RdData==0xAA)
{
enterBootLoader=1;
}


請問 設定完 codeoffset 後,
Reset_Vector 就移到 0x700??
Interrupt_Vector 也會同步移到 0x704 ??

若是的話.. 是不是還需什麼設定, 才能讓
"void __interrupt() INTERRUPT_InterruptManager (void)"
工作正常???

6月03日 17:47:18
轉換PDF檔 列印


Re: codeoffset 問題
資深會員
註冊日期:
2009/02/26 09:42
所屬群組:
註冊會員
文章: 353
等級: 17; EXP: 53
HP : 0 / 413
MP : 117 / 13733
離線
請問一下您的Bootloader project有設定ROM Range: 0-6FF嗎?

您可以參考一下下面Bootloader Generator User Guide.

http://ww1.microchip.com/downloads/en/DeviceDoc/40001779B.pdf

附加檔案:



jpg  Bootloader_ROM_Range.jpg (107.34 KB)
5477_5ed84d8491b17.jpg 897X582 px

6月04日 09:27:29
轉換PDF檔 列印


Re: codeoffset 問題
新會員
註冊日期:
1月13日 17:42:39
所屬群組:
註冊會員
文章: 17
等級: 2; EXP: 86
HP : 0 / 46
MP : 5 / 66
離線
Bootloader project 有設定 ROM Range: 0-6FF 嗎? => 有
已有參考 該文件的做法了

你意思是要
1. 先將Bootloader project 有設定 ROM Range: 0-6FF
2. APPLICATION 設OFFSET 到0x700
3. 將Bootloader 及 APPLICATION 燒進 PIC16F18345


當程式 跑在 APPLICATION 時, 在APPLICATION 的
void __interrupt() INTERRUPT_InterruptManager (void)
就能使用...

有I2C 的中斷, 就可以跑到這段CODE 嗎???

6月04日 09:35:25
轉換PDF檔 列印


Re: codeoffset 問題
資深會員
註冊日期:
2009/02/26 09:42
所屬群組:
註冊會員
文章: 353
等級: 17; EXP: 53
HP : 0 / 413
MP : 117 / 13733
離線
您先根據Bootloader User Guide的說明, 將Bootloader和Application透過MPLAB X IDE的loadables功能合併再一起後, 透過燒錄器燒錄.

先測試看看有沒有正確從Bootloader jump到 Application.

可以用燒錄器同時debug兩個project.

6月04日 10:38:30
轉換PDF檔 列印


Re: codeoffset 問題
新會員
註冊日期:
1月13日 17:42:39
所屬群組:
註冊會員
文章: 17
等級: 2; EXP: 86
HP : 0 / 46
MP : 5 / 66
離線
先回到我初始的問題, 先不要和 bootloader 挷一起問好了


單純的application(無bootloader), 有用到中斷
設定了 codeoffset (如0x600)後,
中斷就不能用了
在沒設offset 前 中斷是OK的

有無什麼方法 讓offset 後, 中斷能正常使用???

6月04日 15:34:55
轉換PDF檔 列印


Re: codeoffset 問題
資深會員
註冊日期:
2009/02/26 09:42
所屬群組:
註冊會員
文章: 353
等級: 17; EXP: 53
HP : 0 / 413
MP : 117 / 13733
離線
如果您只單純將Application做code offset到0x600, 也不和Bootloader Project combine在一起的話, 那就要在您的Application自行remap Reset Vector到0x600.

請問您是怎麼Remap中斷的?

6月04日 17:00:06
轉換PDF檔 列印






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

[進階搜尋]


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