Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

Enabling ARM Interrupts in the "Boot Images" example

$
0
0

I am trying to enable ARM Interrupts in the "Boot Images" example http://processors.wiki.ti.com/index.php/Boot_Images_for_OMAP-L137. Since the original ARM linker script did not have anything for the interrupts I added missing lines as:

    .svcstack    >        SHAREDRAM        /* Supervisor Mode Stack            */
    .irqstack    >        SHAREDRAM        /* IRQ Interrupt Stack                */
    .fiqstack    >        SHAREDRAM        /* FIQ Interrupt Stack                */
    .sysmem      >        SHAREDRAM        /* Dynamic Memory Allocation Area     */

    .cio        >        SHAREDRAM        /* C I/O Buffer                        */
    .intvecs    >        ARMRAM            /* Interrupt Vectors                */
    .data       >        SHAREDRAM

I also pasted the three required asm files (ARM9_handler.asm, ARM9_initstack.asm and ARM9_intvecs.asm) in the ARM project directory. After the arm project is compiled I update the entry point address DEVICE_ARM_UBL_LOAD_ADDR in the DSP code and expect it to run with the interrupts supported. The interrupts I tried are CHIP_SIG2 and Timer1. Both run perfectly if the code is run through a debugger. But if I try to run from flash the ARM code crashes immediately after the first interrupt happens. With interrupts disabled (enable_IRQ() commented out) the ARM runs perfectly even from the flash memory (LEDs blink, a record in shared RAM is updated continuously). The ARM is in the supervisor mode (switched in boot.asm, CPSR mode bits are 10011).

So, the question is how can I make the ARM interrupts work? On the DSP side everything is fine, the interrupts and everything else are fully functional.


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>