Post Go back to editing

Core interruptes Blackfin609

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