Пытаюсь выполнить функцию из RAM.
Попадаю в Hardfault.
Подскажите, что я делаю неправильно ?
STM32L151 Keil
Код
////////////////////////////
void function(void)
{
}
//////////////////////////
void Execute_Function_From_Ram(void)
{
unsigned int func_ram_array[0x20];
int i;
unsigned char *p1;
unsigned char *p2;
void (*p_function)(void)=&function;
p_function(); ///вызов через указатель ОК
//переписываем функцию в RAM
p1=(unsigned char*)p_function;
p2=(unsigned char*)&func_ram_array[0];
for(i=0;i<(0x20*4);i++)
{
p2[i]=p1[i];
}
//запускаем из RAM
p_function=(void*)p2;
p_function(); ///тут программа попадает в HardFault
}