This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

copying code to ram and executing it

Hello,

I am using Keil uVision 5.15 compiler. copying a routine to ram(FLASH_eraseOneBlock) and try to runit,
the code crashes (hardware Fault). I have looked at Keil's ram function example and it does not
work either. my code is:

typedef void (*FunctionPointer_t)(uint32_t );
FunctionPointer_t ramFunc;
uint32_t executableRam[100];

void TxfrToRam(void)
{
    uint32_t source,source_end;
    uint32_t *dest,addr;

    source = (uint32_t)&FLASH_eraseOneBlock;
    source_end = (uint32_t)source + 80;
    dest = (uint32_t *)executableRam;
    ramFunc = (FunctionPointer_t)dest;
    while (source < source_end)
    {
        *dest++ = *(uint32_t *)source++;
    }
    for (addr = 0x2000; addr < 0x20000; addr += FLASH_PAGE_SIZE)
    {
        ramFunc(addr);
    }
}

Any help will be highly appreciated.

Thanks

Yash