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

How to load and execute from RAM

As I understand we must define both RAM_MODE and REMAP in ASM settings, but what about the linker settings ?

Parents
  • To remap the interrupt vectors to RAM on a Philips LPC2000 device, you need just to enter under

    Project - Options - Asm - DEFINE: RAM_MODE

    The startup file does then setup the MEMMAP register for RAM interrupt vectors.

    In addition you need for the debugger the file RAM.INI (which corrects the inital PC value). Take a look to the entry on the dialog

    Project - Options - Debug

Reply
  • To remap the interrupt vectors to RAM on a Philips LPC2000 device, you need just to enter under

    Project - Options - Asm - DEFINE: RAM_MODE

    The startup file does then setup the MEMMAP register for RAM interrupt vectors.

    In addition you need for the debugger the file RAM.INI (which corrects the inital PC value). Take a look to the entry on the dialog

    Project - Options - Debug

Children
  • In the startup.s file for this project (section included below) it appears that if 'REMAP' isn't set, then RAM_MODE isn't even checked (and the MEMMAP register is never set). So I think REMAP also needs to be defined.

    --------------------------------------------
    ; Memory Mapping (when Interrupt Vectors are in RAM)
    MEMMAP EQU 0xE01FC040 ; Memory Mapping Control
    IF :DEF:REMAP
    LDR R0, =MEMMAP
    IF :DEF:RAM_MODE
    MOV R1, #2
    ELSE
    MOV R1, #1
    ENDIF
    STR R1, [R0]
    ENDIF