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.

the cpintc example of 6678------for interrupt

Other Parts Discussed in Thread: TMS320C6678

Hi everyone,

for the example of PDK pdk_C6678_1_0_0_17\packages\ti\csl\example\cpintc,there is a code like this:

hnd = CSL_CPINTC_open(0);

does the Argument 0 mean the CIC0?

 

and for the code

((CSL_CPINTC_RegsOvly)CSL_CP_INTC_0_REGS)->STATUS_SET_INDEX_REG = 3;

I can not find anything about CSL_CPINTC_RegsOvly,CSL_CP_INTC_0_REGS or STATUS_SET_INDEX_REG ,what do those mean?and what does the code means?

 

 for the code

CSL_CPINTC_setNestingMode (hnd, CPINTC_NO_NESTING);

what is the NestingMode? where can i find some information about this?thanks

 

  • Guoping,

    1. "CSL_CPINTC_open(0)" is to open the CIC instance 0, which is CIC0, as mentioned in the CSL document ("C:\ti\pdk_C6678_1_0_0_17\packages\ti\csl\docs\csldocs.chm") and source code ("C:\ti\pdk_C6678_1_0_0_17\packages\ti\csl\src\soc\common\csl_cpIntcGetBaseAddress.c").

    2. "CSL_CPINTC_RegsOvly" is the pointer of "Register Overlay Memory map for the CPINTC0 Registers" as mentioned in "csl_cpIntc.h".

    "STATUS_SET_INDEX_REG" is the "System Interrupt Status Indexed Set Register" as mentioned in the CIC user's guide in section 2.2.4.

    3. Nesting is a method of disabling certain interrupts (usually lower priority interrupts) when an interrupt is taken so that only those desired interrupts can trigger to the host while it is servicing the current interrupt. The typical usage is to nest on the current interrupt and disable all interrupts of the same or lower priority (or channel). Then the host will only be interrupted from a higher priority interrupt.

    Nesting mode is not supported in KeyStone devices. So the information is not in the user's guide and it is disabled in the CSL example.

    Sincerely,

    Steven


  • Hi Steven

    thans for your answer.there is one more question.

           for the datasheet of CIC said the The mapping of the channels to host interrupts is fixed (one-to-one mapping).

            example cpintc write to the STATUS_SET_INDEX_REG to set a system interrupt,the system interrupt is 3,mapping the system 3 the channel is 3,then enable the host interrupt 3,I am confused about why the host interrupt have to be 3.so I want to figure out the relationship between channel and host interrupt.thanks

  • The mapping between channel and host event is fixed. The mapping between system event and channel is not fixed. This means that you do have the ability to map system events to host events within the range of valid channel mappings.

    Note that there are also limits on the mappings between host events and event inputs to the GEM; they can be found in the data sheet for the device (ie table 7-39 pg146 for TMS320C6678 Data Sheet, events 21 through 31 map various host events).

    I hope this helps,

    Joseph

  • Hello Steven,

    I need further clarification on point #3: I hope you mean that nesting must be manually configured and that the 'nesting mode' set of calls do not do anything. I hope you do not mean that nested interrupts simply do not work on keystone devices.

    Please clarify this difference,

    Joseph Gagnon

    I have posted this question directly at: http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/226948.aspx

     

  • Joseph,

    I have replied your question in your new post thread.

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/226948.aspx

    Hope it answers your question. Otherwise, we could continue the discussion in the new thread. Thanks.