双核通信的同时需要DSP核通过UART接口读数据 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。, j' g5 E7 _6 s3 J4 q* `
我是在DSP初始化这不太明白。: z8 C& J4 l2 A
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。) Z+ S" Y1 b7 `3 y: s% Z

3 o* ]' |& F( C% U7 u9 w2 x" r: B9 l- A2 T9 d
首先        PSCInit();//UART0使能/ F  C& n4 A7 u# \0 p. A6 s
void PSCInit(void)  h# i1 T2 U1 W4 T$ z
{1 K/ g2 X1 D8 I8 P& i
        // 对相应外设模块的使能也可以在 BootLoader 中完成
' t! z5 u8 y) b" Q8 O# p! A( Y  r# ?    // 使能 UART0 模块% m/ ^0 [  {$ v" A8 w& }$ q' P. a/ [
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
2 d1 t% ~  n% O0 Z1 T( c% ]* Z}
1 _( s, R. N" s5 L

0 ]5 z/ F: j# A  q5 L$ R4 S- A, O+ R# E% r
然后是 双核通信的初始化           AppInit();
! T! T% Q& v" b4 Yvoid AppInit(void)0 Z; e) H! I6 [) j$ {
{1 L$ ~" _6 W8 J5 J
    /* Structure to initialize IPC (see Ipc.h for definitions) */# ?, V: C; u2 J- q# N
    struct IPC_cfg ipcCfg = {
( u$ U6 X& q" m: L1 Q: h- N& R- R3 O2 c            IPC_DSP0,             /* local processor Id */
+ E! }9 M4 e5 I0 ?4 V, P+ `            IPC_ARM_HOST,         /* remote processor Id */, @( I0 C% O$ k8 a4 e) \  ]% q
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */9 I; A' K/ Y5 h
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
/ q& r* T( K# f' B            NUM_MAX_EVENT,        /* maximum number of events to be created */" O. G" J# ^( z# P3 @- _' K* }1 ^% n
            &ipcPvMemDsp,         /* local side private IPC memory */
! j# C  D& f( F1 _            &ipcPvMemArm          /* remote side private IPC memory */- e7 l. O" H( P" A0 O
    };! C: v) S9 e; Q' H  ~6 g: p' \: Q
    IntDSPINTCInit();
  W) ?, f' {! L) e    IPC_init(&ipcCfg);
' V! q. z7 K! Y, z' ?/ [    IPC_intRegister(C674X_MASK_INT5);0 @7 t* t' J" B- ^
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
" q" ~5 ~* x$ e( V$ Y- Y4 V6 d3 s) ?5 w2 G. N1 y$ {
    /*  Enabling interrupts for DSP C674x CPU */
8 j/ n( a1 w' x0 t! w    IntGlobalEnable();        /* Enable C674x global interrupt */( @5 Q; S' t1 I# o5 R) l  m4 `/ s
    iAssert (Notify_start()); /* This will enable IPC interrupt */
! G# O! N) ]8 S3 W& g6 \! |2 _/ c}
4 X  C, M+ _9 t0 H7 a, S2 H
" M8 Y9 {1 R0 C6 L
然后是  
5 j4 j& a6 o* B/ d6 Y- p7 u! N            // UART 初始化- E" _9 Z: A& T
            UARTInit();% E$ s  b, d8 Q, d  w
0 X& q4 W0 }2 \) `& v4 }
            // UART 中断初始化
. h+ ^# ^0 j- a2 t            UARTInterruptInit();
! e; K3 O6 v$ O1 _6 f5 T( g2 V

& s2 }, @/ u* T" H& q* t; i. d; z/ J3 N) k4 ^
void UARTInit(void)
/ v2 o0 {6 E- }6 Y{
: M+ j2 O( B+ l% g        // 配置 UART0 参数! V1 ]; `6 o' v" Y- N! T
        // 波特率 115200 数据位 8 停止位 1 无校验位
9 }4 u- W! b7 O9 X: h: T0 L- e$ O    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
! J! W7 B: G. X8 N" w2 \                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);$ b; i; `5 e+ m0 I0 Q
        // 使能 UART0  s- ]! S: O( ^2 t1 P8 U4 `
        UARTEnable(SOC_UART_0_REGS);
% G" s7 g; J. O& Q* Y- _5 n, m7 ^1 I3 s, [9 h7 I
    // 使能接收 / 发送 FIFO
