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.

DSP c6748 中断优先级与中断嵌套的问题

Other Parts Discussed in Thread: SYSBIOS

你好:

想咨询一下中断优先级与中断嵌套的问题。

如上图中,INT4 --- INT 15 ,中断的优先级是由高到低的;

问题如下:

1. 上面的优先级是否是这样理解,当同样的中断来到时候,数字越小的中断,优先级越高,优先于系统进行处理?

2.  如何系统中使能了两个中断,对应的中断号分别为4和7,当4先来到,正在处理4的时候,此时并未清除4的中断标志位; 7对应的中断触发了,系统如何处理;

3. 在TI RTOS 系统中,存在HWI_create( , , , )中存在 pparams->masksetting 参数,该参数可以选择 如下数值:

HWI_MaskingOption_NONE,HWI_MaskingOption_ALL,HWI_MaskingOption_SELF,HWI_MaskingOption_LOWER;

这些选项,在CCS中help文档中都有描述,比如HWI_MaskingOption_ALL ---- all interrupt are disabled

是否可以理解为所有的中断都不可以打断该中断;

那么,该选项与INT4-15是如何组合使用的,两者同时配置的时候,实际的中断应该以哪个为准呢?

4.  在TI RTOS 系统中,存在HWI_create( , , , )中存在 参数pparams->priority 这个参数又是代表什么意思,与上面两个参数是什么关系,如何起作用呢?

  • 我遇到的问题为:
    设置一个GPIO中断为IN4, HWI_MaskingOption_LOWER; 另一个中断为IN7,HWI_MaskingOption_ALL;
    IN4先来到,后来到INT7,结果INT4正在进行中被INT7打断了,INT7执行完又执行的INT4,这是如何解释???
  • /* Params */
    struct ti_sysbios_hal_Hwi_Params {
    size_t __size;
    const void *__self;
    void *__fxns;
    xdc_runtime_IInstance_Params *instance;
    ti_sysbios_interfaces_IHwi_MaskingOption maskSetting;
    xdc_UArg arg;
    xdc_Bool enableInt;
    xdc_Int eventId;
    xdc_Int priority;
    xdc_runtime_IInstance_Params __iprms;
    };

    中断优先级priority参数在哪里有说明,怎么没找到具体说明和范围?
  • 1. 是的。

    2. 继续执行中断4的ISR,因为INT7的优先级比INT4优先级低。

    3. 是的。

    4. 在bios_6_52_00_12\docs\cdoc\ti\sysbios\family\c64p\hwi.html中对priority 的描述
    Int priority;

    // Interrupt priority. Not supported on this target
  • 你好,我想咨询一下:
    第二个问题:
    如果设置两个中断,一个为 GPIO中断,号为INT 4 , 模式设置为 HWI_MaskingOption_ALL;另一个 为IIC中断, 号为INT7 , 模式设置为HWI_MaskingOption_self;

    先来的中断INT4 ,马上处理该中断,中断标志位没有清除, 此时来了INT7 ;
    等待INT4 处理完毕之后,之前到来的INT7 中断是丢弃了,还是依然存在?