How to put code into SRAM for execution when using NUC505?

Post Reply
a_ziliu
Posts: 208
Joined: 20 Mar 2017, 10:52

31 May 2021, 15:44

In the main, add:
/* Relocate vector table in SRAM for fast interrupt handling. */
{
#if defined ( __CC_ARM )
extern uint32_t __Vectors[];
extern uint32_t __Vectors_Size[];
extern uint32_t Image$$ER_VECTOR2$$ZI$$Base[];

printf("Relocate vector table in SRAM (0x%08X) for fast interrupt handling.\n", Image$$ER_VECTOR2$$ZI$$Base);
memcpy((void *) Image$$ER_VECTOR2$$ZI$$Base, (void *) __Vectors, (unsigned int) __Vectors_Size);
SCB->VTOR = (uint32_t) Image$$ER_VECTOR2$$ZI$$Base;

#elif defined (__ICCARM__)
#pragma section = "VECTOR2"
extern uint32_t __Vectors[];
extern uint32_t __Vectors_Size[];

printf("Relocate vector table in SRAM (0x%08X) for fast interrupt handling.\n", __section_begin("VECTOR2"));
memcpy((void *) __section_begin("VECTOR2"), (void *) __Vectors, (unsigned int) __Vectors_Size);
SCB->VTOR = (uint32_t) __section_begin("VECTOR2");

#endif
}
Add scatter file, as shown below:

For the sample code, refer to: NUC505BSPV3.01.000\SampleCode\BootTemplate\MainOnSRAM
To execute the code in Debug mode, change the initialization file to SPIROM.ini.

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 6 guests