TI中文支持网
TI专业的中文技术问题搜集分享网站

6678跑SYS/BIOS系统时的串口中断问题

大家好,

我遇到一个问题,是用6678跑SYS/BIOS系统时触发串口中断的问题,目前情况如下:

在.cfg文件中进行了串口中断的声明

var hwiParams = new Hwi.Params();
hwiParams.instance.name = "Uart_Handle";
hwiParams.eventId = 92;
hwiParams.enableInt = true;
Program.global.Uart_Handle = Hwi.create(4, "&Uart1_Handle", hwiParams);

但是现在一直无法触发串口中断,请问是我的eventId找错了吗,还是其他的配置有问题,烦请各位解答一下,非常感谢。

Haozhe Li:

回复 Allen35065:

请问这个映射的过程要在哪里实行呢,我是在.cfg文件里定义的串口中断,可以在这里实行吗?还是需要在主函数里操作库函数?有没有手册或者例程可以参考?

Haozhe Li:

回复 Allen35065:

我之前在看数据手册的时候看到了CIC0里的UART,然后对照上面的interrupt的表,猜想应该是92,所以在.cfg文件里将eventId设置成了92,发现还是进不去中断,听您讲完之后觉得可能是没有映射的问题,可是还是不知道怎么操作。。。抱歉,打扰您的时间了。

Haozhe Li:

回复 Allen35065:

问题解决了,因为需要对CIC0的串口中断进行一次映射,再将这个MAP到核0,参考6678数据手册161页,首先要读懂那几个表的含义,6678一共有128个event,然后如果需要用串口终端的,其中98个自带的,加上17个CIC映射的,其中八个核都可以响应中断,看图figure7-29,CIC0对应核0-3,CIC1对应核4-7,我们想用核0响应中断,就选用,CIC0,然后找表,发现149号是串口接收中断,然后再定义映射event到21-31,92-95任意id,就可以完成这一步的映射。

KeyStone_CIC_event_map(gpCIC_regs, 149 , 92);   //将149映射到92

gpMSMC_regs->INTMUX1=

CSL_GEM_CIC0_OUT_4_PLUS_8_MUL_N_OR_CIC0_OUT_4_PLUS_8_MUL_N_MINUS_4<<CSL_CGEM_INTMUX1_INTSEL5_SHIFT;

//将92MAP到核0的5中断

赞(0)
未经允许不得转载:TI中文支持网 » 6678跑SYS/BIOS系统时的串口中断问题
分享到: 更多 (0)