|
|
本帖最后由 daoerb 于 2017-6-23 17:07 编辑
9 b6 Y j2 ?; ]5 k
; z- G1 b9 M$ _/ k" d在使用IPC双核开发的过程中,使用c674x_irq_events模块,该模块使用有如下问题$ @5 L, ~$ ]$ o. T
该模块使用函数select进行阻塞调用,等待DSP触发ARM 然后结束调用
) [% N' s% [6 w/ X6 Y$ T% S, @, WDSP通过任一通道触发ARM,ARM都将解除阻塞,为了继续监控,ARM必须重新发起阻塞,不然没法接收下一组DSP触发的信号1 p9 S- X. A9 ]$ h
]: _; c" L0 P有如下需求: T! k ^ V* Y! @8 m2 A
ARM等待指定的通道1或2触发,返回通道2触发状态 通道1触发状态
! t K/ i4 R( A/ s1 _; @% V. w* W+ c: Z$ P+ w) w6 } V& l
目前实现过程如下:
8 E% x" C( H B$ E1. 基于原有c674x_irq_events模块实现,如果ARM需要阻塞等待通道2的事件& [ Y' A* F+ r6 I% H$ z+ k0 z. g3 [* ]
此时DSP通道1触发,则原程序就会结束通道2的阻塞3 C0 A& S# _2 E
然后查询触发的通道是不是通道2,然后重新阻塞通道2---------------------------------------------------------0 H" P6 L$ R* Q0 g
2. 在整个查询的过程中arm一直阻塞,效率很低,3 g, J' ]* r* j2 b7 g5 g
# O9 C4 c0 M9 Z! s; [能不能有如下方式实现?4 G4 N$ n9 t0 j& b2 I3 ?
初始化模块调用后以后相当于有一个监控任务一直在运行,每个周期查询通道1和通道2是否有事件发生,有事件发生,处理事件,没有不处理,ARM做别的事情
& d, n" ^( w8 B+ w2 @) Y) ?5 ?0 s, t- {: X( Q
" s+ ~/ F' ^ F$ v
: v2 t& J/ Z2 u2 Q& J8 \8 \
|
|