各位前輩好:
小弟最近移值官網的HDK BootLoader Sample Code 到keil C 開發環境,在linker 檔遇到問題,問題如下:
下面是CCS bl_link.cmd 資料
--retain="*(.intvecs)"
MEMORY
{
VECTORS (X) : origin=0x00000000 length=0x00000020
FLASH_API (RX) : origin=0x00000020 length=0x000014E0
FLASH0 (RX) : origin=0x00001500 length=0x002FEB00 //LS31x Flash size is 0x300000
SRAM (RW) : origin=0x08002000 length=0x0002D000
STACK (RW) : origin=0x08000000 length=0x00002000
}
SECTIONS
{
.intvecs : {} > VECTORS
flashAPI :
{
..\Debug\Fapi_UserDefinedFunctions.obj (.text)
..\Debug\bl_flash.obj (.text)
--library= I:\CCS_Test\SafetyMCU_Bootloader\lib\F021_API_CortexR4_LE.lib < FlashStateMachine.IssueFsmCommand.obj
FlashStateMachine.SetActiveBank.obj
FlashStateMachine.InitializeFlashBanks.obj
FlashStateMachine.EnableMainSectors.obj
FlashStateMachine.IssueFsmCommand.obj
FlashStateMachine.ScaleFclk.obj
Init.obj
Utilities.CalculateEcc.obj
Utilities.WaitDelay.obj
Utilities.CalculateFletcher.obj
Read.MarginByByte.obj
Read.Common.obj
Read.FlushPipeline.obj
Read.WdService.obj
Async.WithAddress.obj
Program.obj > (.text)
} load = FLASH_API, run = SRAM, LOAD_START(api_load), RUN_START(api_run), SIZE(api_size)
.text > FLASH0
.const > FLASH0
.cinit > FLASH0
.pinit > FLASH0
.data > SRAM
.bss > SRAM
}
SECTIONS的這段code該怎麼移值到keil C 的,目前下面是我的設定,不過SECTIONS部份還沒辦法移值過來,compiler 出來的map檔跟CCS在FLASH_API段不一樣。
FLASH 0x00000000 0x00300000
{
VECTORS 0x00000000 0x00000020
{
*.o (intvecs, +First)
}
FLASH_API 0x00000020 0x000044E0
{
*(+RO)
}
FLASH0 0x00004500 0x002FEB00
{
.ANY2 (+RO)
}
SRAM 0x08002000 0x0002D000
{
*.o (.data, +ZI +RW)
*.o (.bss)
.ANY (+ZI +RW)
}
STACK 0x08000000 0x00002000
{
.ANY (+RW)
}
}
有沒有人有這方面的經驗可以分享的,謝謝!