Re: 想請教關於起始位址錯誤的問題
|
||||
---|---|---|---|---|
版主
|
0x0000~0x0004 是Protected區域,一般寫程式是只要放 GOTO xxxx 的指令就可以了。但大部分的設計師都會將中斷直接寫在 0x0004 的區間裡造成Linker記憶分配跨界的問題,所以將這段區亦放大可以涵蓋你的中斷程式大小就可以了。
發表於: 2006/3/26 11:38
|
|||
|
Re: 想請教關於起始位址錯誤的問題
|
||||
---|---|---|---|---|
新會員
|
前輩,按照你的做法,已解決問題了,謝謝。
可以請教一下為何要改成這樣的數據嗎? 因為我沒有動過LKR,為何軟體的預設值會出現這樣的問題呢?
發表於: 2006/3/24 1:56
|
|||
|
Re: 想請教關於起始位址錯誤的問題
|
||||
---|---|---|---|---|
版主
|
vectors section 位址範圍太小了,改大一點看看:
CODEPAGE NAME=vectors START=0x0000 END=0x0001F PROTECTED CODEPAGE NAME=page0 START=0x00020 END=0x07FF
發表於: 2006/3/23 17:14
|
|||
|
Re: 想請教關於起始位址錯誤的問題
|
||||
---|---|---|---|---|
新會員
|
以下是16f877的LKR檔,如果我將下面的START=0x5改為0x0會跟第一行的程式保護區起始位址衝突到嗎?
CODEPAGE NAME=page0 START=0x5 END=0x7FF ================================== // Sample linker command file for 16F877 // $Id: 16f877.lkr,v 1.4 2002/01/29 22:10:01 sealep Exp $ LIBPATH . CODEPAGE NAME=vectors START=0x0 END=0x4 PROTECTED CODEPAGE NAME=page0 START=0x5 END=0x7FF CODEPAGE NAME=page1 START=0x800 END=0xFFF CODEPAGE NAME=page2 START=0x1000 END=0x17FF CODEPAGE NAME=page3 START=0x1800 END=0x1FFF CODEPAGE NAME=.idlocs START=0x2000 END=0x2003 PROTECTED CODEPAGE NAME=.config START=0x2007 END=0x2007 PROTECTED CODEPAGE NAME=eedata START=0x2100 END=0x21FF PROTECTED .......
發表於: 2006/3/23 0:54
|
|||
|
Re: 想請教關於起始位址錯誤的問題
|
||||
---|---|---|---|---|
高級會員
|
0x00 是要預留給ICD2用
如果要用 應該是要改標頭檔吧
發表於: 2006/3/23 0:52
|
|||
|
想請教關於起始位址錯誤的問題
|
||||
---|---|---|---|---|
新會員
|
你好,我想請教一下,
我在燒錄16f877時,按照書本上的範例key上, 但在build all程式的時候,問題都出現在起始位址上, 如果想如範例上將起始位址設在0x00上, 是否得在LKR裡改呢? 那要改哪些數據呢? 謝謝
發表於: 2006/3/22 17:32
|
|||
|