Q:如果多个外设(UART,SPI等)在同时间接收到数据,中断优先级设置为2:2,此时有中断嵌套产生,那么有个问题,如果有3级中断嵌套,最外为UART,中间是SPI,最内是I2C,I2C是可以正常接收到数据的,那么SPI和UART是否可以正常接收到数据?
备注:中断处理函数只作保存接收数据的处理。
假想:如果I2C的中断是在SPI的接收寄存器收到数据前或者后,产生中断,如在寄存器接收数据前,并且在处理完后,数据依旧没有到达寄存器,或是,在寄存器接收到数据后,这两者情况下,SPI是可以正常收到数据,并处理的。如果是SPI寄存器正在接收数据,那么产生中断,则SPI此帧作废,同理UART也是这样的。
进一步,如果是整个程序有时基,长度为1ms,那么时基的优先级最高,那么时基是否会对各个外设的接收产生不可预计的影响呢?如果会场上,那么嵌入式系统(ucos,freeRTOS等)是如何处理多级嵌套的问题呢?
一周热门 更多>