问:嵌入式系统中的两种处理方式?
答:中断(interrupt)和事件(event)
事件:比如定时器事件,可触发ADC采样,实现定时采样,事件不需要中断服务函数,不需要CPU干预进入中断。
中断:若开了中断,定时器可触发中断,此时需要CPU介入,程序进入中断服务函数。
中断和事件的触发源可以是一样的,之所以分成2个部分,是由于中断需要CPU参与,需要软件的中断服务函数才能完成中断后产生结果。但是事件,是靠脉冲发生器产生一个脉冲,进而由硬件自动完成这个事件产生结果,当然相应的联动部件需要先设置好,比如引起DMA操作,AD转换等。
举个例子:外部I/O触发AD转换,来测量外部物品的重量
如果使用传统的中断通道,需要I/O触发产生外部中断,外部中断服务程序启动AD转换,AD转换完成中断服务程序提交最后结果。
若使用事件通道,I/O触发产生事件,然后联动触发AD转换,AD转换完成将数据存入寄存器。
相比之下,事件不要软件参与,并且响应速度块。
可以这样简单的认为:事件机制提供了一个完全由硬件自动完成的从触发到产生结果的通道,不要软件的参与,降低了CPU的负荷,节省了中断资源,提高了响应速度(硬件总快于软件)