• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   1 Anonymous Users






Re: 程式起始位址錯誤
#3
資深會員
資深會員


查看用戶資訊
謝謝板主
我再試試看好了
如此一來
幾乎每個程式都要有自己專屬的LKR檔是嗎?

請問一下
CODEPAGE NAME=page1 START=0x1000 END=0x1FFF PROTECTED
這一行是禁止程式碼寫到這一區的設定嗎?
把查表區保護起來讓MPLAB不要把程式碼排進去?
那麼他就會從0x2A開始排
排到0x1000時就跳過這一區從0x2000開始排?

NAME=page1 這個page1可不可以改成其他字?
還是說必須寫page1 page2 page3...

發表於: 2005/12/29 10:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 程式起始位址錯誤
#2
管理員
管理員


查看用戶資訊
Hi ,

若使用 MPLINK , 當然不用 ORG 囉 . 使用以下的語法才是正確.
還有 , 被強定位址的區間不要暴露給 MPLINK. 正確的方法是修改 .LKR 檔.

下列的範例搭配 .LKR 的修改 , 程式就對位址了 ! 要強定資料於 Program Memory , 用 CODE XXXX 是對的 . 但要改 .LKR 黨.

_________________ LKR _____________________

CODEPAGE NAME=vectors START=0x0 END=0x29 PROTECTED
CODEPAGE NAME=page START=0x2A END=0x0FFF
CODEPAGE NAME=page1 START=0x1000 END=0x1FFF PROTECTED
___________________________________________



LIST P=18F4320R=DEC
    
#INCLUDE <P18F4320.inc>    
#INCLUDE <VARIABLE_S.INC>   
設定變數    
;EXTERN  CRC_CHK1CRC_COMPARE 

COMPARE.ASM;數字資料
    
YYY    CODE 1000H  
#INCLUDE <Table_up.inc>       
 
ZZZ    CODE 1100H    
#INCLUDE <Table_down.inc>    



下降參數     
STR    CODE  0000H        
    
GOTO MAINLINE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 中斷向量    
IVT    CODE  
0008H    
    
GOTO INT_Service
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
    
SSS    CODE     


MAINLINE    CALL INITIAL              
程式初始化設定    
    BRA  CLEAN

CLEAN
    NOP
    
goto    CLEAN

INITIAL    
    NOP
    
return

INT_Service
    NOP
    retfie

    End

發表於: 2005/12/28 20:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


程式起始位址錯誤
#1
資深會員
資深會員


查看用戶資訊
LIST P=18F4320R=DEC
    
#INCLUDE <P18F4320.inc>
    #INCLUDE <VARIABLE_S.INC>   ; 設定變數

    
EXTERN  CRC_CHK1CRC_COMPARE COMPARE.ASM

;數字資料
    ORG 1000H  
上升表格存放位址
    
#INCLUDE <Table_up.inc>       ; 上升參數
    
ORG 1100H
    
#INCLUDE <Table_down.inc>     ; 下降參數

     
ORG  0000H    
    
GOTO MAINLINE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
中斷向量
    ORG  
0008H
    
GOTO INT_Service
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

    
CODE
MAINLINE
    CALL INITIAL              
程式初始化設定
    BRA  CLEAN

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

以上為主程式碼開頭
在設定查表回傳參數(上升下降參數)後
再寫
ORG 0000H
GOTO MAINLINE
我開了程式記憶體的視窗來看
照理說 MAINLINE 這個標籤的位址
應該是在0x2AH (LKR檔中所設定的起始位址)
但是程式編譯後卻是在0x117EH
為何主程式碼會排在下降參數的後面呢?
導致程式記憶體的0XXXH位址都是空白浪費掉了
我以前也是這樣寫卻都沒有問題
程式碼都從0x2AH開始擺\r

請問要怎麼寫才能讓程式碼擺在0XXXH的地方?
謝謝

發表於: 2005/12/27 16:16
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... ]

教育訓練中心

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