Post Go back to editing

Core interruptes Blackfin609

Thread Summary

The user is working with core interrupts on the Blackfin 609 and is able to use the core timer interrupt (ADI_CID_IVTMR) but wants to use other interrupts like IVG7. The solution involves using the `adi_int_InstallHandler` API to install an interrupt handler and the `raise_intr` function to trigger the interrupt. However, the user encountered an issue where both cores enter deep sleep mode after using `raise_intr(7)`. The support engineer provided a code example and suggested checking the Core Event Controller Registers and Servicing Interrupts sections in the BF60x PRM for more details. The user tested the program and now understands core interrupts but needs guidance on how to make the ISR function run continuously with IVG7.
AI Generated Content
Category: Software
Product Number: BlackFin 609
Software Version: 2.11

Hi

This is Raju I'm trying to Work With Core Interruptes In BlackFin 609  I searched IRQ0 & IRQ1 &IRQ2 as Per SHARC Interruptes But I'm unable to Find out in Blackfin609.

I'm able to Work with Core timer Interrupte ADI_CID_IVTMR but Want to with another Interruptes not With With Core timer.

I swa Some Interrupt ID s like IVG2,IVG6 etc... But How to Use them.

Can Anyone help me With This.

Best Regards,

Raju

  • Hi Raju,
     
    The Core Event Controller supports nine general-purpose interrupts (IVG15 – 7), in addition to the dedicated interrupt and exception events. Of these general-purpose interrupts, the two lowest priority interrupts
    (IVG15 – 14) are recommended to be reserved for software interrupt handlers, leaving seven prioritized interrupt inputs to support peripherals. Leaving seven prioritized interrupt inputs (IVG7 – IVG13) to support the system.
     
    These general-purpose interrupts are triggered by using the RAISE instruction. The RAISE instruction forces events for interrupts IVG15-IVG7 and other interrupts respectively.
     
    You can use adi_int_InstallHandler API to install an interrupt handler for a given processor interrupt.

    It is a valid API for system interrupts, core interrupts, NMI, and hardware exceptions.
    For more information about Interrupt Handler, please refer the below CCES path for installing the interrupt.
    CCES help>contents>CrossCore Embedded Studio 2.x.x > System Runtime Documentation > Interrupt Support.

    Please find the Example snippet below,

    {

       adi_initComponents();
         
        adi_core_enable(ADI_CORE_1);
     
        adi_int_InstallHandler(ADI_CID_IVG7,(ADI_INT_HANDLER_PTR)Core_Interrupt_Handler,0,1);
        raise_intr(7);
     
    }

    Also, Please refer the below FAQ regarding adi_int_InstallHandler API below:
    ez.analog.com/.../faq-how-do-i-set-up-interrupts-on-sharc

    This is applicable for Blackfin too.

    Regards,
    Divya.P

  • Hai Divya

    I traid Raise_Intr(7); what you suggested above snippet 

    {

    adi_initComponents();
         
        adi_core_enable(ADI_CORE_1);
     
        adi_int_InstallHandler(ADI_CID_IVG7,(ADI_INT_HANDLER_PTR)Core_Interrupt_Handler,0,1);
        raise_intr(7);
     }

    I included above snippet in My Code, After Debug Processor i. e Core 0&Core 1 Both are Enter Into Deep Sleep Mode I Couldn't Understand What was Mistake. If I Comments raise_Intr(7); it's running Without any abstraction.

    Can you please Explain with Example?

    And How Core Interruptes are Process?

    Best Regards,

    Raju


  • Hi Raju,

    Please find attached code, for RAISE instruction using IVG7.BF609_RAISE_Core0.zip

    For more information regarding core interrupt refer the " Core Event Controller Registers" in page: 173 and   "Servicing Interrupts" section in page: 187 of BF60x PRM.
    www.analog.com/.../Blackfin_pgr_rev2.2.pdf

    Regards,
    Divya.P


  • Hi Divya

    I Tested Above Program What you Suggested Thank you. now I got Knowledge about Core interrupts But it's entering only One time?

    If i want to use this ISR function Continuously With IVG7. What should I do.

    Regards,

    Raju

  • Hi Raju,

    Can you please elaborate more on "want to use this ISR function Continuously With IVG7" and explain in detail about your requirement.

    Are you asking about raising multiple events with same IVG7 interrupt ID.

    Regards,
    Divya.P