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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。5 ^3 |  T% u: r
我是在DSP初始化这不太明白。
8 |" e3 o8 W* Q初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。! l. \, L. \2 N' a5 S! o. y6 w
( d4 Z7 L  T! {4 a* q

% U2 i, {2 R3 T& H' ~2 S5 ~' i* F首先        PSCInit();//UART0使能& r/ B9 X$ i9 A5 G+ S+ h7 m" S
void PSCInit(void)
# p3 Z! Q3 @9 e% }6 U' @+ }8 ?, c{
9 h9 I5 P0 B+ O) O        // 对相应外设模块的使能也可以在 BootLoader 中完成
4 L/ ?; H5 H" f/ h) K2 `    // 使能 UART0 模块
! R5 z- F+ ?5 h- x( I- \+ T0 Y    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);* s- t- z- |3 j2 _& O6 p6 f; I4 n
}
+ k9 J$ V9 `& E' t4 Z2 c

6 t# r/ N; B) s7 m7 V* i' [
) R1 z  ]0 @# X8 i然后是 双核通信的初始化           AppInit();& z+ v. N' D' q/ r6 j% [) p4 S6 a
void AppInit(void)
# ]( N" J4 Q: E; ?% p$ m- Z{, }* V$ S/ |2 N6 {
    /* Structure to initialize IPC (see Ipc.h for definitions) */
& L) u3 U4 Y  X" f, e" `! c    struct IPC_cfg ipcCfg = {2 o" k4 y1 J7 ]9 Q9 R! s
            IPC_DSP0,             /* local processor Id */
- k2 ?, A' S. ?- |4 Q6 u8 v" _            IPC_ARM_HOST,         /* remote processor Id */
  d+ v$ L% @+ f            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */, H( I  y7 ?: u
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
7 I2 y* j* V$ I( [; P$ u. G4 j5 z            NUM_MAX_EVENT,        /* maximum number of events to be created */! q- v0 ?2 O, Y1 Z
            &ipcPvMemDsp,         /* local side private IPC memory */5 b- m) s1 S$ U# U; K8 ?0 ^- A: E
            &ipcPvMemArm          /* remote side private IPC memory */6 }! \* O0 a  N$ \. {  c- {* `! U
    };! K7 `1 y6 |5 x$ Z  X! q0 I4 T
    IntDSPINTCInit();
' ~5 _; p/ ^$ N) D, {; O    IPC_init(&ipcCfg);$ g8 _# e9 F+ v6 n9 T- q
    IPC_intRegister(C674X_MASK_INT5);
& [, \/ V; B2 B8 \9 E    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));8 k' w4 w$ S( p7 ~. R
; O; K1 F/ d9 N, T/ J
    /*  Enabling interrupts for DSP C674x CPU */( G; \' L& h% \
    IntGlobalEnable();        /* Enable C674x global interrupt */* u1 U) o4 M+ X# R- x
    iAssert (Notify_start()); /* This will enable IPC interrupt */6 R6 v) u1 z8 a' {4 K
}
& f' F6 q) Q+ n& l( C, ]3 R$ S

4 Q5 x4 x) N1 ]3 J) Y; O0 N然后是  % b; }  }5 ^1 Z! \6 B# m/ D6 r/ Z6 C
            // UART 初始化
