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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
" ~! P6 s& t- @; x' k, s6 [: _, M; T我是在DSP初始化这不太明白。
+ n! h* e# U! }: N/ r初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。# L9 W' h: ]; V* m( O6 G+ @
$ p  ]' q6 W: W

# l8 ]2 {1 O7 K) l. H2 C6 L首先        PSCInit();//UART0使能9 g1 k0 E  u+ h' k
void PSCInit(void)* F+ o  L% E4 M# ~6 E7 `; i
{& M" {+ i" f$ B) p
        // 对相应外设模块的使能也可以在 BootLoader 中完成0 ~% F: |; \9 S0 p% ~$ B
    // 使能 UART0 模块
' B+ k* _6 w1 B* f- z    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);  p  M/ A3 Q/ b. J: I+ v+ b
}
% x/ ]3 V  t0 O$ d2 Z

0 l0 O+ {- o: {+ U5 X. B' @; b+ c& x9 \3 p+ C/ j2 \
然后是 双核通信的初始化           AppInit();& H& V- d" ?) }. W4 z3 S
void AppInit(void)
* d9 Q! l6 d7 q- h* ?{
: a( U) c, I6 @. \    /* Structure to initialize IPC (see Ipc.h for definitions) */. s5 U0 G  w( s: l* W% Q% Y
    struct IPC_cfg ipcCfg = {
& _, m- s6 l, j            IPC_DSP0,             /* local processor Id */
0 j& c6 I& x2 o" [: P1 p& P            IPC_ARM_HOST,         /* remote processor Id */% T* ~  V+ F. r" z5 a" v
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
: a% a2 Y. @4 J4 z' w            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
/ E3 e4 w* O  d" C' P( X2 L            NUM_MAX_EVENT,        /* maximum number of events to be created */4 M% I! F. @5 U' v
            &ipcPvMemDsp,         /* local side private IPC memory */
. ^$ [  Y9 P! y" V2 h' `* g5 N            &ipcPvMemArm          /* remote side private IPC memory */! {: f( \* d/ ^2 V8 r
    };
$ T, _, I! U2 t    IntDSPINTCInit();4 h+ T. N4 @9 E8 {
    IPC_init(&ipcCfg);
4 q6 j4 Q6 F& S* q    IPC_intRegister(C674X_MASK_INT5);' s. ?& @+ p) g7 k4 v+ i
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));4 h$ ^0 m1 p; s1 M; _; L3 ~

, H, e! ^& Q8 W% `' ~/ ?' E    /*  Enabling interrupts for DSP C674x CPU */5 j6 U' ^  t) Z+ P2 n  O9 D
    IntGlobalEnable();        /* Enable C674x global interrupt */
; j. Z. N5 i" ?    iAssert (Notify_start()); /* This will enable IPC interrupt */( q  p; D2 M; k" _9 F
}
4 p- T& r' L3 B6 a0 Q9 ^
" A2 }5 E4 p2 f# Y3 D; `6 n
然后是  
1 f. M- I4 u4 ~' Y2 Z) b4 t3 G            // UART 初始化$ t" f$ m, R* o. q, x
            UARTInit();
7 V8 L( e. r/ }$ m* l, n5 d0 y" S- E: z: q: \( U' @
            // UART 中断初始化3 j! h' c8 V9 I4 D6 q
            UARTInterruptInit();. O0 [5 e1 \' n
# `5 y/ O1 h7 o( Z' v* P; S7 W

1 r- N- v9 o4 w% i7 d- k9 ivoid UARTInit(void)
* w! Q. K* h' L" r5 t; E/ B{7 ]& r* ^  B. ?2 ]* C" L3 U9 c' E
        // 配置 UART0 参数) @: v) t+ @: X& t- g
        // 波特率 115200 数据位 8 停止位 1 无校验位
* J. D( f2 f( v' p1 W    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
7 Q* E( }0 z7 J/ F( K1 ^" ~                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
& z8 t& A) g9 R6 t7 _: |4 b        // 使能 UART0
% ]" H# O, ~" Y9 k* i        UARTEnable(SOC_UART_0_REGS);
. v% R! d( A0 p  r6 |2 Z* i- E  n9 `5 }- Q4 l" R6 q
    // 使能接收 / 发送 FIFO* a6 \3 J. N* V; o: E
//    UARTFIFOEnable(SOC_UART_0_REGS);
9 H7 O& h0 _' E% @" j' i% n; N1 Q2 R9 f, I0 V# j/ z, f5 M# h% M
        UARTFIFODisable(SOC_UART_0_REGS);2 j+ c. T! h8 y  f& p8 {5 a

! A4 N+ u* |' ~    // 设置 FIFO 级别     接收FIFO的级别
" i+ X. g! n" \; c/ Q//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);# Z/ J  Y/ z5 ^- }8 l5 m% w0 M6 ]2 o
}2 W$ X- i8 D. T3 q" l

, \* [# O$ y1 b
1 i& t+ x3 z0 p$ r5 Kvoid UARTInterruptInit(void)) k$ R, k4 s% p9 [
{
7 L& p6 B6 e5 ~4 k. k1 m4 C        IntRegister(C674X_MASK_INT4, UARTIsr);
2 F- F# i9 t$ h, X/ ^        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
& P, i2 c# f  `        IntEnable(C674X_MASK_INT4);% Y. a9 E0 ]5 f; i8 O* W* J
, X3 T" N5 G+ H- c
        // 使能中断
9 t; w) |/ O3 ?* g+ T! ~        unsigned int intFlags = 0;$ E# e9 _+ @: Q) h$ w
    intFlags |= (UART_INT_LINE_STAT  |  \
. k7 O6 |6 A0 Q% a. I                 UART_INT_TX_EMPTY |    \0 ^" o& w7 |. c
                 UART_INT_RXDATA_CTI);
0 s6 G) v7 ~+ b    UARTIntEnable(SOC_UART_0_REGS, intFlags);; Z: U) U0 H2 k2 c# \( v; R
}& N9 j3 I7 w2 L1 A; c( P9 C
$ T; u7 p- L( Z3 m6 s: _0 x
& p: A5 M" \0 @( N- T2 {0 h
void UARTIsr()
5 ]9 d+ t: M; R& |( L{9 g! U5 ?% o0 [; q+ v" d2 u
    static unsigned int length = sizeof(txArray);
5 Y( m" F5 |1 @    static unsigned int count = 0;
$ l6 r  C6 C% I, u2 ]% ?' v+ O    unsigned int int_id = 0;
4 a! h: f* _& O8 X' r$ q9 a2 p" {1 A
; T8 s- H& Q: O5 x9 {: W: Y- L

% z) R2 k/ k: `9 v( j' x2 U( K    // 确定中断源& F( I- A  p7 O1 |( W5 o7 B; x
    int_id = UARTIntStatus(SOC_UART_0_REGS);: `- N( z% b7 h! e7 e  F

1 W5 H4 ^+ [$ l. y9 H# b: k! J    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。" U9 L: Q! ^/ ^/ n7 R

7 T. n- Q: U. B: `, |  |# R! k( ]$ {/ ]* S6 a
    // 清除 UART2 系统中断1 }- W' h$ {( n
    IntEventClear(SYS_INT_UART0_INT);
! y8 {2 g6 r# b0 `0 Z. h' |) u7 b& H, D$ f
    // 发送中断
) \8 P# D" D& C: E- ^4 D    if(UART_INTID_TX_EMPTY == int_id)# B2 |2 N9 q0 _6 }1 o
    {
; v  f  E, X2 L4 L3 B# x: J3 g+ d0 F        if(0 < length)1 p& K' S9 c9 w6 Z
        {
$ ]0 j5 p1 h0 o1 m            // 写一个字节到 THR  m& x& B' m+ M! o- W! [
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
8 ?- b( j* ^7 h7 Z            length--;
2 {* X0 G6 H* v4 [- _            count++;! q2 J+ O" O( ?% M0 T) _
        }
& [+ i5 U. p8 i; F        if(0 == length)4 L# A# ]( M) B1 ^7 b
        {
2 F/ @- q9 M/ S+ `) p, F2 u7 w            // 禁用发送中断7 D' n# G, |. j
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
" a% {; B4 P' {0 o+ e6 ~        }
" v* H  c' P6 V- S     }8 X" L; G/ U' P5 v: L4 |
; ]. C% w, U- v6 q2 q" h
    // 接收中断
( v$ X8 p7 n5 c, [% Y. M% w! X    if(UART_INTID_RX_DATA == int_id)( `% R' R' ~- \- t5 h7 ^
    {
. U4 M9 P$ j7 _        if(status_a0==0)
0 K+ r. l9 b1 L  J        {- k! F. E3 y, p; l4 T8 s  L
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% w% Q( J4 N  N: a  }6 t                if(a[0]=='#')) R4 A' M& T- s* p5 c, Y
                {
* h2 q6 L9 `* V! D) K                        status_a0=0x01;
5 J' [7 F) v4 H, h$ H; b                        status_a1=0x01;4 K- ~8 t* r8 a9 p9 F
                }0 \6 c% Z& K$ J
        }, u& R9 @# {/ N7 v2 u  h3 K8 N/ g' e
        if(status_a1==0x01)9 F+ v! l3 ?' O/ R7 t
        {4 I8 |* q: c. U8 ~% O( @1 t
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% X$ m. V, I9 ^% ~                if(a[1]=='R')( f9 B0 R* f# O' u
                {
. Q: H4 L$ X- P" y9 @% m3 V                        status_a1=0;
& y0 j" x' ^/ i" q6 Q3 {% C- @                        status_a2=0x01;: Q6 ^% X4 J* P: z
                }* ^4 ?* F0 M, x0 _
        }
" L4 W0 d8 I8 x0 T  D" W$ O" J3 \, P        if(status_a2==0x01)
" t$ C# |% }9 o8 e) C' ]        {4 O! H) \" g) v) c% ]; E. G& c
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 O7 `5 S, v: f. f& a                if(a[2]=='A')( K+ M% Y8 L! q& W" i7 x  _/ t+ A
                {( ]% [% B6 c, i. h; P$ B3 ?5 ?4 Q! M
                        status_a2=0;
* d5 F0 `$ J" h! q                        status_a3=0x01;
# j0 H! ^, F$ T' y6 H. q9 t                }
! Z0 h1 V# b( A        }0 a9 B* ?2 z% i0 B6 I
        if(status_a3==0x01)& {3 J  l$ F* M9 k$ Q. r
        {
2 {! }4 E& a& q                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
8 H/ ]: G9 L) N. s: K8 Q, x                if(a[3]=='N')* p! `' t. C. _9 h% g' z
                {
% e6 ~/ |7 n1 y                        status_a3=0;
! [. k- c! @! ^- {7 }# f8 W                        status_a4=0x01;( Q3 Q; V: I( G- b$ U. S
                }
7 e: e2 n! C! t6 @        }: e5 H0 J, i8 X+ ]$ _
        if(status_a4==0x01)( `4 \( E, f3 C& [% z" L1 e
        {
0 Y+ [5 O7 M5 B& _; |) V* V: ~                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
# \  x$ \5 A0 v: Y$ R8 T& V- P                if(a[4]=='G')8 Z  E! h8 L" n; z" j
                {3 U3 d2 l% }3 o4 I  ^
                        status_a4=0;
( d& W/ V  L, M- o9 n. J5 J                        status_a5=0x01;+ h* e6 _. H& O3 ]
                }  N+ Y9 q+ D6 }) F& H: e. f  d
        }
. m* w: Y  _  D) z1 j, Y        if(status_a5==0x01)
; {- Q+ \$ N- J; |        {# P3 g0 Q/ G% O8 @7 z+ D
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 s7 f# l$ T; y
                if(a[5]=='E')
7 d' L, G" l5 [$ K                {
1 B- ~8 L: @- G1 I$ l                        status_a5=0;7 C* m/ ?+ L' F% ?: o* I: a
                        status_OK=0x01;
8 l7 @  h+ T) \0 k( p                }+ i3 T2 |% A+ j8 [6 j6 w. V" j
        }
% T4 L4 l3 z* G! u            if(status_OK==0x01)# B" b: A  b1 b  ~
        {
+ U) a! F( h% v% z; ]                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 b$ r$ i. K3 q/ N: a3 u
                        lengthrx++;
0 t0 h: L+ t: n                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)% b4 }' J8 N! y; o' K  X
                        {$ p; B: \" G7 ^( ]" x
                                RecState=0x01;+ z; T/ O9 n$ C
                        }1 G5 |4 p7 z! |* O
         }: {  U: D0 q$ E. G8 P: n8 D. W$ }
* Q; f- m' U1 s* M- T8 C+ f5 {( r+ S
     }
* Q% N/ ~5 a2 ]; L- @2 y" a/ h1 Q% S0 D' x& X/ h6 M. R0 R
    // 接收错误
! i5 `" e+ J1 Y9 x8 |- W/ \    if(UART_INTID_RX_LINE_STAT == int_id)
: S0 L2 g# b6 H) N6 K    {7 l4 P8 Z2 C) K8 ]* g- J9 B
        while(UARTRxErrorGet(SOC_UART_0_REGS))5 d1 ^& q2 M( y3 C2 d  }8 d
        {' y% c- K2 y3 `( x2 h! ~0 O; `
            // 从 RBR 读一个字节3 q+ `9 g9 \' N" ^6 d
            UARTCharGetNonBlocking(SOC_UART_0_REGS);3 |  G# b9 }% a  J& y& n
        }
  C. j2 i  k# U% Q  d    }
7 S- t  n  W7 u8 g  I
+ C4 A1 j: z2 o    return;9 e4 u$ }0 K2 X
}3 N# G8 c1 J9 E( S/ b; L: i8 t( l
; c( B% {) U* O& E, w

8 x% i, k+ j" w) |8 i: j: e  |3 B; c3 F8 L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2190

积分

创龙

Rank: 8Rank: 8

积分
2190
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
) y7 H- Z0 w% @& {7 R- o6 ?/ l( ]) U3 X- b6 f
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
: z4 S5 A% j- E% w% m6 P5 `/ z& E' M9 O; t/ e4 J/ T3 S) @
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
( G( n" w6 R( v; ohi,& d) h( X9 \1 e5 k8 ^4 N1 P/ k( t
+ e# |* w% G9 S( M+ R" G
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

% P" q$ H1 M( |- [6 n* D- \void main (void)
3 B9 l. A5 P/ I* a0 S0 I: t* A; `{+ V) V7 M+ }1 I  H
        int i,j;
7 I/ h! l' N2 B4 \+ [- m5 p    char *str_buf;- F% i/ B  T7 k- c% e! m9 C' g) L
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
, h! [, |7 a; N  m        double est_L_b_=0;1 m* ]% [- d/ s5 P1 C4 a
        double est_lambda_b_=0;& Y9 ~% c. g4 }! u7 F$ Q3 O; s0 |- m8 N
        double eul_[3][1]={0};9 x8 f9 M% x! A  _) x1 d+ D$ t
        double est_v_eb_e_[3][1]={0};& G4 Q$ Y9 P5 V: N% s
        double est_C_b_e_[3][3]={0};
  X1 S4 X. v  ]5 E    char *qm;& n+ ~/ K5 r5 {8 C: h8 d5 @
    char rec[70];
! j+ ?* `9 M: F& P; b        double L_b=0;3 s3 L6 U& K# K+ l' x2 F, V1 D% t
        double lambda_b=0;0 `4 [: x8 F1 E1 o* J* H2 Q
        double h_b=0;
6 o$ l8 p; \' g; H- S3 A' n        double rate;
) p6 f+ d" \8 o2 \) l( K
) S) `5 [  u6 x
* w0 A, N: b# f/ _        // 外设使能配置
  s, r. e' A- _0 ?; k        PSCInit();  q$ ?) O- ^, `8 n7 a
4 o" D! f7 o3 z+ s" V
        AppInit();* k# g& R9 Y# j4 }" R; h

) i8 h, t: }1 w+ D        // UART 初始化
" |2 p; O0 U- n) X0 F4 U        UARTInit();
9 l' I) Z: K1 ^/ x7 d" M, q
0 @! W0 o: Y. }9 [        // UART 中断初始化  [1 i  c* R5 o
        UARTInterruptInit();  V7 _* S+ \2 i. y. {, @
0 O& S/ @5 _7 y
    evtRcvd = 0;& H: [+ P0 c9 X/ V' X
    RecState=0;
# _9 b$ u% J. |$ i7 I5 {$ Q( M. z    /* Initialize */
1 [+ S- @( a+ j/ R; n6 F. D! W
* \2 h8 R5 o( D) f    printf("DSP subsystem ready\n");& F7 ]" [; y  {, [0 i, G

. P  q4 H) A/ x6 L' _    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));; {9 \- N- `( L3 v

8 l- v- ~$ y. L$ @. I0 lfor(;;)4 p7 K2 A, Y  L* p
{5 w2 L* Y' S  A8 g3 V% m% B
        if((RecState&0x01)!=0)
6 G  B5 N! ~. S7 t4 I$ d% m0 ~        {
  ]: F( Q" a( s" g% v' _1 w) _                printf("liuzhenxing\n");: \: |( z* D( ?3 \+ X$ Z, T
        }
! @% H* F3 _* s$ n        else% S& d; f3 [) T4 P/ o( p
        {  `$ P3 b% {4 Q, f7 Z5 @
       wait_event();
9 u" ~- P# E0 M
+ v0 N9 L" I' k/ w0 e! `           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针8 j, n" _% O: Z/ X7 ^
! X( D" X7 a! f2 {, _" H
           for(i=0;i<60;i++)
& J. S* |* j8 }! Y1 `# E- ~           {
  G5 H* {+ M% _& |% d9 R                    rec=*qm;
) D- D7 [8 _# B+ K                    qm++;" \. o  I0 k6 Y
           }
1 s2 {% T$ i8 A9 Q7 L, D& f0 p+ D0 R
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);+ Z  A$ T& n2 S% R2 J% Q, _; ~

  S" R. s' S. ^3 ]- u& ]% [$ u0 ]           L_b=L_b_receive_double;
6 P; l" `* A8 l( O           lambda_b=lambda_b_receive_double;
( `4 I5 x7 S4 M# v4 t5 D           h_b=h_b_receive_double;
2 O6 E" I% p/ C" O) L1 f1 h8 N           for(i=0;i<3;i++)
+ E# h! @1 ^. }: s+ q  q: P$ f6 O                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
' J% R' O# t3 }. a1 B) Y) L           for(i=0;i<3;i++)1 d. v; L6 C. F- {8 [: V* W/ W. S7 u
                    for(j=0;j<3;j++)8 O7 T$ c3 U# A3 {, k& ?
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];$ U. o. t& h# _6 r

, J* ^4 P* e- L5 r# \8 w2 a$ q                printf("L=%lf\n",L_b);
) i2 O1 ?1 L* P  y4 C) A) C" X! T                printf("lambda=%lf\n",lambda_b);
) m. C& n& k7 j7 \( F- _3 X                printf("h=%lf\n",h_b);4 N. o( |! U7 h  B- G

/ R) @, e" @6 C. Y0 a4 ]                for (i=0;i<3;i++)2 y  |8 h; V- j- t9 ?, ]. r
                        printf("%lf\n",est_v_eb_e_[0]);! N* Y& R0 T* Z* f( v" ~. C
                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 F4 T6 T3 J' ~, W& N                printf("rate=%lf\n",rate);# w. D. K# ^4 R1 g9 V
/ M8 Y8 C* }  ~- Z+ v
                CTM_to_Euler(est_C_b_e_,eul_);
2 O2 n* i( X- ^6 N" _3 Q1 q                for (i=0;i<3;i++)* w4 q9 d5 |# a% N
                        printf("%lf\n",eul_[0]);6 V* E  `0 T% i$ E3 B
                printf("end************************\n\n\n");9 m' O8 {1 C4 f$ I
7 f" X$ ]* I) ]6 s7 i6 v
                /**********************************************************************/
& n9 z9 G' p/ B" J+ n0 Q* z* m7 g9 x0 D; A, h
            char flag[4];  p7 Q1 j4 u/ c* x
+ j( q5 }: L% ?. l  u. J
            flag[3]=0x00;
& r# l# k# A. p7 e            flag[2]=0x00;" k( y' P% M  C) Q/ g! O
            flag[1]=0x00;6 C! q: X; M' }0 U
            flag[0]=0x01;
: z; F: B; Y7 N! w* ?) e9 z
% b8 ?. i! u& Y0 R    /* Allocate I/O buffer and init with string */5 U9 [( |. Z& K
    str_buf = (char *) malloc(80);
9 {  b* S. D& R( h    str_buf =flag;
% x) u  _- C" u% k% w. B2 h/ u: V" X- k  }) o, B, m
    /* Send buffer to remote CPU */8 I$ M/ W! h* V9 \$ \
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
' k7 P5 P" w5 N4 h/ u9 E0 I' k' [1 G2 Y; B2 c. s1 V  L' N6 H- D
    printf((char *) myPayload);9 J/ z6 ~/ Z8 }* i; i
        }7 g5 r3 s: Y4 _5 a' ~
}
, r' A* `" m7 u/ u* B
) A8 X9 c: h8 r$ r# ]3 c    WAIT_HERE;
- `1 l& ~% U+ W* S9 ]" [}
5 j. a1 w+ s- ?. X; G
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:# H. J2 V* R  y
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
$ ^$ W, b( B; h/ g5 D4 s2 Y$ P然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2190

积分

创龙

Rank: 8Rank: 8

积分
2190
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/ `6 l( u" y: g5 l8 @& c
syslink 的初始化是否成功,notify 通信是否正常了?

2 `& S% F( M  }# ^双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54* C5 M, ]1 O7 j; X$ Y+ @6 r: [
syslink 的初始化是否成功,notify 通信是否正常了?
6 l! C& T* [% v
我用的是裸机开发的双核通信,用的是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
2 y( d8 b4 d& `& U9 f我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
& C2 H- v* v- V# k$ c& ~8 @- ?
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 09:31 , Processed in 0.053904 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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