This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Setting up EDMA trigered HWI using the DSP/BIOS Configuration Tool

Hi,

I am having trouble getting a EDMA hardware interrupt working. I'm trying to emulate the project discussed here:- http://my.fit.edu/~vKepuska/ece3552/TI%20DSP-BIOS/BIOS/Integration%20Workshop/student%20guide/iw6m09%20bios.pdf but I am using CCS V5 so I have to migrate the project. I have tried converting the .cdb file for this project but this causes plenty of errors and generally end up having to reinstal CCS V5. So, I've tried creating the .tcf file myself using the DSP/BIOS Configuration Tool and setting up the interrupt with the settings described in http://my.fit.edu/~vKepuska/ece3552/TI%20DSP-BIOS/BIOS/Integration%20Workshop/student%20guide/iw6m05%20hwi.pdf. However, the EDMA inturupt function is never called.

I think the issue is with the EDMA HWI setup as I've tried a similar project 'dsk_app' found in the Spectrum Digital target content for DSK6713 (http://c6000.spectrumdigital.com/dsk6713/) . This project works using the .tcf file provided but when I try to generate the .tcf file myself I run into the same issue as above. I've tried copying the .tcf file provided but it appears to have a different format.

I really stuck as to what the issue is; as reading the .tcf file the HWI seems to be set-up but never runs. Any help is greatly appreciated.

  • Hi David,

    What version of DSP/BIOS are you using ? Also, can you share the .tcf file that you are generating ?

    Thanks,

    Ashish

  • Hi Ashish,

    I'm using version 5.42.0.07. Please find the .tcf file below.

    utils.loadPlatform("ti.platforms.dsk6713");

    /* The following DSP/BIOS Features are enabled. */
    bios.enableRealTimeAnalysis(prog);
    bios.enableRtdx(prog);
    bios.enableTskManager(prog);

    bios.HWI.instance("HWI_INT8").fxn = prog.extern("EDMA_intDispatcher");
    bios.HWI.instance("HWI_INT8").useDispatcher = 1;
    bios.SWI.create("processBufferSwi");
    bios.SWI.instance("processBufferSwi").order = 1;
    bios.SWI.instance("processBufferSwi").fxn = prog.extern("processBuffer");
    bios.LOG.create("logTrace");
    // !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!

    prog.gen();

    Cheers,

    David

  • Hi David --

    Check the "IER" and "IFR" registers.  The IER should have INT8 enabled.  I think it should be bit #8.   The IFR is the interrupt flag register.  If IER is not enabled, you might see the interrupt latched in IFR.   You should also verify that the global interrupt enable bit (GIE) is enabled.

    It has been a long time since I used the 6713.   Does the 6713 have an interrupt mux that maps different interrupts to the core?   Or are there only 12 interrupt sources (first 4 are reserved for RESET, NMI, reserved, reserved)?

    -Karl-

  • Hi Karl,

    I checked the these registers, the hardware interrupt was disabled, the flag was set and the GIE was set (occasionally being reset). I put a breakpoint in the HWI initialisation function and the call IRQ_enable(IRQ_EVT_EDMAINT); was not doing anything so I replaced it with IER = IER | 0x100;

    Now it works, happy days. Thanks for the help.

    Cheers,

    David