! x3 U" p* A' g1 E' h$ v            UARTInit();
, e! d% D6 [) g; _
! g" f. [4 k/ `5 v  k3 b% q5 m            // UART 中断初始化- B! x5 ]+ S* m' H! \/ i6 x, t
            UARTInterruptInit();2 u+ }( U  ^* M: Y, D' `

  {4 ]! L- {( `. O3 s7 ^/ M5 R7 O3 F1 s" ^# a: ^1 O
void UARTInit(void)
# D5 b( ?7 V! \1 @% Z{& I0 R4 l5 J; u- ^! s. t
        // 配置 UART0 参数( B3 A: s# ^" x% K" `: d' F
        // 波特率 115200 数据位 8 停止位 1 无校验位  A1 G1 N  t* L0 ]4 F5 w
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
# Y& U( e, l9 H( T% s                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
2 m5 c* n9 O5 ~% c" [/ [4 ~% T0 J        // 使能 UART0
& E2 n" G! X3 e        UARTEnable(SOC_UART_0_REGS);( D0 O8 B7 F: n. b+ d

7 g4 b: m9 f( n& D2 ?" P/ V. W    // 使能接收 / 发送 FIFO' x; {! J% @2 `
//    UARTFIFOEnable(SOC_UART_0_REGS);
/ M* A' V1 B1 ~% h9 L
: c: q% a/ h3 ?0 x# u& p        UARTFIFODisable(SOC_UART_0_REGS);3 Q! W6 S+ m$ d4 K2 I8 W

# v, Q: t/ |" r* A# E    // 设置 FIFO 级别     接收FIFO的级别
( X8 E8 x: S- l+ Q; A//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);( H8 p! \" l( i& d, r4 b4 \+ T
}
! E9 p" X# J0 p% E! I$ ~- {. D  G4 C
& p9 ~$ V9 S% k5 j7 b
6 \( p6 ]) d8 |) v
void UARTInterruptInit(void)
% }: a1 q9 r9 b{
  k3 J# I$ D- a4 v* B4 B/ {9 v+ X        IntRegister(C674X_MASK_INT4, UARTIsr);
: A. r3 U6 s2 e' H' o7 e        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);! ?$ [# W, ~+ D5 S
        IntEnable(C674X_MASK_INT4);* e* o0 d) L& Z( P

' i& a2 R0 h. s5 R( _        // 使能中断# {3 f0 [. c, W
        unsigned int intFlags = 0;
3 q; |7 S& h! ]    intFlags |= (UART_INT_LINE_STAT  |  \  D3 x  O. M( K" v4 f  A: \
                 UART_INT_TX_EMPTY |    \* V! I# J! S/ |1 U
                 UART_INT_RXDATA_CTI);
+ u5 y+ @9 o& K4 y7 U    UARTIntEnable(SOC_UART_0_REGS, intFlags);& K( y0 q9 u5 Q
}% q3 n+ O6 b! T% Q5 T4 q2 Y

$ d5 F4 l" j: d. I9 v+ P( i+ S- ~# Y- w' y
void UARTIsr()
+ i* O2 ^/ C" Q; N  e; v, c{
% Y0 N; Y0 t7 @; b5 X! l$ m  }6 W    static unsigned int length = sizeof(txArray);
5 D0 q8 K1 S; [5 @    static unsigned int count = 0;$ x0 u- k) M6 A0 D* x+ u
    unsigned int int_id = 0;6 S+ B1 n6 _8 ~! p5 i

1 I0 ]/ F5 g. k0 I8 j. D9 I6 u; [- W% w/ b6 _) e

5 m. e; J- \) z2 Y$ ^: Z    // 确定中断源
* Z! E" ?) Q, [  E/ g    int_id = UARTIntStatus(SOC_UART_0_REGS);' C8 c6 ~: `3 ?' V/ w5 x

, l- T% @- K) I4 ?3 Q) ^    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。$ {1 n, S9 v  Y. z0 I  D& J0 A

& D! Y% n/ l; o) }, P* h+ g3 B7 t7 ?/ w4 R6 F- Z; y
    // 清除 UART2 系统中断' h+ {) Z( a0 n! ~( T, o
    IntEventClear(SYS_INT_UART0_INT);! z2 U& m$ W0 X+ p

7 p/ s* y0 }: w4 ?    // 发送中断1 E5 s) E# _+ Z
    if(UART_INTID_TX_EMPTY == int_id)
