Re: 為ISR預留空間並設寫入保護

作者 Ryang 於 2017年09月14日 14:07:45
1. 程式開始先寫 ISR 並指定 org 0x0004

org 0x00
goto Start
org 0x04
isr routine
:
:
org 0x200
Start 主程式

這樣 ISR 就會在 0x04 以後的空間。
因為後面的程式被指定在 0x200 以後的位址,所以組譯後也都會在 0x200 以後的位址。

2. 修改 pic16F1937-g.lkr 檔

將 lkr 當做適當的修改。將 0x0000 ~ 0x01ff 做保護,這樣組譯時就會避開這段區間。但用 org 指定的位址則不受影響。

LIBPATH .

CODEPAGE NAME=Userpage START=0x00 END=0x1FF PROTCETED
CODEPAGE NAME=page0 START=x200 END=0x7FF
CODEPAGE NAME=page1 START=0x800 END=0xFFF
CODEPAGE NAME=page2 START=0x1000 END=0x17FF

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=21622&post_id=76755