Re: 關於udata的問題?
|
||||
---|---|---|---|---|
初級會員
|
感謝!了解了^^
發表於: 2005/11/10 15:25
|
|||
|
Re: 關於udata的問題?
|
||||
---|---|---|---|---|
版主
|
PROTECTED 的用意是告訴 Linker 這塊區域不可以隨擺資料,除非程式設計師強制的宣告要擺放在這哩,不然 Linker 會避開這對 PROTECTED 區域的。
發表於: 2005/11/10 15:23
|
|||
|
Re: 關於udata的問題?
|
||||
---|---|---|---|---|
初級會員
|
再請問一個問題,就是最後加上PROTECTED使這個位址就不會被別的變數使用,也就是說如果不加上PROTECTED是不是就有可能會被使用到?
想確認一下
發表於: 2005/11/10 15:19
|
|||
|
Re: 關於udata的問題?
|
||||
---|---|---|---|---|
版主
|
如果節區名稱SYS有與LKR檔得節區名稱一樣,Linker 就會以 LKR 的位址宣告為主。
如果名稱不同,(如你的例子) 這時會由 Linker 自行安排變數位址。這不是 Bug.
發表於: 2005/11/10 14:54
|
|||
|
關於udata的問題?
|
||||
---|---|---|---|---|
初級會員
|
在主程式宣告:
#pragma udata SYS static unsigned char SYSON[33]; #pragma udata 可是在lkr檔原本應該是要打SYS可是不小心打成SYS1,但還是compile過的去??這是bug嗎?還是原本就故意設計成這樣的? CODEPAGE NAME=vectors START=0x0 END=0x29 PROTECTED CODEPAGE NAME=page START=0x2A END=0x7FFF CODEPAGE NAME=idlocs START=0x200000 END=0x200007 PROTECTED CODEPAGE NAME=config START=0x300000 END=0x30000D PROTECTED CODEPAGE NAME=devid START=0x3FFFFE END=0x3FFFFF PROTECTED CODEPAGE NAME=eedata START=0xF00000 END=0xF003FF PROTECTED ACCESSBANK NAME=accessram START=0x0 END=0x5F DATABANK NAME=gpr0 START=0x60 END=0xFF DATABANK NAME=gpr1 START=0x100 END=0x1FF DATABANK NAME=savemap25 START=0x200 END=0x220 PROTECTED DATABANK NAME=gpr2 START=0x221 END=0x2FF DATABANK NAME=gpr3 START=0x300 END=0x3FF DATABANK NAME=gpr4 START=0x400 END=0x4FF DATABANK NAME=gpr5 START=0x500 END=0x5FF DATABANK NAME=gpr6 START=0x600 END=0x6FF DATABANK NAME=gpr7 START=0x700 END=0x7FF ACCESSBANK NAME=accesssfr START=0xF60 END=0xFFF PROTECTED SECTION NAME=SYS1 RAM=savemap25 SECTION NAME=CONFIG ROM=config STACK SIZE=0x100 RAM=gpr7
發表於: 2005/11/10 14:46
|
|||
|