3 c/ S2 T+ f, L    {$ l* l" S" I2 z, \  I
        if(0 < length)
# G. s. ~$ |0 {# {' Y) J7 \, X        {! q% }) p5 o8 F# M% `% e7 F& \! ?; \
            // 写一个字节到 THR
( K. f- C, z( T- ~8 F            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
1 e+ t2 o) F: z! i" \            length--;; l0 A3 \: A- \: a
            count++;
8 \( M# x9 z9 `        }
! n+ x$ Q# Z0 F; e6 h* Z        if(0 == length)1 ~% t( E( r9 U, U) M4 A0 Y
        {( R4 H$ `. n& K1 |4 K  }5 ^: D% x
            // 禁用发送中断# ]  c; F. E! G4 w) X
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);9 }) t( h2 W8 |2 r
        }
+ j3 D- e$ ^1 x+ `( b  f$ ?% [     }* F3 F8 i" s6 |' P; I, p

9 u4 U/ D" t( T    // 接收中断4 `* Y8 o6 h% X0 e4 i
    if(UART_INTID_RX_DATA == int_id)
* n5 W, n. i  S. d* |! C    {2 [3 A$ Q) J- J" `9 {) F
        if(status_a0==0)' h/ s4 N. u. E# P6 j( {' i
        {0 b: M5 _: V/ V( h  Z
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
0 I  W1 L4 W0 G- p% t1 K4 z) v5 e                if(a[0]=='#')
* b3 E2 U; x5 X4 Y) ]3 w                {
$ A" Z1 i& x2 D) V) |3 Y/ i                        status_a0=0x01;/ |* ]& o# W# `# e) }: Z0 x0 \
                        status_a1=0x01;6 x; Q# `# Q' o7 o( R* x/ Z
                }; Y% {8 [: C7 r. N
        }6 o% B5 Q! u) v& o! u0 n
        if(status_a1==0x01)
2 k6 k0 j( I: p9 z! y1 ^% D        {
4 S; K$ n- f4 b/ l" t* q* K8 }# o                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);! D+ N; k( ^) t8 ^
                if(a[1]=='R')
% A9 M. e/ J8 V$ s1 i                {* j* o/ y, t" o* e3 o( l. o
                        status_a1=0;# T! I+ P3 _& ]! ?
                        status_a2=0x01;2 o  i4 B/ Q8 U& B  f; G
                }
/ W0 P3 K9 [. X( \5 z- L        }: u& }# G  F' O2 j& V/ f
        if(status_a2==0x01)! w. H; U# {( m+ @
        {4 J# P" M) N2 ^8 E5 F; ~
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 L& L: h, h0 V, a" `' T* {( i& i                if(a[2]=='A'): S- E; d- b# c0 S' b; V9 G' \  j
                {  \0 I( K4 e/ h) L" o% J8 P! w
                        status_a2=0;% A5 }! e" X/ h: Q
                        status_a3=0x01;
3 F( M2 h* Q3 I% ^                }
- m( X5 p* C' M, F+ P% s- a8 a        }1 H1 I$ U( a! F: Q1 ]+ Q- s
        if(status_a3==0x01)
% |8 u* B1 F3 e! j$ M* _4 j  I: e        {: E0 J7 `/ w* K# W' v1 c
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 A4 {" U  R2 V" ~+ Q- v6 ^8 b
                if(a[3]=='N')9 v& F1 b5 b8 \6 t
                {
9 G0 ]" r0 o. _/ W# `6 U                        status_a3=0;
6 c! Z5 N1 ~$ @$ N, Z                        status_a4=0x01;
# L  S5 K5 _) l) E# i9 n, x% z                }" s' B, \# Q5 ^8 J/ X, y
        }/ R  G/ c! \) S
        if(status_a4==0x01)3 z" @" U( P/ `) `7 w6 N# D: W
        {4 k9 |) u& _& g2 l
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 Q% y, P) \% e' S- u$ J
                if(a[4]=='G')
/ X) T9 ^$ W2 Y, n                {
- F4 t# D- |1 p                        status_a4=0;' ]% y7 _; {, i, a7 j
                        status_a5=0x01;
: V( l; ]. o+ ?8 q  @                }6 Z3 e8 g$ I: m6 y* Q
        }" @+ {* R, i: d; x2 Q; [! W1 X
        if(status_a5==0x01)
% E+ |) K9 H! L2 Z& Y! c, b! y0 w        {
) s5 z' ^. g0 D. S" H7 D                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);2 Q. B. D$ d; e( x1 A1 D0 P
                if(a[5]=='E')
( o' E7 H+ I7 f5 y" L4 s                {
, q9 `5 K6 m4 j. V                        status_a5=0;
! x, v% Y6 [$ d4 l                        status_OK=0x01;
7 ~" R3 ~, K' \8 d6 a                }! ~5 ~1 h& h* ?' k: o
        }
; F( J' T  M6 P            if(status_OK==0x01). Q- Z3 O3 M" e/ |& y: @/ t& w
        {
% u5 j* Z5 X$ f, L- p5 Q                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);0 k9 K8 T" R/ e
                        lengthrx++;6 A( Q" Y% d' M7 e
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)0 i+ y# t/ Q9 w) P+ M: P
                        {
# b" e. M2 c' m6 y# U# L% Y                                RecState=0x01;
6 d' X/ D4 t0 r3 S% V0 T2 w                        }9 L6 `; V. l: X8 B* ?0 w) C
         }
3 m8 e1 F% q2 O8 P9 @( D' [- H
" }: ~4 G9 I2 |6 z. `     }
) s' C' N; `$ g$ m+ X7 A9 |, L* X9 N- n4 e0 [' g5 j1 d" z+ r8 j7 d% o0 v
    // 接收错误$ g& P$ G: \. a
    if(UART_INTID_RX_LINE_STAT == int_id)' R1 t- y) K, U& h3 ^+ i5 h+ p/ I
    {) z# @/ V# i9 B. m% b! y0 p
        while(UARTRxErrorGet(SOC_UART_0_REGS))
% ^& j% ?! @( y/ a$ X, H8 |        {
" L) g8 f. b" W) V  d- H8 Q            // 从 RBR 读一个字节( L- }; j# q/ b+ q
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
5 v, Z" C# ?5 i. f* l0 S1 M        }/ |# j9 |7 c8 K" ~- \1 f. G
    }
% z0 r, Z) [! N' H( Y* P% F8 a& m' t; h3 }! I) \  t  C4 v. I- s
    return;3 i6 {+ x# v6 G% V1 E! `2 ~
}
. L' u# j# u- g7 B1 \  \  C1 z' b+ `0 f, u0 p: _4 H+ q5 j: }$ i/ n

4 a! ~1 `! y9 Z0 A5 [* d; X
8 [, u5 z4 z, h2 V) [& h5 s! K9 |+ ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2191

积分

创龙

Rank: 8Rank: 8

积分
2191
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,$ z( g) z- Z4 r1 \  r
) [2 w! f' X, C+ \% v
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
5 n: u! Q. I# F# a% R( C% Q
" F8 ~% o, O# Y, v5 t5 k要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:138 n- ^  H9 ]* Q
hi,
5 T1 q+ b# q) i; C& o% y( m# k7 m. _. Y& j0 ~: F7 `
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

6 B; ?2 `% x' F/ o# p/ H6 }" qvoid main (void)
1 Z& P, A1 ?; f+ `{  }1 ^- l) h0 d/ G) m4 P
        int i,j;9 L+ p& I0 x$ f# O. |# E7 Z
    char *str_buf;
- d4 `) e# \  i0 {( p0 b3 T    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
4 T  Y' u! _9 c2 f& w        double est_L_b_=0;
& \. ~/ F) d3 j* h* a. \        double est_lambda_b_=0;* b; O9 O+ {7 ?- W+ x
        double eul_[3][1]={0};
" J! X2 ?; z" ?+ p% J        double est_v_eb_e_[3][1]={0};
4 ]: o- @: A1 ~        double est_C_b_e_[3][3]={0};
2 `0 s& r7 |( I, V    char *qm;7 S6 N; w7 R0 N. M5 L8 T5 z
    char rec[70];
; {; j; E1 i0 L" v- G( c        double L_b=0;
9 K. H1 t% n, L/ k/ \6 ~0 p- \        double lambda_b=0;1 K" ]5 `4 ^/ w$ `  T/ t
        double h_b=0;
5 q) G2 j1 U" G9 E  T  o2 \4 h        double rate;
1 r% {7 z8 v( ^. H/ _: m% s2 l9 l9 ^

7 E, i* X" w) ^" `9 T+ `        // 外设使能配置
+ _% m4 h3 w9 {; q# c  E. f# S        PSCInit();
+ }. s( p% O5 z# U+ ?8 k% O* ?3 {. G8 I
        AppInit();
% s; F3 Z! Y& s' Y
1 }  f, ]1 X/ Y$ a. U" m        // UART 初始化/ @) J( D% o/ P2 h$ {8 y4 _
        UARTInit();' G9 n* Y6 c5 s3 n7 ?
" Y. ]3 C) _1 B5 k2 M4 B, t
        // UART 中断初始化# d+ z( R" z; I9 J# S6 e6 r8 ]% n
        UARTInterruptInit();
! G9 m$ A$ u) e2 ]; O$ {4 L  w% u+ ?; h8 r1 ~; Z! Y( v0 [
    evtRcvd = 0;) z; M, G( c9 Z! F
    RecState=0;' V% Y! W2 R2 X1 b+ H
    /* Initialize */
) x" K( Z; N5 m& U4 d! z# h% j
0 J2 p! y1 d) q* N: s    printf("DSP subsystem ready\n");: a9 {. h: T6 u" ?+ z
: E/ o/ Q; _$ ?& z% N( B, m
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
6 Y5 O$ u: |- t5 e# t
  ]4 |4 o6 G5 Afor(;;)
' }* }& S7 j  U/ n; Z+ w9 \, o{3 H1 I# \8 q9 h  L
        if((RecState&0x01)!=0)
3 l" x, E' Y% {        {; y7 M2 H7 j1 r1 o" e& x
                printf("liuzhenxing\n");. I# J; N. q. ]2 D
        }
) q0 a; M# g* y2 ?, m, V        else2 t% }0 \4 L6 z  Q3 e
        {
' p0 M' [9 Q7 u/ P, w       wait_event();0 n8 X7 F7 t4 A8 n# |

" D6 x! J7 W- O1 j5 s5 Z           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针. {$ k1 e- N0 l5 @$ Z  u; m
7 h8 a! p( A( E, e9 l1 e) p7 p
           for(i=0;i<60;i++): r' W% m% H5 ?) ?6 A
           {
2 v, s" d  ]% |* n. q) m3 }                    rec=*qm;7 ~( }; J  ^5 D' V
                    qm++;5 k# j# k" x! H
           }: r7 k  `& p$ a% C1 j; O1 I$ N" X

( e: _2 j. t2 V4 ^           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);- m7 {) t) w) s# ?0 A5 h/ Z
0 K; F5 F1 [5 [* A8 p. R1 K8 B
           L_b=L_b_receive_double;; f% Y; X6 |! p' k
           lambda_b=lambda_b_receive_double;; B1 `) F' g* M% M6 c- I( w! R
           h_b=h_b_receive_double;0 @" }( |' W! S
           for(i=0;i<3;i++)8 O: h8 x! V8 e5 ^
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];* p$ ~/ q" K- U6 T. M
           for(i=0;i<3;i++)
; p( m6 L, h* ~4 r3 L                    for(j=0;j<3;j++); n" [7 e0 H+ _4 n$ L2 U
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
5 ~  N& Q$ W" F/ N  X$ [) ~& J7 l) v# N; l9 ?1 D
                printf("L=%lf\n",L_b);
3 v4 ]  Z7 [, O7 I                printf("lambda=%lf\n",lambda_b);
" u& Y  ?* E/ K; v  s  ~  ]                printf("h=%lf\n",h_b);4 L  J, L. R2 ^% d4 w( k: V2 U$ ]/ }
& t2 c) M/ M( ]3 v0 ?1 [4 j
                for (i=0;i<3;i++)
/ B) ^9 e3 W$ V9 |                        printf("%lf\n",est_v_eb_e_[0]);" A9 d+ \  o) M
                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]);
3 W5 D+ U8 V) K8 L; f( r, e( g                printf("rate=%lf\n",rate);6 c& e: t- s# T
' t0 \* G9 N  {0 N: ]' C
                CTM_to_Euler(est_C_b_e_,eul_);
6 Y: @! }; u# ~7 T( z8 u                for (i=0;i<3;i++)
+ A. r  q0 Y# Y, n5 b! }  W/ k                        printf("%lf\n",eul_[0]);7 z/ j3 [/ c& Z
                printf("end************************\n\n\n");. }9 v3 B; @- S4 R+ |" e9 x( R0 R
/ K9 y" P, }( L" C. ]
                /**********************************************************************/9 M% M& _- _, w0 R

  F( P8 I8 I+ v1 N- U# \9 Z. `            char flag[4];4 s1 ?7 f5 d6 y5 _

! D) T2 ~9 J" @1 Y+ Y- B! m. q            flag[3]=0x00;: W  F8 G  v7 `; {8 L* b
            flag[2]=0x00;
  j+ X2 P/ J6 i' v/ p9 V& Z            flag[1]=0x00;
9 r- X5 Q' o% B. v  Q, m            flag[0]=0x01;
3 M+ V& Z% [- D$ O% o6 O5 p; _& ^, y5 i& {8 }) F) d5 r" c6 f" x8 N
    /* Allocate I/O buffer and init with string */