; U2 e2 V3 k! \- \; [% d//    UARTFIFOEnable(SOC_UART_0_REGS);
, A8 g$ _+ j; v3 Y2 I' u4 v
( A) p- o! R3 k$ z4 E        UARTFIFODisable(SOC_UART_0_REGS);
; l# c7 u5 j( H% x% N: C9 e& U% |6 U& p( c
    // 设置 FIFO 级别     接收FIFO的级别
% A: v9 a/ }2 W( m) V$ S) G/ e//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
! \4 y- v1 \( \. `; Z! @6 V0 U! x}
; W0 i7 i9 c$ u# M& l; X# K* f
: {% r; l3 Z3 T4 v; ]- t% Y. h
5 d* W8 e; h, B& s9 c2 {0 a
void UARTInterruptInit(void)  y# S1 S- b2 @: G, Q2 ?7 O
{& F  _3 ^% @4 K7 O
        IntRegister(C674X_MASK_INT4, UARTIsr);
& v+ _/ q- p1 j9 n- p# o) Q        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);& }# p- N  a$ y. M1 a$ G
        IntEnable(C674X_MASK_INT4);/ k7 Z" c) c- [$ f3 H

) D1 w3 S0 g! X+ P8 ]$ I        // 使能中断
) z! L: H. L- H. O        unsigned int intFlags = 0;
- ~/ z- S* y! }* r' |! z4 S4 j( U6 A    intFlags |= (UART_INT_LINE_STAT  |  \
' J8 n: q) x- _( ~8 A6 l" M                 UART_INT_TX_EMPTY |    \- S5 I. y6 l& A
                 UART_INT_RXDATA_CTI);' b- X" q9 f' q+ Q" q( z
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
6 _; ]) ]$ D: Q' d" t}
; X- z5 c7 [& }1 n9 ?) q
$ Z  K2 O! x5 v2 S

* T, C( T1 c% u/ e& y. ]# p- `void UARTIsr()
- B2 _) H. D0 Q! W- U{$ o# |8 x+ `. q' |* G- h% k
    static unsigned int length = sizeof(txArray);
/ y. j) ?: M5 x$ g$ U# Z7 [( G    static unsigned int count = 0;  L7 ?! X- u  i2 Q
    unsigned int int_id = 0;8 u2 z- G0 ~' G8 }! L
  ?2 \+ h" {" o  E* j! T+ T  q* X
# a* x2 S3 n. {! n* D! _" v) A
7 ]1 X- V7 t) b3 G7 ]& I' f2 i
    // 确定中断源2 {* g5 {% M3 H* d
    int_id = UARTIntStatus(SOC_UART_0_REGS);. S  \% ^4 {$ F# T: Q1 p/ b9 d
  ]" ], N" f( W8 e0 b; Q
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。6 G& I, j! Z4 P) r2 R3 w; k" E( T$ w

1 N( G. y, k; Q5 U8 o# @) h! z0 c
8 f7 y, `3 m" b/ x  {    // 清除 UART2 系统中断5 C3 Z/ H  E5 E
    IntEventClear(SYS_INT_UART0_INT);9 C$ r! Q* e' O# v" W6 Z- j
# Y- k1 C! `- \, T! G
    // 发送中断
! F! v0 ]" q4 H    if(UART_INTID_TX_EMPTY == int_id)
' l- g, {5 |4 h0 R6 a3 |* D& ?5 _    {2 M( f5 U* s8 `, ^
        if(0 < length)
+ s6 z# R6 R! A* Z. X. B        {  y7 O: {) t7 e" C  ~0 q! D
            // 写一个字节到 THR' m- _" w9 x4 U
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);1 [+ K$ c6 v( ]$ t* t
            length--;
9 t( J8 T" c; m0 e" B            count++;
! H; u3 K' Z) @        }& a" P6 h- n0 ]! @2 D: x# i* I- a% p
        if(0 == length)2 t; L" K% j# x# c/ T6 }4 m8 K
        {
  L$ S1 ]- a$ n4 F8 |: v3 q            // 禁用发送中断$ j4 q/ z* T' F( x9 K0 t
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);. g; b. y' t& Q, K
        }. v0 T: V" I3 ?  y% u7 A& _
     }/ i; Y4 i0 b2 D& S
6 M2 X: Y7 ~( H& ~
    // 接收中断
0 U+ V# P" ~9 [) C    if(UART_INTID_RX_DATA == int_id)
) [: Q# L, {# Y: b/ z    {. C* v5 W) n% p/ A9 a9 K
        if(status_a0==0)
6 r% S$ h0 a' f$ n9 T/ n2 }# |- ]( ~- }& j        {" X3 }" ^+ b4 Z, t- w! ~
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
& {* V: i) U% A: g                if(a[0]=='#')
( w0 W  j5 M/ m9 k( G$ L- l                {
9 u5 o  }& n  m8 B2 |                        status_a0=0x01;: S$ V8 k1 b+ @! e) C8 o
                        status_a1=0x01;( Y3 s/ }* I. p7 I$ v- P* Q
                }% E/ X7 K1 G% }- O# i1 z
        }
