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

Interrupts not working when USB IAP(AN10711) is used

Hi All,
I am not an expert on ARM yet but an average guy for uC.

I am trying to get hands on with LPC2148 and plan to use it in next project.

One wonderful thing that I came across (I come form a background where we use 8051/mega16 uC) is USB IAP. So without any UART/Serial cable, I can flash program just by using USB cable.

Did some changes like
1. generating bin file (using fromelf --bin ....) and
2. changing IROM1 from 0x0 to 0x2000

to make program work with IAP.

I tasted some program and those worked very well.

But the issue is arising when I try to use Timer0 interrupt.
I see controller getting stuck somewhere just after 1st int.

I checked with "Use Memory Layout with Target Dialog" selected and de-selected both.
Nothing worked.

This has something to do with vector table but I am not able to make out what?

Any help on this would be appreciated.

Remember, I just made 3 above mentioned changes after creating new project.
If there is anything else, please let me know.

Parents
  • I think what I have is exactly this only.

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

    By defining REMAP and RAM_MODE, this will do exactly what your code snippets does with RAM_INTVEC.

    In the Startup.s that I am using, what shown above is the only place where REMAP and RAM_MODE is used. There are no other defines.

Reply
  • I think what I have is exactly this only.

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

    By defining REMAP and RAM_MODE, this will do exactly what your code snippets does with RAM_INTVEC.

    In the Startup.s that I am using, what shown above is the only place where REMAP and RAM_MODE is used. There are no other defines.

Children