Hi everyone,
I was trying to compile TI bootloader for TMS570LS0232, I have got a linker error while using Fapi_doMarginReadByByte function.
undefined first referenced symbol in file --------- ---------------- Fapi_serviceWatchdogTimer C:\ti\Hercules\F021 Flash API\02.01.01\F021_API_CortexR4_BE_NDS.lib<Read.WdService.obj>
I research about using FAPI version 02.01.01 for TMS570LS0232 but nothing about any restriction for this MCU.
When I delete code block about FAPI reading, It's compiled successfully.
uint32_t Fapi_BlockRead( uint32_t Flash_Start_Address, uint32_t Data_Start_Address, uint32_t Size_In_Bytes)
{
register uint32_t src = Data_Start_Address;
register uint32_t dst = Flash_Start_Address;
register uint32_t bytes_remain = Size_In_Bytes;
int bytes;
if (Size_In_Bytes < 16)
bytes = Size_In_Bytes;
else
bytes = 16;
while( bytes_remain > 0)
{
Fapi_doMarginReadByByte((uint8_t *)src,
(uint8_t *)dst,
(uint32_t) bytes, //16
Fapi_NormalRead);
src += bytes;
dst += bytes;
bytes_remain -= bytes;
}
return (0);
}
linker.cmd
//*****************************************************************************
//
// bl_link.cmd: command file
// Date : 9-19-2012
//
// Copyright (c) 2006-2011 Texas Instruments Incorporated. All rights reserved.
// Software License Agreement
//
// Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source
// software in order to form a larger program.
//
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER.
//
//*****************************************************************************
/* */
/*----------------------------------------------------------------------------*/
/* 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=0x000100020-0x20 vfill = 0xffffffff
SRAM (RW) : origin=0x08002020 length=0x0002D000
STACK (RW) : origin=0x08000020 length=0x00002000
BLRAM (RW) : origin=0x08000000 length=0x00000020
/* USER CODE BEGIN (2) */
#if 0
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 }
#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_NDS.lib" (.text)
} palign=8 load = FLASH0, run = SRAM, LOAD_START(apiLoadStart), RUN_START(apiRunStart), SIZE(apiLoadSize)
.text : {} > FLASH0 /*Initialized executable code and constants*/
.const : {} palign=8 load=FLASH0, run = SRAM, LOAD_START(constLoadStart), RUN_START(constRunStart), SIZE(constLoadSize)
.cinit : {} > FLASH0 /*Initialized global and static variables*/
.pinit : {} > FLASH0
.data : {} > SRAM
.bss : {} > SRAM /*Uninitialized Global and static variables */
.sysmem : {} > SRAM
/* USER CODE BEGIN (4) */
/* USER CODE END */
}
/* USER CODE BEGIN (5) */
/* USER CODE END */