双核通信的同时需要DSP核通过UART接口读数据 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9031|回复: 10
打印 上一主题 下一主题

双核通信的同时需要DSP核通过UART接口读数据

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
2 M$ h  y; Y+ M6 ^. u9 x我是在DSP初始化这不太明白。# o: p" U2 @" G" U* {  K3 P7 |
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
5 |6 i4 H! N2 p1 @! h! c0 A2 _& P; Y

1 c% m( G) @' `8 x. z4 j首先        PSCInit();//UART0使能
2 g6 X& G# f3 ?. S% xvoid PSCInit(void)
! t" }' a( o0 e5 C1 F{
( W+ N" N5 F; H# u2 I# G        // 对相应外设模块的使能也可以在 BootLoader 中完成
: q* A7 x9 M/ }9 n    // 使能 UART0 模块. H% |) t! b# H9 u( K3 m, i% j
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);$ \0 P9 E' x7 J; K  l
}" b" ^( W4 \3 G+ x$ X

2 b# M- U; W8 s( U! F, a  g, e, G6 \; ?7 ]- k
然后是 双核通信的初始化           AppInit();7 B5 g& m1 t4 k8 m( {( I. S4 [
void AppInit(void)
5 T0 w; i$ s; Y6 O4 a7 w4 j{
& c7 h0 k7 @  W# m, x7 K    /* Structure to initialize IPC (see Ipc.h for definitions) */9 V0 ]$ F0 s; @3 A* T' j8 p
    struct IPC_cfg ipcCfg = {. o1 K' P8 |- ~% G3 ^
            IPC_DSP0,             /* local processor Id */2 E+ ]& y; j% K: C4 l, O
            IPC_ARM_HOST,         /* remote processor Id */
# x# s8 }7 A8 M8 R' i: J            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */9 z# l( d* S3 t+ h. b! o- O- }! _
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */1 i# Z, x/ k' K  z( g
            NUM_MAX_EVENT,        /* maximum number of events to be created */
  \6 B0 h  u" Q- u            &ipcPvMemDsp,         /* local side private IPC memory */
/ |2 v! w* w1 p% Y6 c- R: }            &ipcPvMemArm          /* remote side private IPC memory */: O; @1 R2 l8 W$ s7 R3 q  [
    };
9 k5 w1 S3 p% G5 [  i    IntDSPINTCInit();
* f7 @7 K: g4 ^    IPC_init(&ipcCfg);
: p7 _: R; f+ a    IPC_intRegister(C674X_MASK_INT5);$ h/ b8 V6 F* M+ o
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
7 H% R( ^2 z5 O
- v) P  ]! W8 P    /*  Enabling interrupts for DSP C674x CPU */
0 Q6 g1 d5 K+ I3 z; ]    IntGlobalEnable();        /* Enable C674x global interrupt */. M: L8 O  u1 O; Q8 B
    iAssert (Notify_start()); /* This will enable IPC interrupt */
# F( }' W" p9 P. v  I}9 C4 R( |! S& x" {1 n8 H

* V: a8 m/ q% v1 n( Z, k# W然后是  ' x; M3 J  Y# P8 x3 f
            // UART 初始化* P( v. S1 B3 k0 R6 C; g
            UARTInit();
" }" l( {: p; T# q" y+ ]; [, t. B
- R0 e3 g; x; L2 a            // UART 中断初始化9 C! F7 ~) c: A
            UARTInterruptInit();/ `# @, j8 Z% `) U2 m9 f% z

$ ^0 \; q6 ?. P& A. M$ A0 j- a* y8 P
void UARTInit(void)3 F( h) b5 a9 ^' f# r, N
{
$ G9 V) v1 o3 @0 J3 b6 T        // 配置 UART0 参数
- D' b0 B2 q8 }        // 波特率 115200 数据位 8 停止位 1 无校验位. Y, ?  v+ E: `7 f6 T( [6 D
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,& e) B+ L1 r2 L3 j3 Z9 Z
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
' q. h7 D3 C+ ]# G& x3 \        // 使能 UART0+ R9 \+ X: R' X  Y! o& S, _
        UARTEnable(SOC_UART_0_REGS);
0 I6 k! P$ y7 s+ ]
+ y% h' X: L' ]+ |+ y    // 使能接收 / 发送 FIFO
3 a, V. |6 j' `  x9 w# F//    UARTFIFOEnable(SOC_UART_0_REGS);
0 E$ g9 T: G% F: T# C2 \' t
" t  e1 x7 [' {1 [& y& P: a6 C        UARTFIFODisable(SOC_UART_0_REGS);
  q3 r+ w! Q, S5 P0 \6 k1 M# w" d9 K1 s# w" i4 W! H
    // 设置 FIFO 级别     接收FIFO的级别
8 v! h, M1 I4 Z% i2 N# J6 Q4 s//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
; ?! g$ a+ L) ]}! W2 w# M5 g8 h! g( D9 x; e
  y$ A  }0 |+ V
