常见问答
- M051 系列(95)
- M0518 系列(97)
- M0519 系列(43)
- M0564 系列(1)
- Mini51 系列(90)
- Nano100 / 102 系列(101)
- Nano103 Base 系列(10)
- Nano110 / 112 LCD 系列(100)
- Nano120 USB 系列(111)
- Nano130 USB+LCD 系列(110)
- NUC029 系列(94)
- NUC100 / 200 系列(102)
- NUC120 / 122 / 123 / 220 USB 系列(116)
- NUC121/125 系列(1)
- NUC126 USB 系列(2)
- NUC130 / 230 CAN 系列(103)
- NUC131/NUC1311 CAN 系列(98)
- NUC140 / 240 USB+CAN 系列(114)
- M451 Base 系列(118)
- M451M 系列(117)
- M452 USB 系列(130)
- M4521 USB 系列(1)
- M453 CAN 系列(128)
- M463 CAN FD/USB HS 系列(1)
- M467 Ethernet/Crypto 系列(1)
- M471 系列(1)
- M479 Motor Control Series(1)
- M481 Base 系列(4)
- M482 USB FS OTG 系列(4)
- M483 CAN 系列(4)
- M484 USB HS OTG 系列(4)
- M485 Crypto 系列(4)
- M487 Ethernet 系列(4)
- M4TK 触摸 IC 系列(25)
- NUC442 / 472 系列(130)
- NUC472 Series(1)
- NUC505 系列(138)
常见问答
使用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,如下图
此范例程序可参考 NUC505BSPV3.01.000\SampleCode\BootTemplate\MainOnSRAM
3. 若要在Debug mode下执行程序代码,须更改initialization file为SPIROM.ini
产品: | 微控制器 ,Arm Cortex-M4 微控制器 ,NUC505 系列 ,NUC505DL13Y ,NUC505DLA ,NUC505DS13Y ,NUC505DSA ,NUC505YLA2Y ,NUC505YLA ,NUC505YO13Y |
---|---|
应用: | |
功能: | Peripherals,Memory,SRAM |