Re: PIC16F15354 Code Size超過50%後 Program Flash定址錯誤

作者 dginlon 於 2019年10月31日 13:49:18
Dear pgferic:
只是XC8 在配置記憶體不是線性爾已
如果PAGE 沒被占滿 XC8 會從 每一個PAGE 的最高處放主程式(Main)
XC8 把程式碼放在HEF 區域並沒有問題,你又沒有宣告HEF 被占用。
你可以兩個方式來保留 HEF 區域

1 . 規劃一塊記憶題放在HEF
const char RomImage[128]@ 0x1F00={ 0x00,...};
2 . 直接告訴 XC8 不要 使用 HEF
Project propertics-> XC8 linker -> ROM ranges

填入 default, -0F80-0FFF

Specify ROM ranges The compiler initially knows about on-chip ROM only. If external ROM is available then this can be specified via this option. Areas of on-chip ROM that must be reserved can also be listed. Examples: 0-7FF,1000-1FFF ignore on-chip ROM, use only specified ranges; default,3000-3FFF use default on-chip ROM, plus an additional range; default,-7F0-7FF use default ROM, but reserve 16 bytes at 7F0.

注 1 & 2 可以並用