* s# s$ W' H2 s; {( `) D
void UARTInterruptInit(void), z' k) _# V0 R
{
/ y( k0 g4 v+ h0 n, P5 I, v        IntRegister(C674X_MASK_INT4, UARTIsr);
! t2 b' B$ o8 x1 S! D( R  o) e* c        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);' d; v% m# b: B6 i  ~  F! E0 m* A$ l
        IntEnable(C674X_MASK_INT4);
+ `! R1 l/ l( d
4 ?8 \8 w) l/ P2 i( S4 E" B        // 使能中断2 T4 c6 E# R* I+ g+ a3 J) @# B
        unsigned int intFlags = 0;
5 a% Y- u7 ]# w7 C; `7 q% p    intFlags |= (UART_INT_LINE_STAT  |  \3 K3 [: D0 B/ v2 a
                 UART_INT_TX_EMPTY |    \9 L0 j8 \& ~2 k0 C5 t
                 UART_INT_RXDATA_CTI);
# i6 }& ~, L' g    UARTIntEnable(SOC_UART_0_REGS, intFlags);
9 H# ^6 T: ?  P! ~! g. x}2 F" ?3 C; n  C; q) c7 o
/ M3 |: V- w# m0 m) _- R& ]0 [4 f
# O6 i- t4 {, V# b
void UARTIsr()6 w$ Y" Q0 H5 b  @9 F* S2 S) ^2 t
{
3 m, R% \0 c+ \" ^    static unsigned int length = sizeof(txArray);
+ J4 |6 r4 T' l    static unsigned int count = 0;$ K! w2 Y! R# M, r7 {; J6 d  @
    unsigned int int_id = 0;
6 F7 j" D! F) z- A, g
) ^3 Y' _/ h' C2 s
- h" ]: e; l0 J. ?
, g0 B9 |1 H$ n* T( E2 G3 B    // 确定中断源
5 s4 Z! y% m  r( s  @    int_id = UARTIntStatus(SOC_UART_0_REGS);4 L/ n. Y6 Z8 w8 \" ?% O/ X9 e

, P+ J, A3 y& q, U8 @    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
) a2 g% H5 }6 a1 N  |
+ N  s" a$ d1 ?" ?1 m1 m9 [
, e$ R9 U) s, n# Q, |8 m6 j$ b; K    // 清除 UART2 系统中断
0 a* f/ t/ s$ G# ?9 x    IntEventClear(SYS_INT_UART0_INT);
' G% c: a  y* R4 P" K& y0 S1 F/ L* |" ~- Q8 R  J
    // 发送中断
" u. N2 x4 x, u$ Z4 n+ f8 W* |7 q: ]    if(UART_INTID_TX_EMPTY == int_id)# F# s& d0 u5 F) s3 ]( N& B
    {1 D: P7 q5 t# Z! O, Y5 g- T% f7 Q
        if(0 < length)4 q" P* p1 C( m6 @7 k
        {1 Q# Z0 a( F* G& h5 r+ Y) w, l
            // 写一个字节到 THR
3 P: ~, A* y; Q" c            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);  v5 j: ]) t$ M# j% U7 \
            length--;
; c: }$ }3 b) l            count++;( }% S% U( Z# r) B" s/ x- I
        }
6 D/ }! x9 X7 N. P' I# w        if(0 == length)
! D3 s; ~6 o: w8 ^  [' ?        {
" c3 ]! {+ _' F            // 禁用发送中断
3 l& t; W% H$ U) M& P) ^            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);  s! d. W; `& Y2 B. l
        }! {" X5 ]: q" S$ q, q4 n. l0 ~
     }% @. j8 D5 r2 d0 @
7 J+ n% E, A- J+ x9 h2 c9 _
    // 接收中断0 e; m% l- N% x3 R! i7 X3 W
    if(UART_INTID_RX_DATA == int_id)0 T: n* H* i  x! x# q
    {
5 c2 ]4 Y0 A7 ]# L9 {        if(status_a0==0)
1 P9 @8 F* U6 z        {  N8 n7 `* |7 G$ W' H
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
- B$ S- H2 K; ?; ]& \' ~, e3 ~                if(a[0]=='#')
; b& h7 M1 S% y7 C                {
# d8 q/ u, }3 l( f! t" @3 V# x                        status_a0=0x01;
* q' s6 t7 C7 v6 `9 F" P, _- r6 _" A                        status_a1=0x01;
0 ?6 A5 c' K: r! f                }; Z+ \/ q$ h' b5 w% i0 S- n2 a5 }8 A
        }! \9 h5 \+ d# G: [' |1 v# R
        if(status_a1==0x01)/ u4 q$ v0 Z4 ~5 S3 a
        {1 f* C9 M* e+ c
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. s) S4 h( W) C+ ?. A                if(a[1]=='R')
. C5 i: X& X5 H% ^3 X                {
# ?$ ?) _4 _; i  `, Y% |/ }8 n9 Q                        status_a1=0;
% I# L4 X8 r6 ~$ a' U4 @- x                        status_a2=0x01;; D0 l  d. R, {6 z# \
                }( D6 n! s  i- S+ C  d
        }
