IAR程式編譯出現BANKED_CODE不足的錯誤
在IAR程式編譯過程中,出現BANKED_CODE不足的錯誤,請問要如何設定那一段程式要存哪邊去避免全部擠在同一區塊或是增加BANKED_CODE的空間?
而且0x8221應該比0x21751小為何會放不進去?
Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment BANKED_CODE. Unable to place 1 block(s) (0x8221 byte(s)
total) in 0x21751 byte(s) of memory. The problem occurred while processing the segment placement command
"-P(CODE)BANKED_CODE=_CODE_START-_CODE_END,[(_CODEBANK_START+_FIRST_BANK_ADDR)-(_CODEBANK_END+_FIRST_BANK_ADD
R)]*_NR_OF_BANKS+10000", where at the moment of placement the available memory ranges were
"CODE:306b-306b,CODE:3074-7fff,CODE:18231-1ffff,CODE:28000-2ffff,CODE:38000-3ffff,CODE:48000-4ffff,CODE:58000-5ffff,CODE:68000-6ffff,CODE:78000-7
ffef"
Error while running Linker
另外當我試著將CODE BANK修改時,原本是從0x8000到0xFFFF,我改成0x7000到0xFFFF,出現了以下錯誤
Warning: Verification error on page #14, address range 0x07000 - 0x07800, address 0x07000, 0xC0 (on target) != 0xC8 (in object file).
............................
Warning: Verification error on page #47, address range 0x37800 - 0x38000, address 0x37FFF, 0x75 (on target) != 0x68 (in object file).
Download completed and verification successful.
Loaded debugee: D:\研發\BLE-CC254x-1.4.0(GRG+Task+I2C)\Projects\ble\BLE_Bridge\CC2541DB\CC2541-UART\Exe\BLE_Bridge.d51
Target reset
The stack pointer for stack 'IdataStack' (currently IData:0x00) is outside the stack range (IData:0x40 to IData:0x100)
The stack pointer for stack 'XdataStack' (currently XData:0x0000) is outside the stack range (XData:0x0001 to XData:0x0281)
大至上看來是0x07000~0x08000、0x17000~0x18000、0x27000~0x28000、0x37000~0x38000中間這段是不能用的,
那看起來我應該可以用0x47000-0x4ffff,0x57000-0x5ffff,0x67000-0x6ffff,0x77000-0x7ffef之類的空間阿,如何可以設定不要從0x07000開始直接從0x047000開始?