交互通信机制

这里记录的不是IPC通信机制,是linux主cpu和scpu间模块的通信

1. 首先需要硬件弄好中断通路,两边需要能向对方触发中断

2.通信机制需要解决的问题

(1)同步异步请求

      同步: 对于一些需要返回结果的调用需要同步,返回finish

      异步: 为了不影响模块运行速度,返回ack,再返回finish

    实际情况,主次cpu之间有晶振差异,运行速度不一样,如果采用同步请求,如果是主cpu等scpu将可能造成瘫痪现象

(2)原子操作

    为了有些操作不被中断打断,需要关闭中断总控制

(3)cache问题

    如果dram存在内部dcache,需要有刷cache的操作

3.通信机制的实现

(1)通用的通信框架op-tee

(2)采用cmd模式

  • REQUEST 4 REGS
    • CMD (REG0)
    • PAR0 (REG1)
    • ×××
  • ACK 1 REGS
    • CMD (REG4)
  • FINISH 5 REGS
    • CMD (REG5)
    • PAR0 (REG6)
    • ×××
    • RET (REG9)

(3)采用队列模式

将cmd和参数写入fifo,寄存器存储fifo地址,管理wptr

原文地址:https://www.cnblogs.com/chencesc/p/6508331.html