. z" y3 O# [9 Q; i, U        if(status_a1==0x01)
8 ]5 d- N, N1 @' ^' w        {
. U6 t% T" [7 H" r8 x, K5 i                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, H* W; y$ q2 o1 A6 X; u                if(a[1]=='R'). a( ?) b$ I- `) I
                {2 f0 x0 [$ F* P) B# ]8 k( q: {
                        status_a1=0;6 {# m, A" V0 v
                        status_a2=0x01;" F+ y' @8 D; Z" l% g
                }
% Y! e' `- A% U        }
' o& |. }% p! n& [$ N/ b. \# Z* h2 W        if(status_a2==0x01)- l& r  y/ h3 U7 D0 m" e3 h3 n5 L
        {3 i2 g) A% @: U0 q4 \
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
/ A4 T; Z  o' T" \( L6 \2 x                if(a[2]=='A')
+ k9 W% {3 F! \* M$ k                {: X( R: N* X' l) C- o! [
                        status_a2=0;
2 Y1 N' O6 s* e* F5 r6 ?                        status_a3=0x01;9 a- `6 f- P  s) c) C! x
                }0 ]0 D8 z1 ?+ l- K
        }9 F$ x! z& y. Q
        if(status_a3==0x01)3 m. l! y7 h+ t
        {2 Q+ G7 Z+ E7 U3 Q5 y+ ?
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);  V. R6 H9 U9 P- P% M+ O
                if(a[3]=='N')
  a& }* T% H' ]1 T4 A! t                {9 D4 R3 ^9 y5 B
                        status_a3=0;
! N- r$ U6 T* M# w; j% M                        status_a4=0x01;
8 \! Q7 Q" ~! b- ?1 q                }
/ P; R  o) C2 e$ ~% c/ I: l. n        }4 U2 X2 m* R/ n: ^; J; W( {5 K
        if(status_a4==0x01)- B: u6 H' D. i/ a( ^0 H0 r
        {
- D) w0 U# R: l                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 q; T5 g% I% m# j1 H9 c
                if(a[4]=='G')/ r' g2 Q/ ?0 H8 L- l
                {
2 P/ A/ @) T4 h- V: I                        status_a4=0;9 j* F& Z8 `1 F$ [' F& Y. a( l& [& @
                        status_a5=0x01;3 y1 J/ \) d. |
                }) Y' q! k' U$ Q; k# G6 \& ?
        }
) g& g0 k# q3 P* g        if(status_a5==0x01)' D6 m% H, x) F/ h+ c+ s
        {
! d" I! P" u! k) {9 o( |- S3 f3 U                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ V( U2 V" {" M& H  y- G% Y                if(a[5]=='E')
$ X, h, z5 {+ {: g1 J                {/ _3 L, O) A. J5 v& u; v4 }
                        status_a5=0;, s" u* g6 i$ S6 i: N  w
                        status_OK=0x01;
8 o1 s5 ?# K  z; i; m+ P; O5 c5 c                }- R& u' J; E% U# H" r
        }% r9 h2 ^, |( k) V' b
            if(status_OK==0x01)
- c8 i3 m- e+ y- d0 V3 Y# U        {/ G4 t5 T( l* N# }1 M0 t
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);2 \' n" @! D* T, u- t
                        lengthrx++;# a- B% N: _" |/ b8 i! h
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
( K% N5 P. s% \8 d6 J- W) @                        {# ]9 Y" M% ^# p  X5 g; R9 i
                                RecState=0x01;
! C  G! G% E5 q0 R6 ~1 H9 W                        }' \& l7 z2 E$ {5 l
         }
3 G4 J  C* `) J, R9 b% G' F% D, h, I6 Z
     }
