关于基于中断的通信

pds*_*ssn 0 arm communication interrupt pic i2c

我们有一个简单的架构:

  1. 主芯片(基于arm9)
  2. PIC控制器

PIC通过基于中断的I2C通信协议与ARM通信以传输数据.在中断内部,我们发出一个从I2C层(总线)读取数据的任务.

在数据有限的情况下,我们通常不会有太多问题来读取数据并将其发送到上层.如果这个数据非常庞大,中断将被连接很长时间.

第一个问题是:

  1. 我对吗?

  2. 如果我是对的,如何避免相同?......或者我们可以采用不同的方案吗?

Jus*_*eff 5

有某种"工作线程",有时称为内核线程,其工作是将数据从I2C接口中拉出并缓冲它,将其移交给系统的其他部分,等等.仅使用中断例程来取消 - 阻止内核线程.这样,如果系统必须执行其他任务,则中断处理程序不会阻止它执行此操作,并且您仍然可以及时从设备中获取数据.