よくある質問

常见问答

使用NUC505如何把程序代码放入SRAM执行?  日期:2017-10-17

1. 在main里面加入

    /* 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

    }

2. 加入scatter file,如下图

 FAQ192_I

此范例程序可参考 NUC505BSPV3.01.000\SampleCode\BootTemplate\MainOnSRAM


3. 若要在Debug mode下执行程序代码,须更改initialization file为SPIROM.ini
FAQ192_II

产品: 微控制器 ,Arm Cortex-M4 微控制器 ,NUC505 系列 ,NUC505DL13Y ,NUC505DLA ,NUC505DS13Y ,NUC505DSA ,NUC505YLA2Y ,NUC505YLA ,NUC505YO13Y
应用:
功能: Peripherals,Memory,SRAM