& e: |+ J( c0 \1 ?        if(status_a2==0x01)
) C  F" @1 o" B* N        {% I5 U: t1 G0 y, R1 I
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" H+ v- X% B- S2 v+ f
                if(a[2]=='A')
% G5 s# L8 R5 p3 m1 z5 \5 {                {- c/ M/ `, L; o# P
                        status_a2=0;7 ?2 M% W& y) w5 g* b
                        status_a3=0x01;
; e! d" k8 m; I; V                }$ I2 R2 `0 }; g, f
        }4 ?: s# z+ k$ L$ i: |  c( p
        if(status_a3==0x01)
* F5 @: K7 c  P# z$ M# m        {3 g9 m& A) k! ]  O
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# D  h2 _! O' o0 h6 m) Z1 q+ |3 x/ t
                if(a[3]=='N')/ ^7 F  I2 f& q6 x3 \0 t
                {4 z1 [. b* C4 V, A. v0 s; n
                        status_a3=0;7 x& T: I0 C' @2 y( O( k9 q- Q, M
                        status_a4=0x01;
( x! i2 r" X7 v  N) W' @6 x                }
1 E' N/ R- Z6 e# W: g0 l! Q        }
3 m/ w" C! G  A$ Q. a- d. M: v        if(status_a4==0x01)! k0 o8 G0 l) \" d
        {4 r9 V- Y" [( j: G
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);, X5 d1 d3 Z' X0 C& l2 ~
                if(a[4]=='G')5 t- \* i  N7 K  n
                {
/ [* v$ W$ z3 U                        status_a4=0;0 w+ {4 t- C( N
                        status_a5=0x01;
: T% ^4 O" F$ R4 B* f% @                }' @+ _" V3 C* a) v! I9 a7 X$ a1 N
        }
& X7 T+ l/ H* G- p; F  {        if(status_a5==0x01)
( Q9 r; h& [5 |6 H/ i' r- R        {0 t9 s% x5 d& J* P4 \9 z
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);! P; O0 t2 q, A: O
                if(a[5]=='E')7 R3 L+ Z) _0 `: V6 u
                {
5 v0 S4 s1 b. Q* {$ H2 P2 Y                        status_a5=0;
- S3 W+ a8 h5 L) i# S, Q' }1 b/ O! n& w                        status_OK=0x01;/ i3 g( |7 {) p3 c3 f; C3 p  [0 ]
                }* b9 `& e* [2 B4 M* `* f: N
        }
$ U9 O+ g* p3 N- t3 ^            if(status_OK==0x01)
  y: ~' M# m; s5 [( y$ b        {
8 U7 |& V' j! z  U' s                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);& r5 O1 v# N6 n7 i3 w$ x& i
                        lengthrx++;
3 ]2 W- r0 j0 _7 M                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)! E" J# ^! z1 s- D( c7 A' Z
                        {' s' ?4 s0 d1 z7 h0 W
                                RecState=0x01;
5 d7 h% s3 d$ q+ ^( T, P% G9 Z) Z                        }
8 W5 U$ O+ a6 o! g7 L4 O0 y5 B         }
0 X" U$ z% c. U* K6 s: ]) f* ^: F
: C( w% K( n; O     }- Z0 F; z( ?0 c: }/ l7 a( B; T8 _: K
3 u4 L: y. C* L! r
    // 接收错误0 t, W7 @/ n% g
    if(UART_INTID_RX_LINE_STAT == int_id)
. O) X! M% i, Z9 y# i/ h  b' y    {
! x  j2 W4 y  f7 ~0 m% x        while(UARTRxErrorGet(SOC_UART_0_REGS))
7 h; ~- I$ ~0 s! i        {
$ I, o) |4 T4 f1 m% ?6 i* F- l) S            // 从 RBR 读一个字节
9 t- P6 ~$ y# x0 Q- b7 v- C! }5 R            UARTCharGetNonBlocking(SOC_UART_0_REGS);5 e# J1 `+ W4 Y# a# ?
        }
" Y3 u7 m5 U8 |, Q, ]7 k1 ]    }8 Y8 N: f5 h2 {' s$ b6 D* K' a
5 p. v) d& u8 o4 b5 O; |
    return;
( _/ R. Z6 G  j  ]}
" V# }+ o6 O9 B0 L  k: h; |" o: X3 P: h% s) b

+ C2 g. D+ p. F0 U3 S* d' G0 m7 [% }* K! ?' n9 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

积分
2121
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
% [, T2 `8 w) i& |! z9 @: y! D1 b- Y8 C: u0 w* \
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
+ ~4 }( K$ ?0 @% y( ~9 K
5 _( o# M8 B6 l要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13( T3 {3 l4 N) O  O  C
hi,
# q' @- \; h( m% T4 X6 ~$ m. y3 i  P5 v0 K# r
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
) [; P: m8 f  ?& e$ n7 i! S7 [
void main (void)9 X! y0 O& ?% A
{, A2 L8 s1 s7 P7 e# d$ v# t
        int i,j;
, ^1 [3 Z5 F1 I+ ]    char *str_buf;
+ e* k/ H6 O; l" E6 h0 D4 P3 V    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];$ V+ y! [( a: O) [) O2 }& x" X
        double est_L_b_=0;# U! C& |2 a- S2 V2 V0 {
        double est_lambda_b_=0;9 X+ M- l2 n* u. [0 i7 R3 a3 H
        double eul_[3][1]={0};- R' T/ i0 V$ ~  ]7 s8 S& X
        double est_v_eb_e_[3][1]={0};5 g4 E8 Q2 N9 O3 Z
        double est_C_b_e_[3][3]={0};4 {9 O" `  q; k: T/ J
    char *qm;
+ w# r; y9 J5 x0 m" A0 H# D    char rec[70];
. K# R5 k' z0 I& `2 }6 X/ V. f' V        double L_b=0;" ]6 ]! O6 X) W6 @
        double lambda_b=0;
# C" ^8 p  P' _6 b  U1 ~        double h_b=0;% T9 w8 U1 \4 H# [; b* A) p3 @3 E
        double rate;
( g3 c" u/ y+ [) O% ?4 B; i' E! k  X0 u

! z; S. Z9 R* M# w( {* b        // 外设使能配置
5 x: L% v/ n* N& W, g        PSCInit();2 p- N& y6 y& Z! ^/ @
2 o) D. }7 N' M# Y) c5 \
        AppInit();% F, j5 M# @3 c" _( R/ d$ C
$ v7 ?* T) O8 B3 y
        // UART 初始化
% [, T8 U6 Y( G- U" m' J* }        UARTInit();
5 r$ a, g7 ]2 S6 z$ Z! O; A+ H! O/ G' O  R, n' n. \+ V
        // UART 中断初始化
- X9 B: e1 u" D  q2 `" W        UARTInterruptInit();& G' `) h$ i" Y* R7 z! N
! Y) q, H- X( H$ ]
    evtRcvd = 0;
4 J* [. N# ?: v) A; k1 s; Y    RecState=0;
" B+ q6 Y, p2 T* ?& a) C    /* Initialize */
3 H3 l1 O2 r6 t) o0 U3 h( x6 C# s
6 N: d$ C6 n, `! S+ v& z    printf("DSP subsystem ready\n");
$ I8 K- o9 [# j6 t
3 b& X7 ]6 q# K6 D    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
. t% U: ~: [1 A8 ?" ~
# S0 k8 ^  x4 C( ~for(;;)
& e3 \+ z8 p& [$ d: d4 p{% y/ P4 _  L; a
        if((RecState&0x01)!=0)
4 Z; |0 s; u5 i( X5 I        {" O3 s3 S5 p; D& H# n. u% Y
                printf("liuzhenxing\n");
% L' B) I5 U( V$ j! ?7 \' y" a        }
. m, O4 b8 m7 j0 ?! h        else7 p6 V" {. ]. U8 A
        {
; D* j; N7 y4 B" J7 P  Z       wait_event();# g6 s, w* |3 F* Y1 W% Q) w* y
* s0 E$ i$ m8 R5 _; W6 u- w: h# F
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针; E" B, U' L; H- d9 _" H. \
. V9 x- s3 b- l- v  ~
           for(i=0;i<60;i++)
! @' T  ?$ i: |- m           {
. L; `3 N+ N1 K. s                    rec=*qm;
$ b  ^. p/ V: `! {) I( t8 h                    qm++;
$ o; K( `' ]& ~, q' }1 o           }4 p& I6 x) H: S5 g7 _