, d/ x  |& j9 {0 y
5 y7 f6 T+ }1 k2 P7 m1 ~    // 接收错误
: V# _$ \9 R& G, b2 L    if(UART_INTID_RX_LINE_STAT == int_id)$ v0 V/ n, n; Y, k  b7 W
    {/ ~2 w+ \$ u, a( a9 M$ B
        while(UARTRxErrorGet(SOC_UART_0_REGS))( Z0 y/ u  t+ j6 [
        {
/ a, w6 `3 P3 Q            // 从 RBR 读一个字节* ~6 n$ _9 b( n5 t# ^' u# v
            UARTCharGetNonBlocking(SOC_UART_0_REGS);* Q! p8 f* i  @: w' i
        }$ W# D, H! E  [, U0 p
    }* h8 ]/ m$ t+ Z+ Y

0 C- K- C! f4 x, F    return;% `3 \( X* f2 ?) o9 i: Q" |
}) Y0 z3 b" Z& V9 U  S  Z* U9 p% j

2 u$ Q( ~  Q; ?7 [# y0 T

4 S9 f1 y6 ]9 C" W& C  o0 @5 h: a- H" W& d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2191

积分

创龙

Rank: 8Rank: 8

积分
2191
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
0 x  Y, W1 G! H. N) E4 w" G$ T6 L, ]2 D
9 h. J$ j% j* l: r7 nUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
& S; I% l9 x6 Q5 ], U! ^5 Y+ p
4 \) j5 {8 s9 Z4 M4 O3 \) B" h要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:134 O7 n& @- G) f
hi,
% \1 U  {, b5 Y( m% y
( p2 U6 t  y& ^- uUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

, \. k4 g( m/ Xvoid main (void)) a1 {, p& J, @4 n+ p- r2 I4 P
{9 E! k$ Z# E, c8 @
        int i,j;- }' z# s2 p& N
    char *str_buf;# x6 ^5 O: K( }3 k
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];# Z. w0 z' I4 p3 o
        double est_L_b_=0;- R' e( C1 e, k" X& {% o
        double est_lambda_b_=0;
9 @! a; M9 h6 h        double eul_[3][1]={0};
$ B6 y) k+ @1 D9 t2 n        double est_v_eb_e_[3][1]={0};2 R: z0 m+ V" b9 e9 N
        double est_C_b_e_[3][3]={0};
  C$ l1 d/ }) X4 I1 C    char *qm;
8 k. k* N- [+ ?' I- ?! q0 E    char rec[70];
& D' E4 r; v5 k; @0 g9 C$ ~        double L_b=0;
) C! F& i0 {/ A* Y  ~) M: H$ h5 Q        double lambda_b=0;
) Q- i! c, e- P6 M% P! _4 c$ s4 @& r        double h_b=0;# ~. q0 `: k3 y3 p3 m% n) ^& o
        double rate;
* l5 C, P: h+ U; N7 e# ]9 l) q2 L5 i! F8 d

1 W, R; t" Q" m3 }. n( z5 m5 ^        // 外设使能配置
$ c5 s9 n7 M- y' ]: @% N( l        PSCInit();! C3 d8 C0 W; a

7 Y* ^, o9 K. r4 w        AppInit();9 L+ M. y- C& K' i9 M" l$ @5 N

& r! J; e( G, r0 H% A& i        // UART 初始化
& R/ D. x; g2 w) ^9 S* D        UARTInit();
* Q( F3 A5 ?( z+ g, S! t1 V0 o* k" R3 @4 _; Y& M- T' }
        // UART 中断初始化* K; p/ I& K1 e# b& T% Y2 z* s
        UARTInterruptInit();
* H1 L4 ^! X" @4 h% V- _+ w  X5 \4 m) i* k' M
    evtRcvd = 0;- p0 W2 n9 K# ~& v, a' d
    RecState=0;) l2 ^, T$ N' q5 R' E
    /* Initialize */
/ F) D7 y3 Z5 H. Z2 {; o5 E/ F# Z- u- p" z; X9 Y+ [  L& o8 i
    printf("DSP subsystem ready\n");9 ]; i; U& Y# C9 A6 a/ s' N  r/ I

) O/ t; m7 Z; R- u    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));0 Q+ l  k- I6 b( ?: v# E7 T

9 V* s5 _6 r  E( `6 dfor(;;), t/ @& E) A) T6 _
{
, r# a( w- N6 _        if((RecState&0x01)!=0)
: v3 ]* o. H% r' p        {
, t2 h" ?2 k( A( F5 d                printf("liuzhenxing\n");+ z" g* h4 J0 P, |* H; z
        }
- L2 [8 x' c. O/ ^% e        else
- l6 M" F# g  c" [& H        {: Q, E, ?/ H; G4 ^! e2 {$ d
       wait_event();- o# @" m! @; p

5 X' {3 W) Y& i; D% w           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针, D& A" c3 o( W9 J6 X6 i

; K6 a* x0 E4 w% S7 @- z) V           for(i=0;i<60;i++)4 m6 }/ O5 i; F
           {
3 ^, A9 w1 Q1 w                    rec=*qm;& i" ?  P/ W- p/ _; k
                    qm++;
4 W* L1 S8 F2 g9 O           }
1 w2 h- \( P, N3 }* R# d) K- ]; y6 M' k- o$ h
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
* b* }7 v" Z5 E" I/ }/ o' H' q
6 z/ j# B2 h6 V4 S5 `' P" q* z% ]           L_b=L_b_receive_double;
7 P& [' j! Y) F; \/ P           lambda_b=lambda_b_receive_double;4 W3 G$ P# }" o# e3 I  P9 B9 G! j7 h
           h_b=h_b_receive_double;: A3 T- Z& ]9 J/ c" l3 _
           for(i=0;i<3;i++)$ \' V2 Z9 ~4 \1 Q! c9 F+ r
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];% d. l+ |) n. ^1 z) ]
           for(i=0;i<3;i++)
