• slider image 71
  • slider image 72
  • slider image 73
:::


Browsing this Thread:   1 Anonymous Users






設定ROM Range
#1
新會員
新會員


查看用戶資訊
您好

想請教

如何限制編繹的時候 限制 ROM的範圍

我使用的是PIC16F18345
booloader: 0x0- 0x7ff
AP : 0x800-0x13ff

編譯時 想限制 bootloader+AP : 在0x13ff 之內...

Attach file:



jpg  Snipaste_2020-07-24_15-28-06.jpg (44.24 KB)
76378_5f1a8e7171946.jpg 628X153 px

發表於: 7/24 15:34
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 設定ROM Range
#2
版主
版主


查看用戶資訊
限制編譯後的程式限制在 0x13FF 的範圍裡? 這回答是如果你所編譯後的 AP 的 Size 就大於 0x13FF 的容量,那要怎樣限制呢?
Bootloader 與 AP 是兩個不同的程式,建議把這兩個程式分開寫Th。AP 程式會有 C 的初始程式做初始化的設定, 一般都是從 0x0000 的位址開始執行的。
但這個區域會是 Bootloader 的使用區域,所以 AP 必須移位避開與 Bootloader 衝突的位址。文中你是要移到 0x800 的位址,這時的做法是在 AP 做編譯
時在專案下設定的內容裡去修改 linker 的編譯起始位址為 0x0800 (offset Address, 如附圖所式),至於限制在 0x13FF 內是有困難的,除非你的 AP 程式碼本來就不大。

Attach file:



jpg  擷取.JPG (41.21 KB)
16_5f1e452a53f55.jpg 681X284 px

發表於: 7/27 11:08

Edited by Ryang on 2020年07月28日 12:26:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 設定ROM Range
#3
新會員
新會員


查看用戶資訊
至於限制在 0x13FF 內是有困難的,除非你的 AP 程式碼本來就不大。
=> bootloader+ AP 的程式碼, 若確定是 小於0x13FF, 能限制 編譯時 就放在 0~0x13FF嗎??

發表於: 7/29 13:50
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 設定ROM Range
#4
版主
版主


查看用戶資訊
一般情況下,XC8 的 Linker 會依元件的 ini 檔所提供的 ROM Size 訊息來擺放程式的。所以程式會隨意置放在整個 ROM 空間裡無法控制。

1. 如果要縮編在一個特定區可以修改該元件的 ini 檔。如貼圖二所示:

2. 也可以修改 Linker 下的 Memory Model 的 ROM Range 0-xxxx 的範圍,如圖ㄧ所示:

Attach file:



jpg  擷取.JPG (43.05 KB)
16_5f223e4de6d2d.jpg 685X291 px

jpg  擷取1.jpg (65.17 KB)
16_5f223e72bd0ff.jpg 693X518 px

發表於: 7/30 11:27
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.

[進階搜尋]