您好,
我在使用 Flash API 将数据存储到 闪 存的 Bank 0或1时遇到问题。
我的设置如下:
[TMS570LS3137PGE 定制板]⇐⇐⇐[ CAN 接口]⇐⇐⇐[ CAN 模块 SPI ]⇐ ⇐ ⇐[Arduino UNO]
但是,0x00180000中的内存空间是空的(初始内存位置0x00020020时尝试,但未成功)。 我认为这必须与 BL_LINK_cmd 配置相关。 MI bl_link.cmd 如下:
/* USER CODE BEGIN (0) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Linker Settings */
--retain="*(.intvecs)"
/* USER CODE BEGIN (1) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Memory Map */
MEMORY
{
VECTORS (X) : origin=0x00000000 length=0x00000020 vfill = 0xFFFFFFFF
FLASH0 (RX) : origin=0x00000020 length=0x0017FFDF vfill = 0xFFFFFFFF
FLASH1 (RX) : origin=0x00180000 length=0x002FFFFF vfill = 0xFFFFFFFF
SRAM (RW) : origin=0x08002000 length=0x00002000
STACK (RW) : origin=0x08004000 length=0x00002000
// VECTORS (X) : origin=0x00000000 length=0x00000020 vfill = 0xffffffff
// FLASH0 (RX) : origin=0x00000020 length=0x00010000 vfill = 0xffffffff
// FLASH1 (RX) : origin=0x00010020 length=0x07FF1FE0 vfill = 0xffffffff
// SRAM (RWX) : origin=0x08002000 length=0x00002000
// STACK (RW) : origin=0x08004000 length=0x00002000
/* USER CODE BEGIN (2) */
#if 1
ECC_VEC (R) : origin=(0xf0400000 + (start(VECTORS) >> 3))
length=(size(VECTORS) >> 3)
ECC={algorithm=algoL2R5F021, input_range=VECTORS}
ECC_FLA0 (R) : origin=(0xf0400000 + (start(FLASH0) >> 3))
length=(size(FLASH0) >> 3)
ECC={algorithm=algoL2R5F021, input_range=FLASH0 }
ECC_FLA1 (R) : origin=(0xf0400000 + (start(FLASH1) >> 3))
length=(size(FLASH1) >> 3)
ECC={algorithm=algoL2R5F021, input_range=FLASH1 }
#endif
/* USER CODE END */
}
/* USER CODE BEGIN (3) */
ECC
{
algoL2R5F021 : address_mask = 0xfffffff8 /* Address Bits 31:3 */
hamming_mask = R4 /* Use R4/R5 build in Mask */
parity_mask = 0x0c /* Set which ECC bits are Even and Odd parity */
mirroring = F021 /* RM57Lx and TMS570LCx are build in F021 */
}
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Section Configuration */
SECTIONS
{
.intvecs : {} > VECTORS
flashAPI:
{
.\source\Fapi_UserDefinedFunctions.obj (.text)
.\source\bl_flash.obj (.text)
//--library= "c:\ti\Hercules\F021 Flash API\02.01.01\F021_API_CortexR4_BE_V3D16.lib" (.text)
--library="F021_API_CortexR4_BE_V3D16.lib" (.text)
} palign=8 load = FLASH0, run = SRAM, LOAD_START(apiLoadStart), RUN_START(apiRunStart), SIZE(apiLoadSize)
.text : {} > FLASH0 | FLASH1 /*Initialized executable code and constants*/
//.const : {} load=FLASH0 , run = SRAM, LOAD_START(constLoadStart), RUN_START(constRunStart), SIZE(constLoadSize)
.const : {} > FLASH0 | FLASH1
.cinit : {} > FLASH0
.pinit : {} > FLASH0
.bss : {} > SRAM
.data : {} > SRAM
.sysmem : {} > SRAM
/* USER CODE BEGIN (4) */
/* USER CODE END */
}
/* USER CODE BEGIN (5) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Misc */
/* USER CODE BEGIN (6) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
非常感谢您的问候,
莱安德罗
