• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: p16f873a.lkr的問題
#8
高級會員
高級會員


查看用戶資訊
感謝板主熱心的指導 目前已經可以了

發表於: 2008/1/9 15:04
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: p16f873a.lkr的問題
#7
版主
版主


查看用戶資訊
謝謝,我剛也在懷疑 16F873A 的 lkr 檔有問題,因為跟 16F877A 的 lkr 差很多,照 PIC16F 的 RAM 劃分,RAM 0x20 ~ 0x7F 是屬於 DATABANK 的一般 RAM 的區塊,但這裡卻規劃成 SHAREBANK,這樣就不能直接使用 udata 來定義了。針對 SHAREDATA 有 udata_shr 的宣告,要不要改成底下的宣告,一樣楊予不同的 Sectio Name。
<Section Name> UDATA_SHR <RAM Address>

發表於: 2008/1/9 13:59
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: p16f873a.lkr的問題
#6
高級會員
高級會員


查看用戶資訊
板主你好
我仔細看了16F72.LKR中的內容
在GPR0與GPR1這兩個位址前面的宣告為
DATABANK而不是SHAREBANK
當我將16F873A.LKR中的內容中的
SHAREBANK NAME=gpr0 START=0x20 END=0x7F
SHAREBANK NAME=gpr0 START=0x120 END=0x17F

SHAREBANK NAME=gpr1 START=0xA0 END=0xFF
SHAREBANK NAME=gpr1 START=0x1A0 END=0x1FF

改為如下
DATABANK NAME=gpr0 START=0x20 END=0x7F
//SHAREBANK NAME=gpr0 START=0x120 END=0x17F

DATABANK NAME=gpr1 START=0xA0 END=0xFF
//SHAREBANK NAME=gpr1 START=0x1A0 END=0x1FF
就可以正確編譯了
請問這樣改會有什麼後遺症嗎


發表於: 2008/1/9 13:30
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: p16f873a.lkr的問題
#5
高級會員
高級會員


查看用戶資訊
我改寫了如下
但是組譯時依然有錯誤
data1 udata 0x20
SYSTEMSTATUS RES .2
COUNT RES .1
TIMELIMIT RES .3
BEEPCOUNT RES .2
REDCARDBUF RES .2

data2 udata 0x30
DELAYCOUNT RES .3
ALARMCOUNT RES .1
TEMPMAIN RES .1
CATEGORY RES .1
TIMER1 RES .1

data3 UDATA
TEMP RES .2
COUNT RES .1
HL5233STATUS RES .1

data4 UDATA
ADDRESS RES .1
BUFFER RES .2
COUNT RES .1
DELAYCOUNT RES .3

data5 UDATA
DELAYCOUNT RES .2

16f873a.lkr中內容改為
SHAREBANK NAME=data1 START=0x20 END=0x2f
SHAREBANK NAME=data2 START=0x30 END=0x3f
SHAREBANK NAME=data3 START=0x40 END=0x4f
SHAREBANK NAME=data4 START=0x50 END=0x5f
SHAREBANK NAME=data5 START=0x60 END=0x6f
SHAREBANK NAME=data6 START=0x70 END=0x7F

錯誤資訊如下
MPLINK 4.04, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section 'data1' can not fit the section. Section 'data1' length=0x0000000a
Errors : 1

若我將udata 後面加上絕對位址 仍然還是有錯誤的訊息
如下
MPLINK 4.04, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section 'data1' can not fit the absolute section. Section 'data1' start=0x00000020, length=0x0000000a
Errors : 1

請問還有什麼可能?感謝幫忙

發表於: 2008/1/9 12:39
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: p16f873a.lkr的問題
#4
版主
版主


查看用戶資訊
依據 udata 語法 : <Section Name> UDATA <RAM Address>
因為你不只有一個 udata 的宣告,所以在各個 udata 前脽便給個不重複的 Section Name,RAM Address 可以不指定。

發表於: 2008/1/9 11:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: p16f873a.lkr的問題
#3
高級會員
高級會員


查看用戶資訊
請再幫我看看 謝謝

發表於: 2008/1/9 11:39
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: p16f873a.lkr的問題
#2
版主
版主


查看用戶資訊
這樣不好想像,可以將宣告的變數方式貼上來嗎?

發表於: 2008/1/9 11:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


p16f873a.lkr的問題
#1
高級會員
高級會員


查看用戶資訊
請教各位一個問題
我在程式中有使用udata虛擬指令讓編譯器幫我做變數的安排
我也有將16f873a.lkr放置在專案裡
但是在編譯後會出現下列的錯誤
而我若改使用16f72.lkr去做編譯時則不會出現此問題
請問這要如何修正
MPLINK 4.04, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section '.udata' can not fit the section. Section '.udata' length=0x0000001e
Errors : 1

這是我宣告變數的方式
GLOBAL    SYSTEMSTATUS
    EXTERN    ADDRESS
,BUFFER
    EXTERN    _READHL5233
    EXTERN    TEMP    
    
#DEFINE TIME    .0

    
udata
    SYSTEMSTATUS    RES    .2
    COUNT            RES    .1
    TIMELIMIT        RES    .3
    BEEPCOUNT        RES    .2
    REDCARDBUF        RES    .2    
    DELAYCOUNT        RES    .3
    ALARMCOUNT        RES    .1
    TEMPMAIN        RES    .1
    CATEGORY        RES    .1
    TIMER1            RES    .1
還有些外部變數宣告在其他的檔案中
       檔案1
    UDATA
    DELAYCOUNT        RES .2    
       檔案2
    UDATA    
    ADDRESS        RES    .1
    BUFFER        RES    .2
    COUNT        RES    .1
    DELAYCOUNT    RES    .3
       檔案3
    UDATA
    TEMP            RES    .2
    COUNT            RES    .1
    HL5233STATUS    RES    .1

共30 
(0x1e)個變數

    
以下是從16f873a
.lkr中的內容,是沒有修改過的

// Sample linker command file for 16F873
// $Id: 16f873a.lkr,v 1.3.16.1 2005/11/30 15:15:29 curtiss 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
=.idlocs  START=0x2000   END=0x2003   PROTECTED
CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
CODEPAGE   NAME=eedata   START=0x2100   END=0x217F   PROTECTED

DATABANK   NAME=sfr0     START=0x0      END=0x1F     PROTECTED
DATABANK   NAME=sfr1     START=0x80     END=0x9F     PROTECTED
DATABANK   NAME=sfr2     START=0x100    END=0x10F    PROTECTED
DATABANK   NAME=sfr3     START=0x180    END=0x18F    PROTECTED

SHAREBANK   NAME=gpr0     START=0x20     END=0x7F
SHAREBANK   NAME
=gpr0     START=0x120    END=0x17F

SHAREBANK   NAME
=gpr1     START=0xA0     END=0xFF
SHAREBANK   NAME
=gpr1     START=0x1A0    END=0x1FF

SECTION    NAME
=STARTUP  ROM=vectors    // Reset and interrupt vectors
SECTION    NAME=PROG1    ROM=page0      // ROM code space - page0
SECTION    NAME=PROG2    ROM=page1      // ROM code space - page1
SECTION    NAME=IDLOCS   ROM=.idlocs    // ID locations
SECTION    NAME=DEEPROM  ROM=eedata     // Data EEPROM

發表於: 2008/1/9 11:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view 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.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------