:::


Browsing this Thread:   1 Anonymous Users






請教有關link檔的問題
#1
新會員
新會員


查看用戶資訊
DATABANK NAME=gpr0 START=0x20 END=0x6F
DATABANK NAME=gpr1 START=0xA0 END=0xEF
DATABANK NAME=gpr2 START=0x110 END=0x16F
DATABANK NAME=gpr3 START=0x190 END=0x1EF

SHAREBANK NAME=gprnobnk START=0x70 END=0x7F
SHAREBANK NAME=gprnobnk START=0xF0 END=0xFF
SHAREBANK NAME=gprnobnk START=0x170 END=0x17F
SHAREBANK NAME=gprnobnk START=0x1F0 END=0x1FF

以上是由microchip ide所copy下來的link檔片段,其中對bank0的share data register和microchip原文data sheet 中所寫的不同,在data sheet中bank0並沒有share data,但在link定義檔中卻有詳加定義,請問data share是因為likn檔的定義而異還是他是有實體上的定義.
我可以把一班的gprs在link檔中定義成share data嗎??


發表於: 2004/6/24 10:07
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教有關link檔的問題
#2
版主
版主


查看用戶資訊
share bank的意思是說,其實只有一個bank的實體記憶位置。存取到其它bank時,會存取到同一個位置。好處是,不用管目前bank的設定,反正一定會存取到同一個bank的同一個位置。
如果您將一般的gpr,改為share,應該會讓編譯器以為不用理會bank的設定,而讓程式抓錯bank的資料。

發表於: 2004/6/24 12:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教有關link檔的問題
#3
版主
版主


查看用戶資訊
有 Share Bank 設計的是指PIC16F87x/A 這一系列的PIC , 使用Share Bank的好處是不用切BANK,但只有 16 Bytes 而已,所以要用在刀口上,一般會使用在中斷程式的變數儲存因為可以不用管它是從哪一個BANK過來的。

Share Bank 的位址是固定在0x70-0x7F, 可以用下列方式來完成:

1. 使用 EQU 直接定址到 0x70 -0x7F 的位址

Rx_BFR EQU 0x70
Tx_BFR EQU 0x71
Rx_CMD EQU 0x72

2. 使用 CBLOCK & ENDC 的設定方式

CBLOCK 0x70
Rx_BFR, Tx_BFR
Rx_CMD:2 ; Double Bytes
ENDC

3. 使用 UDATA_SHR 的設定方式 (Re-locatable Syntax)

Share_Buffer UDATA_SHR
Rx_BFR RES 1
Tx_BFR RES 1
RX_CMD RES 2

發表於: 2004/6/24 13:46
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
You cannot start a new topic.
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]