: ]7 W( y' c' f! s: j                    for(j=0;j<3;j++)3 o* q) x; ?0 X2 Y3 B7 r5 J8 X
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];9 ~6 }0 f# I) F- L" _+ n0 E7 P
7 I; Q2 i" v" X5 g
                printf("L=%lf\n",L_b);
% r( O: x: D* O/ I' Q( u- m                printf("lambda=%lf\n",lambda_b);
8 C3 l1 `' G9 G                printf("h=%lf\n",h_b);" B/ ?2 z$ i9 M7 c

2 I. q7 J% b6 l5 v9 z+ ^                for (i=0;i<3;i++)- C5 w" i- G3 n, b5 k4 ?4 d3 m  V
                        printf("%lf\n",est_v_eb_e_[0]);( W+ p" F1 n6 C3 A8 c: R9 j
                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]);
) f) U, F, E( q9 p9 k4 {. a6 e/ }                printf("rate=%lf\n",rate);
( R* D2 ]; D& Y' o4 a- s
  G) b" I; H; \1 _2 }                CTM_to_Euler(est_C_b_e_,eul_);0 T3 l+ Q9 I1 V" Y) g; c' P% s* k
                for (i=0;i<3;i++)/ G7 n. U. j" f; a* Z
                        printf("%lf\n",eul_[0]);
: y& r) V# _% v5 D( q+ Y6 N                printf("end************************\n\n\n");- A. L  `" r: B% P. v

) b6 S# [$ ^0 d+ K; l' d4 |                /**********************************************************************/6 ^) l+ n. R8 F: b! [$ a4 r- i
) h2 n  y( W# c4 ^5 H5 R
            char flag[4];1 l0 j" `& q9 n% s- Z+ V4 a

% J4 i; z" x. l            flag[3]=0x00;
% X& Z) T8 }- R' \4 i            flag[2]=0x00;
3 f. p' E- p- m' L, Z# J. c6 l            flag[1]=0x00;. ^. i1 u: w" S" v$ G7 W
            flag[0]=0x01;, N2 d: s) K0 o5 J( A
* ]) g- `( \* H( t0 D/ u9 r
    /* Allocate I/O buffer and init with string */
& u: e7 ^3 q/ h- E% `. v8 k    str_buf = (char *) malloc(80);
" U1 m+ D& M' Y5 B5 e    str_buf =flag;
/ K$ {8 Y0 u  R3 A" ~2 z- ~8 e( H$ c6 h" M+ m8 B* T  o) L
    /* Send buffer to remote CPU */' G- \# _$ o+ j. M- o
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));; ~3 s/ x; o8 K
) Z& @6 N; x: X% P9 e8 ^
    printf((char *) myPayload);
3 Q' f  P" u5 x0 `, R4 u        }
6 A0 g5 ^% M7 }3 a$ u$ z}
! o& [0 T; }3 G
! I+ [1 G: N6 J, F6 h0 M7 {    WAIT_HERE;
/ \7 @8 ~- T, A" v- u' [5 t" t}# A8 m# Y6 A$ w' }4 C1 d$ K; p* J
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:3 p/ ?. K9 L3 ^) ?7 H3 D4 u/ ~8 f
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。0 p* C) p5 j# r  b* V
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2191

积分

创龙

Rank: 8Rank: 8

积分
2191
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
2 v# v. g0 h3 @syslink 的初始化是否成功,notify 通信是否正常了?
" i. m. \1 X0 n! s8 i1 [7 _
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
+ G/ K. _* E& z) E0 ]+ h7 V- @syslink 的初始化是否成功,notify 通信是否正常了?

- q$ h4 E) `4 W0 f: x: S% E( F我用的是裸机开发的双核通信,用的是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:203 \: g% [) u; u/ s& j# U5 Q
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
# }$ T/ _- `8 w+ q
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-17 11:03 , Processed in 0.053390 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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