您好、Wang、
要正确使用映像,我将 应用程序的链接命令设置如下所示;
------------------------------------------------------------------
/*链接器设置*/
--retain="*(.intvecs)"
/*用户代码开始(1)*/
/*用户代码结束*/
/*------------------ *
/*内存映射*/
存储器
{
/*用户代码开始(2)*/
/*用户代码结束*/
引导程序(X):origin=0x00200000 length=0x00000020
FLASH0 (RX):origin=0x00000000 length=0x00200000
FLASH1 (RX):origin=0x00200020 length=0x001FFFE0
RAM (rwx):origin=0x08002000 length=0x0007E000
栈(RW):origin=0x08000000 length=0x00002000
}
/*------------------ *
/*段配置*/
部分
{
/*用户代码开始(5)*从 MecitPMK 添加的 flashAPI!/
/*用户代码结束*/
.intvecs:{}>向量
.text align(32):{}>FLASH1
.const align (32):{}> FLASH1
.cinit align (32):{}> FLASH1
.pinit align (32):{}> FLASH1
.bss:{}> RAM
.data :{}> RAM
.sysmem:{}>RAM
闪存 API:
{
--library="c:\ti\hercules\F021闪存 API\02.01.01\F021_API_CortexR4_be_L2FMC.lib"(.text、.data)
} palign =8 load = FLASH1,run = RAM,load_start (apiLoadStars),run_start (apiRunStars),size (apiLoadSizes)
}
------------------------------------------------------------------
İn 我的引导加载程序链接命令设置与此类似;
------------------------------------------------------------------
存储器
{
/*用户代码开始(2)*/
引导程序(X):origin=0x00000000 length=0x00000020 vfill =0xFFFF
FLASH0 (RX):origin=0x00000020 length=0x001FFFE0 vfill = 0xffffffff
FLASH1 (RX):origin=0x00200000 length=0x00200000 vfill = 0xffffffff
RAM (rwx):origin=0x08002000 length=0x0007E000
栈(RW):origin=0x08000000 length=0x00002000
#if 1.
ECC_VEC (R):origin=(0xf0400000 +(start (vectors)>> 3))
length=(size (vectors)>> 3)
ecc={algoL2R5F021、input_range=vectors}
ECC_FLA0 (R):origin=(0xf0400000 +(开始(FLASH0)>> 3))
length=(size (FLASH0)>> 3)
ecc={algoL2R5F021、input_range=FLASH0}
ECC_FLA1 (R):origin=(0xf0400000 +(开始(FLASH1)>> 3))
length=(size (FLASH1)>> 3)
ecc={algoL2R5F021、input_range=FLASH1}
#endif
/*用户代码结束*/
}
/*用户代码开始(4)*/
ECC
{
algoL2R5F021:address_mask = 0xfffffff8 //地址位31:3 */
汉明_mask = R4 /*使用掩码中的 R4/R5构建*/
奇偶校验掩码= 0x0c //设置哪些 ECC 位是偶校验和奇校验*/
镜像= F021 //* RM57Lx 和 TMS570LCx 在 F021中编译
}
/*用户代码结束*/
/*------------------ *
/*段配置*/
部分
{
/*用户代码开始(5)*/
/*用户代码结束*/
.intvecs:{}>向量
.text align (32):{}> FLASH0
.const align (32):{}> FLASH0
.cinit align (32):{}> FLASH0
.pinit align (32):{}> FLASH0
.bss:{}> RAM
.data :{}> RAM
.sysmem:{}>RAM
//.MYSECTION:{}> MYSTACK
闪存 API:
{
..\Boot\Fapi_UserDefinedFunctions.obj (.text)
.\Boot\BL_FLASH.obj (.text、.data)
--library="c:\ti\hercules\F021闪存 API\02.01.01\F021_API_CortexR4_be_L2FMC.lib"(.text、.data)
}palign =8 load = FLASH0、run = RAM、load_start (apiLoadStart)、run_start (apiRunStart)、size (apiLoadSize)
}
------------------------------------------------------------------
此外 ,应用程序启动地址定义为 : 0x0020020
应用程序状态地址定义为 :0x0020000
当我更改映像的 cmd 链接设置 时,引导加载程序跳转新映像不起作用。
顺便说一下,在新的映像 cmd 链接设置中,虽然我从设置中删除了闪存 API 部分,但如果设置从默认值更改,程序仍然不起作用。
请帮助 王先生。