Part Number: RM44L520
Other Parts Discussed in Thread: HALCOGEN
I have been having a bit of trouble accessing flash using the F021 API. I included the F021_API_CoretexR4_LE_V3D16.lib file into my project and added the following folder to my include path:
C:\ti\Hercules\F021 Flash API\02.01.01\include
I updated my link.cmd file as shown below:
/*----------------------------------------------------------------------------*/
/* Memory Map */
MEMORY
{
VECTORS (X) : origin=0x00000000 length=0x00000020
KERNEL (RX) : origin=0x00000020 length=0x00008000
FLASH0 (RX) : origin=0x00008020 length=0x000B7FE0
STACKS (RW) : origin=0x08000000 length=0x00001000
KRAM (RW) : origin=0x08001000 length=0x00000800
RAM (RW) : origin=(0x08001000+0x00000800) length=(0x0001e400 - 0x00000800)
FEE (RW) : origin=0xF0200000 length=0x00004000 vfill=0xffffffff
FEE1 (RW) : origin=0xF0204000 length=0x00004000 vfill=0xffffffff
FEE2 (RW) : origin=0xF0208000 length=0x00004000 vfill=0xffffffff
FEE3 (RW) : origin=0xF020C000 length=0x00004000 vfill=0xffffffff
/* USER CODE BEGIN (2) */
/* USER CODE END */
}
/* USER CODE BEGIN (3) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Section Configuration */
SECTIONS
{
.intvecs : {} > VECTORS
/* FreeRTOS Kernel in protected region of Flash */
.kernelTEXT : {} > KERNEL
.cinit : {} > KERNEL
.pinit : {} > KERNEL
/* Rest of code to user mode flash region */
.text : {} > FLASH0
.const : {} > FLASH0
/* FreeRTOS Kernel data in protected region of RAM */
.kernelBSS : {} > KRAM
.kernelHEAP : {} > RAM
.bss : {} > RAM
.data : {} > RAM
.sysmem : {} > RAM
FEE_TEXT_SECTION : {} > FLASH0
FEE_CONST_SECTION : {} > FLASH0
FEE_DATA_SECTION : {} > RAM
/* USER CODE BEGIN (4) */
/* USER CODE END */
}
After compiling and flashing my board I stepped through with my debugger and get the following error when reaching the first F021 API call:
Can't find a source file at "C:\Sid\work\GIT\catmcuauto-flashapi-f021-int\API\makefile/../Source/FlashStateMachine.InitializeFlashBanks.c"
Locate the file or edit the source lookup path to include its location.
I found another post regarding this error linked below:
As recommended by one of the commenters, I checked if several memory locations where accessible using the code shown below:
uint32 Read; Read = *((volatile uint32_t *)0x000U); Read = *((volatile uint32_t *)0x100U); Read = *((volatile uint32_t *)0x200U); Read = *((volatile uint32_t *)0x300U);
Stepping through these lines of code did not cause an abort so it seems that my issues is different than the original poster. Any help at all would be greatly appreciated.