, f  N6 S+ }5 I' R           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);9 j7 E& |4 w# M3 k  o. @, x' p7 M

" F# n% L2 [" b+ `           L_b=L_b_receive_double;1 n" q( o1 s' ~" H4 }
           lambda_b=lambda_b_receive_double;
: M6 _! s% Q+ x" {% j. Z& J           h_b=h_b_receive_double;
1 O6 T# o' u  `* r           for(i=0;i<3;i++)
1 \! |. G* v9 ?2 Z                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
  g. r2 u: o3 E, C) ?           for(i=0;i<3;i++)6 o- A5 x' ^/ e+ n) V2 F' X
                    for(j=0;j<3;j++)
. h3 s: m1 j! D& S) v* `4 t                 est_C_b_e_[j]=est_C_b_e_receive_double[j];; Y" h  H8 Q  `7 m

- \! f5 _/ G+ T6 Q1 U: N# e8 U- U& F                printf("L=%lf\n",L_b);4 J. d9 I7 x) D) r
                printf("lambda=%lf\n",lambda_b);
. X9 M* J5 K5 r% U                printf("h=%lf\n",h_b);
" Q& n% p/ M9 Y" l( F
# g% ^! }% S- u/ N' M: M! g  W                for (i=0;i<3;i++)
. E/ q, T# D7 _                        printf("%lf\n",est_v_eb_e_[0]);
- [5 j+ \: B1 [: c  M, n                rate=sqrt(est_v_eb_e_[0][0]*est_v_eb_e_[0][0]+est_v_eb_e_[1][0]*est_v_eb_e_[1][0]+est_v_eb_e_[2][0]*est_v_eb_e_[2][0]);
$ w# q2 \! K( e! {+ U6 `, K9 n                printf("rate=%lf\n",rate);+ u& O! N7 v) R5 F" K0 Q

7 ]% F- [) T9 L. @& |                CTM_to_Euler(est_C_b_e_,eul_);- }+ K% p3 h/ i/ N: W- [) u7 T
                for (i=0;i<3;i++)8 Z( t/ A+ l& a3 I
                        printf("%lf\n",eul_[0]);
5 n: p/ _& C" ~" d8 p0 _                printf("end************************\n\n\n");) O; P9 X. P' g- G  ^9 j

& ~, k" G: ?: P' \6 V; h                /**********************************************************************/& H2 j( P, Z2 _9 b% A
) `6 x( Y' }/ T$ Z
            char flag[4];
1 D' v4 Z: I% g; H  Y9 ?6 e( [
" @- A; @. a) h, G            flag[3]=0x00;8 R- q; j( E; \. S
            flag[2]=0x00;- |* C& D+ [$ J
            flag[1]=0x00;
! |3 j, h: B  O3 p4 C2 f( x            flag[0]=0x01;
3 Y0 ~1 W% M1 V2 L  ]/ I5 k* @9 A' I" V
    /* Allocate I/O buffer and init with string */
* p; @5 ]) N$ J9 l: {& Y/ T    str_buf = (char *) malloc(80);: g8 p# Q+ r8 f2 D) ]
    str_buf =flag;4 ~! g! j+ T* X
* J% p& n( Y( i: O
    /* Send buffer to remote CPU */  m7 ]) T* @# ~  L9 w! N" O: y
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));- v6 M3 d9 ^! v2 n- Z, V6 o6 J

- d: E% ~0 A2 W, v. f& @1 ]    printf((char *) myPayload);
: o( R, R4 M& |; k3 x        }2 y% J( T# [5 O6 J1 d- h1 M5 Q
}
( U) U9 b% E8 `9 K& z
  N; ^3 u" P2 B) e    WAIT_HERE;& P2 i; T! A0 [& |
}
, D) |6 O8 P) l$ r. P, @
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
地板
 楼主| 发表于 2016-8-17 11:34:30 | 只看该作者
