ISR(中断服务程序)是计算机在遇到硬件中断时自动执行的程序,执行完 ISR 后再返回主程序,这样中断服务程序提高了计算机对于硬件和软件的处理能力。在进行嵌入式开发时,无论是哪种硬件,总存在某种程度上与普通操作系统的差异,也存在某些硬件功能未能充分发挥的问题。而通过在中断服务程序中对设备的处理,可以极大地提高嵌入式系统的处理性能。
因此, from ISR 的使用是必须的,它可以帮助我们从硬件中断中快速响应相应事件,从而提高系统的整体性能。
当一个中断请求到达 CPU 时,控制权会立即转移到 ISR 中,执行非常快速。如果在中断处理过程中不采取合适的措施,在中断处理过程中对数据的操作可能会破坏数据的完整性,导致数据损失或并发性问题。
而通过采用 from ISR 的方式,可以隔离 ISR 运行时的数据访问和主线程中的数据访问。比如使用消息队列,在 ISR 填写 message 后直接将 message 发送给主线程,在主线程中收到 message 后再进行数据处理和业务逻辑的处理。这种方式可以确保数据的正确性,从而提高系统的可靠性。
嵌入式设备的能力非常丰富,不仅可以完成基本的输入、输出操作,还可以实现诸如视频处理、语音识别等复杂的功能。但是,这些高级功能往往需要在短时间内完成高速数据的处理和传输,而这恰好是 ISR 的玩儿转场景,它可以帮助我们快速响应设备的请求,进而充分发挥设备的能力。
通过 from ISR 的方式,可以直接在中断服务程序中运行设备控制器,这样可以快速响应设备请求,并在设备处理完毕后返回主程序,从而充分发挥设备的能力。
在嵌入式系统中,时间是至关重要的。在某些场景下,即使有些任务较为简单,如延时一个周期、处理一个 IO 端口,但这些任务有时也需要在特定的时间点上执行,不能被其他任务所打断。
而中断服务程序可以帮助我们在特定的时间点上响应设备请求,比如通过定时器中断周期性地定时器,这样可以提高监控系统的实时性,并能够及时处理事件。
使用 from ISR 的方式可以增强系统的实时性,将处理时间压缩到合适的范围内,从而保证系统在工作时有高的实时性。