- V: V. D0 k6 i3 ?* M    str_buf = (char *) malloc(80);% V5 E* R) w, {$ Q! \% `
    str_buf =flag;
. R0 V- l4 H3 X3 n8 X$ Y, O: R( g* Z9 d1 J
    /* Send buffer to remote CPU */# M  _0 i" _% T
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));3 n5 S. e8 @# J5 @0 U
2 ~* [- j5 M) n4 Z! g, o5 j& x
    printf((char *) myPayload);6 b2 @% n% l( Q6 x/ I9 r! g3 ?- h
        }
( C& A8 x3 E1 D$ i, v9 ~2 f3 w" `}
- k& z5 j! B; x- s+ [+ {! L+ v# Z% G+ y% m0 v, [# E
    WAIT_HERE;
3 G" u. C2 R7 [# X4 E7 e}6 N  j6 X" O" _- z
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
# X: T9 v+ m! p; {+ l% B我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。% p0 }; _; i. {
然后我把双核通信的初始化屏蔽掉,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
+ t1 }! p- v4 Osyslink 的初始化是否成功,notify 通信是否正常了?
! z% d3 A6 `  X; x
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
* \5 k  a: ^9 `1 D2 f% b0 U, fsyslink 的初始化是否成功,notify 通信是否正常了?

" O# }) ^/ h1 r, O2 u4 r4 _我用的是裸机开发的双核通信,用的是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
, ]5 T! y2 W8 A- ]+ i1 Q6 T8 N我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

6 A$ B( ?) w: D4 K5 A& q建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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