BF706 DMA function

HI!

I'm reading source code written by a former staff, and I found this:

adi_int_InstallHandler(31,SPORTSRxHandler,NULL,true)

I check the hardware mannual, and I only got this:

I dont know how the DMA occurs and how this function works,where is the interrupt source.

Thanks

Parents
  • +1
    •  Analog Employees 
    on Nov 12, 2020 12:51 PM 3 months ago

    Hi,

    1) Regarding, "I don't know how the DMA occurs and how this function works, where is the interrupt source."
    >> Please refer the Chapter-19, "DMA Channel Programming Model" for DMA operation from below link
    >> www.analog.com/.../BF70x_BlackfinProcessorHardwareReference.pdf

    2) The below API can be used to install an interrupt handler for a given processor interrupt.

    ADI_INT_STATUS adi_int_InstallHandler (
    uint32_t iid,
    ADI_INT_HANDLER_PTR pfHandler,
    void * pCBParam,
    bool bEnable )


    It is a valid API for system interrupts, core interrupts, NMI, and hardware exceptions. The API takes the following arguments:

    •iid - Interrupt ID. For system interrupts this is the system interrupt ID (also referred to as peripheral interrupt ID in the Hardware Reference manuals). This is a unique number to identify a particular interrupt. Refer to the Hardware Reference manual for your processor to find the number for a specific interrupt.

    •pfHandler - Handler which handles the interrupt. This handler will be called when the interrupt occurs.

    •pCBParam - Application-provided callback parameter, which is passed back when the given handler is called.

    •bEnable - Flag, which indicates whether to enable or disable the given interrupt, after the interrupt handler installation. The interrupt can be disabled during the installation and enabled later by calling adi_int_EnableInt().This argument should be set to:

    ◦true to enable the interrupt

    ◦false to disable the interrupt

    Regards,
    Anand Selvaraj.

Reply
  • +1
    •  Analog Employees 
    on Nov 12, 2020 12:51 PM 3 months ago

    Hi,

    1) Regarding, "I don't know how the DMA occurs and how this function works, where is the interrupt source."
    >> Please refer the Chapter-19, "DMA Channel Programming Model" for DMA operation from below link
    >> www.analog.com/.../BF70x_BlackfinProcessorHardwareReference.pdf

    2) The below API can be used to install an interrupt handler for a given processor interrupt.

    ADI_INT_STATUS adi_int_InstallHandler (
    uint32_t iid,
    ADI_INT_HANDLER_PTR pfHandler,
    void * pCBParam,
    bool bEnable )


    It is a valid API for system interrupts, core interrupts, NMI, and hardware exceptions. The API takes the following arguments:

    •iid - Interrupt ID. For system interrupts this is the system interrupt ID (also referred to as peripheral interrupt ID in the Hardware Reference manuals). This is a unique number to identify a particular interrupt. Refer to the Hardware Reference manual for your processor to find the number for a specific interrupt.

    •pfHandler - Handler which handles the interrupt. This handler will be called when the interrupt occurs.

    •pCBParam - Application-provided callback parameter, which is passed back when the given handler is called.

    •bEnable - Flag, which indicates whether to enable or disable the given interrupt, after the interrupt handler installation. The interrupt can be disabled during the installation and enabled later by calling adi_int_EnableInt().This argument should be set to:

    ◦true to enable the interrupt

    ◦false to disable the interrupt

    Regards,
    Anand Selvaraj.

Children