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.
Eric Ma,前辈您好,有问题请教:
我在使用最新的sys/bios搭建系统,其中hwi的参数让我比较困惑,如图所示,开启一个hwi后,里面的interrupt number,interrupt priority,Event Id分别代表什么?interrupt priority和Event Id的值为-1代表默认,那么默认值对应的真实值是多少?
mask options无法设定为mask low?如果我只想按照优先级去进行中断嵌套(高优先级能打断低优先级,低不能打断高),该如何实现?
与中断向量表中的值如何对应?
以SCIB Rx isr中断为例,能够找到vector ID为98,主优先级为13,group内优先级为3。
如果我想实现同一group内的两个中断能够实现嵌套,那么是不是只能修改其中一个中断的默认group,修改到其他group?
还请指导
Susan Yang 说:
感谢回复!
手册里面关于hwiParams的参数,能搜到的只有下面这些,没有找到关于priority、eventId的介绍 :
Hwi_Params hwiParams;
Hwi_Params_init(&hwiParams);
hwiParams.arg = 10;
hwiParams.enableInt = FALSE;
sys/bios内hwi生成的代码如下:
var ti_sysbios_hal_Hwi7Params = new ti_sysbios_hal_Hwi.Params();
ti_sysbios_hal_Hwi7Params.instance.name = "ti_sysbios_hal_Hwi7";
ti_sysbios_hal_Hwi7Params.priority = -1;
ti_sysbios_hal_Hwi7Params.eventId = -1;
ti_sysbios_hal_Hwi7Params.maskSetting = xdc.module("ti.sysbios.interfaces.IHwi").MaskingOption_SELF;
Program.global.ti_sysbios_hal_Hwi7 = ti_sysbios_hal_Hwi.create(98, "&SCIBRxISR", ti_sysbios_hal_Hwi7Params);
您发的这个中文分享,我也看过好多遍了,里面是针对C6000系列的,C6000手册里面的hwi和C2000还是 有区别的:
C2000的中断表里有这些参数Group Number,Vector ID,Core priority,ePIE group Priority。我现在的做法是将Vector ID写入了sys/bios的interrupt number,看起来是对的。
但是priority和eventId 实在确定不了该怎么填写,网上没找到关于C2000的最新bys/bios用法。(旧版本Ti bios没有这俩参数,也不可以修改中断优先级?)
您提供的中断嵌套文档很有帮助,感谢。
用sys/bios生成的hwi,如果选择不同mask类型后,对中断嵌套的处理是自动完成的吗?