上面的关于UART的子程序,在一楼
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
5#
 楼主| 发表于 2016-8-17 11:37:05 | 只看该作者
我说一下调试的情况:
8 e  f9 W6 L* N, c7 g我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。( _, B3 J0 m+ @5 G/ `* [
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
6#
 楼主| 发表于 2016-8-17 11:40:55 | 只看该作者
我现在就是需要接收数据,基本上不用发送数据,所以不用管发送数据的。
回复 支持 反对

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

积分
2121
7#
发表于 2016-8-17 11:54:54 | 只看该作者
syslink 的初始化是否成功,notify 通信是否正常了?
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
8#
 楼主| 发表于 2016-8-17 11:57:43 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
! C7 E9 A5 U* N7 `* F' M9 osyslink 的初始化是否成功,notify 通信是否正常了?
& c, [3 Q: m$ E% i6 P" c! C
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
4 o( p! B3 b+ u! x+ n) u" k& r, ?4 Osyslink 的初始化是否成功,notify 通信是否正常了?

; z. m0 f3 o+ }& x; o5 }我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

点评

建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确  详情 回复 发表于 2016-8-18 11:34
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
10#
发表于 2016-8-18 11:34:54 | 只看该作者
star_niubi 发表于 2016-8-17 16:20, ?( F+ Z5 ~) b; x' E+ ]+ t
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
, c. B8 R4 A# w% U" ~+ n
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-10-16 13:55 , Processed in 0.058451 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表