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 you misunderstood the issue.
    I have 2 programs now.

    1. USB_IAP.hex : loaded at location 0x0:0x1FFF
    2. my_prog.bin : loaded from 0x2000:0x2100 via IAP.

    Now my_prog.bin has already been loaded via IAP.

    Now, when I reset the board, first IAP will run, but as entry to bootloader is not asserted, it will jump to my_prog.bin.

    Now, my_prog.bin is using timer interrupt.
    So, when my_prog.bin is running, (and IAP is not running), will I be able to use interrupt?

    I checked the Startup.s file and couldn't figure out much.
    I do not have code for USB_IAP.hex.
    I have code of my_prog.bin.

    Now, what changes will I have to make to make interrupt of my_prog.bin work.

    Per, your inputs will be much appreciated.
    Tamir, thanks to being with me on this.

Reply
  • I think you misunderstood the issue.
    I have 2 programs now.

    1. USB_IAP.hex : loaded at location 0x0:0x1FFF
    2. my_prog.bin : loaded from 0x2000:0x2100 via IAP.

    Now my_prog.bin has already been loaded via IAP.

    Now, when I reset the board, first IAP will run, but as entry to bootloader is not asserted, it will jump to my_prog.bin.

    Now, my_prog.bin is using timer interrupt.
    So, when my_prog.bin is running, (and IAP is not running), will I be able to use interrupt?

    I checked the Startup.s file and couldn't figure out much.
    I do not have code for USB_IAP.hex.
    I have code of my_prog.bin.

    Now, what changes will I have to make to make interrupt of my_prog.bin work.

    Per, your inputs will be much appreciated.
    Tamir, thanks to being with me on this.

Children