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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
: Y' i- ?) ^1 x. U& F2 V我是在DSP初始化这不太明白。; W, j; C& R$ o
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
! a! J4 t! R7 S( K$ m
& n' i4 D7 a- E/ k
% F$ T/ ?  R$ b( l( ?: l7 x首先        PSCInit();//UART0使能9 `/ t8 t; `8 g2 A( V8 z
void PSCInit(void)
) u, C9 y- o" n# _4 h{" M9 y8 c9 F+ U3 K$ c
        // 对相应外设模块的使能也可以在 BootLoader 中完成: `" n5 l2 v( L* c
    // 使能 UART0 模块
1 S4 e2 e0 A* g8 p1 b    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);% W7 s" J$ ~0 g. Q6 Q% S: J; q; z
}- c: I7 H; a4 G) ?

9 \8 B, x- l2 B# Z0 @1 i, {3 J) M1 q/ v' M+ _: F5 e
然后是 双核通信的初始化           AppInit();5 h4 G/ ~0 G: P$ }" \3 j4 r
void AppInit(void)! T% c! u  W* r2 }
{) e4 m% `+ J( h6 ]1 t
    /* Structure to initialize IPC (see Ipc.h for definitions) */
1 X3 I& N. J2 c4 P  }+ \0 H2 b    struct IPC_cfg ipcCfg = {
9 r5 r* q( a' ]            IPC_DSP0,             /* local processor Id */, y0 O! ^( l: w* p: g' D; h' h
            IPC_ARM_HOST,         /* remote processor Id */1 G. x8 o2 u/ D( f+ b4 ]$ m
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */8 X4 ?, o0 S7 ?7 ?3 G
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
, c4 r3 I1 u5 M' D            NUM_MAX_EVENT,        /* maximum number of events to be created */2 {5 o; `9 r  c
            &ipcPvMemDsp,         /* local side private IPC memory */
$ }0 {, X3 M- @$ v            &ipcPvMemArm          /* remote side private IPC memory */
. i) F6 x  G$ U. A& C    };
& c9 F" |; v9 B$ w+ k; Q    IntDSPINTCInit();
; E2 z, n/ o& c+ ~: ~/ }    IPC_init(&ipcCfg);
) ?) F, F0 I0 w+ j5 G( p    IPC_intRegister(C674X_MASK_INT5);
; f, @  S3 l4 I    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
: ~5 @% r& R0 o' G, j, y2 \" Z' |
    /*  Enabling interrupts for DSP C674x CPU */
0 X6 M0 U3 b( m    IntGlobalEnable();        /* Enable C674x global interrupt */) b' l- C. C; j+ A% D( o
    iAssert (Notify_start()); /* This will enable IPC interrupt */
% L7 h) @9 i8 A$ g. s' G  [}, [( \" j0 y1 l) W  w7 [
, L7 M/ P% h7 j
然后是  
  b! W3 F* F9 Q" g* e- y  e: D            // UART 初始化
9 |2 i1 j/ d4 T0 d9 R' Z            UARTInit();  j1 k' W5 j& j" C. l
" q$ G9 X; i& L! J* \
            // UART 中断初始化
5 Q7 @4 n  i, X/ F. D4 c            UARTInterruptInit();
+ {' ~7 l4 b1 Z5 L1 b- {  r' ^2 I
3 J; i9 o* d- j6 ?; ]+ i2 K, K! C! v; Y
2 Y1 P0 V$ M6 \5 ^3 K/ R# C
void UARTInit(void)
2 @$ k8 o+ }0 v{
  K. N: I, d4 A4 k. [        // 配置 UART0 参数6 u' Z9 @: {( H5 `8 a
        // 波特率 115200 数据位 8 停止位 1 无校验位
9 M2 ]$ L' R- ?9 W1 S    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
! b: o2 m- c6 I" k! p& p4 F                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
$ g4 U+ \4 g: v" T- y        // 使能 UART0
0 i0 ]+ N  _' [" h* f$ d& `# c        UARTEnable(SOC_UART_0_REGS);9 g1 W3 A0 R0 W. O5 q

. x( o0 b9 p# _1 I% u    // 使能接收 / 发送 FIFO5 G; D' P, f1 N" N, u/ ?; m# ]+ ^8 j
//    UARTFIFOEnable(SOC_UART_0_REGS);( t7 `1 E' e' p  O9 K2 ?" V5 W

" E8 O0 m9 N6 I. T' u        UARTFIFODisable(SOC_UART_0_REGS);
8 R7 Y( o; s; m; A  I8 O- {( S8 W" U8 J
    // 设置 FIFO 级别     接收FIFO的级别
$ Z4 {& O! R. n) ^8 z//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
( \- b5 p; v% h( K" ?}
5 k  Q$ q+ @8 H% C8 d; e% z# R; B0 h

/ V1 v# \6 a- M" [' U% d9 B% q- s0 y& O
void UARTInterruptInit(void)
# d8 R7 i. y; {/ I{
$ H; J% I4 W. k% b. W        IntRegister(C674X_MASK_INT4, UARTIsr);
, M7 v2 }4 {6 s        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);% v" x8 ?' S# [1 B
        IntEnable(C674X_MASK_INT4);1 p" H4 [! i$ s. y
* S. T9 M+ d  U9 V+ b# a  a# |
        // 使能中断# L# h! v8 r3 W5 v( D% I3 i
        unsigned int intFlags = 0;. M( a2 C( L# s1 @; c' m, X
    intFlags |= (UART_INT_LINE_STAT  |  \6 Q# R' Q' L' e9 Y0 ^' C
                 UART_INT_TX_EMPTY |    \2 @' C: L. }  q. s% Q$ ^* o
                 UART_INT_RXDATA_CTI);
. n$ t' {7 o5 p+ }    UARTIntEnable(SOC_UART_0_REGS, intFlags);
% N* u+ [' P( S$ h9 @}
' L6 b! [2 R( {0 b. g: s% j

% f% s$ _* O+ G2 p: W  j& d5 |. c' }: r: a6 n
void UARTIsr()$ T0 Q; c7 l. [. n- c$ H7 _
{; C2 p2 N4 |) H
    static unsigned int length = sizeof(txArray);5 U% W1 M1 d6 t5 K
    static unsigned int count = 0;
" X  ~, ~  ?6 j6 G9 U1 O    unsigned int int_id = 0;
& Q6 a3 \! W" i2 @5 ^3 w+ ]) T% z# z

% a. Z. ]! {5 ]: X% k3 c
/ O9 \2 N/ }& H! C0 Q    // 确定中断源
0 d* A4 t* M% X; \: {- g) a9 F2 z+ p    int_id = UARTIntStatus(SOC_UART_0_REGS);$ R2 j9 ^: j9 M8 c9 U2 ?% z* l" f$ C

1 `. e7 t" T5 l& p$ G    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
; }# ~! y: B% H  Z  {
% S7 ]+ ^/ D% }& V' i6 d9 R9 p5 I1 t5 }
    // 清除 UART2 系统中断
5 _6 a, c6 C. {. b7 ^/ k$ s, H    IntEventClear(SYS_INT_UART0_INT);6 ~% D0 G8 d1 |7 v! @4 _& t$ X
7 A( {9 R$ w9 l
    // 发送中断
8 S6 V, f/ y4 M/ K* c    if(UART_INTID_TX_EMPTY == int_id)- ~, U5 v) L: G8 f5 K# f
    {
- n- b7 U) n0 S8 `# c        if(0 < length)+ z- u& U% o# P+ A3 U$ U8 F
        {
) P7 Y" t; T5 O            // 写一个字节到 THR2 a# I5 Z- U, \
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);# d. F8 v1 [: O8 V8 o9 n4 |/ t
            length--;
) \" J: M5 ^9 _5 B7 P            count++;7 p9 {8 B  b/ X3 Z/ f! `/ D$ s& }% A9 W4 N
        }
# B! C$ u* m: J& m, j7 h$ }  {' L        if(0 == length)+ e! w9 I7 }8 @
        {% @: s* g! q$ A5 E4 @+ _! \
            // 禁用发送中断- \5 M0 m# v& y7 i  B9 m  r4 G
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
4 F% {, _+ W% t' x) [2 n5 [        }8 B' \' h5 g+ K" X( x8 J5 b
     }/ w5 k) v! V4 c2 S' Y
7 J; h7 Y$ W" w, a% i. z
    // 接收中断
; O1 V$ \$ n/ B2 W    if(UART_INTID_RX_DATA == int_id)4 r/ B  s* k' l. w
    {7 d2 ?) m! h0 S! d
        if(status_a0==0)4 P  `4 B; d$ r3 S9 j! y
        {0 R1 ], H  b9 T9 Y, ?7 X/ F6 n0 m
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 R; K1 i" n% {* m1 L7 B                if(a[0]=='#')
  m, b* c: I9 \& T# ]                {5 x% w5 N  ]0 M7 _7 f# W
                        status_a0=0x01;8 H  O/ x5 F" \9 W9 w0 ?5 i6 a
                        status_a1=0x01;
( b3 q" j+ P7 L, }                }  A' [- _" I) S$ u$ E3 b" F7 X
        }3 @/ s6 c, r; E) q; v  U- x! }9 S
        if(status_a1==0x01)6 ~) H  z8 E$ \6 M$ o
        {
; {9 t" @2 c0 _3 E5 I* ~                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% Y* j6 H3 o; I9 O                if(a[1]=='R')
  `" X6 M; g, N; l7 B, v; c                {
/ Z7 b, C2 b0 b, X- B% `+ |. \) E! P                        status_a1=0;
5 c; o$ {5 s0 X. f2 W" B6 V                        status_a2=0x01;
# _' K5 Y1 ^7 h+ L  @( y+ h$ M1 u  m                }
' k+ G" ^* M3 x1 u1 B- w        }9 n3 O- s4 p8 r
        if(status_a2==0x01)
4 j" P: w7 u8 g+ E: X$ U5 J        {
, S0 W# L& n: Z9 ^/ @. ]/ k                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
" b' g, ^; v( c% ^/ l; W0 i                if(a[2]=='A')
* {3 b, m# T4 L  D: H                {
- o3 h0 x- X) ^* S2 u                        status_a2=0;( ]" {' `  f* ~
                        status_a3=0x01;
( c3 z( c; c( P- w) Z) J' N, a0 Y# ^                }0 b& X5 a# {& F+ w% l+ j; U
        }7 X* Y/ a; E3 O# s/ J/ u
        if(status_a3==0x01)- t$ A7 O- j  u" B
        {6 z& C, I! m0 o* h# A5 j8 j! {
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);  ?/ }* O. q( e% N$ ^9 c- t0 _
                if(a[3]=='N')3 [: o& n+ w3 b5 E5 ~/ N
                {
9 I% g5 }' z+ E                        status_a3=0;7 [% _3 ]  O9 G# O' o! x- G
                        status_a4=0x01;
2 J9 Y( [" R; |: i$ [& k' D# `                }* c4 I/ E# b- g, X  S$ d7 O3 L! K
        }6 k7 [$ y* c8 {
        if(status_a4==0x01)
1 m$ B7 R8 ?- y        {
, i/ a9 O: b! r( V$ s) d                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);5 g  i5 F+ F# i4 @' P3 O
                if(a[4]=='G'), `+ d9 B) H; o8 s9 k8 h4 t
                {9 N- |3 U+ `1 F- k6 A+ P' d. h5 J
                        status_a4=0;" p7 K" L0 v) M* x2 g; m" Y7 E
                        status_a5=0x01;$ g" a# ]! j# R% b4 \) `0 j4 N. \
                }
6 L. U4 H1 D2 Q, D        }1 R" ]& e2 \3 }5 o2 Y
        if(status_a5==0x01), ^0 E, T. {4 H1 r% O+ I+ n0 K
        {
9 ]& H- u7 `; l( ?) q                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 j8 e* c% o7 j7 h
                if(a[5]=='E')
( R+ p) @7 z7 [. ]" o                {
" E9 }0 s# p5 e6 x8 \                        status_a5=0;) o( s6 R. H7 k: f/ u4 n7 b" ]
                        status_OK=0x01;
4 Z# B+ p0 [7 n# o" a! d, ~                }. L/ T3 D. u5 a; l: x- u! d
        }
- D& J7 u* R. q9 J, I            if(status_OK==0x01)1 C- R6 g" Q/ }; U) s; M; A
        {
3 G- Y$ W- r1 R( d8 y" |( X. {9 Y                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
$ q, W9 j7 P; K8 A3 L+ ~) Q                        lengthrx++;
4 m% T3 b2 [% x' {# B/ S                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)) j6 }6 _* S  @5 Z  o3 Y4 D3 B
                        {! |. {5 G7 O0 H+ H% Y
                                RecState=0x01;
5 s5 P' @( |; m3 F3 b" J9 T                        }% f2 [7 _: R2 C& }3 u5 [. L
         }* p! C: {: c6 \) \; {) a6 p; u
3 i* M* v( e" B' d  P
     }
, w/ q* v3 p! ^! i- b8 |
+ p& N7 e5 w) H5 A6 i1 D  @    // 接收错误
0 c6 W& L5 Q/ t9 S/ q% O6 |. r    if(UART_INTID_RX_LINE_STAT == int_id)
) _/ \7 d  q& i" |; m7 m% @    {/ \7 Y; @, e1 e; N
        while(UARTRxErrorGet(SOC_UART_0_REGS)); o& j# Y, [1 ^0 H& X
        {" ^- r' q. s1 D4 W3 L8 P' q
            // 从 RBR 读一个字节
- G# D! l5 I/ ?% W2 z! r( r3 z            UARTCharGetNonBlocking(SOC_UART_0_REGS);1 t' I- {6 x2 d* x0 T) L, U4 t! }
        }( g& c% t9 ?0 i; n
    }9 b/ e, p) A) Y& U1 w2 ]. `

; S# L5 n& F! q! o    return;- @% v+ ]0 J$ o+ D9 u
}! Y. K4 Z- c; ~- G# p5 R

2 P; g' q: C* \/ H

! p! X: ]& W: j0 r- S& c! b
. W8 d7 E2 f* c9 }! e- E( `7 k! b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,8 w7 L2 Q- ^, r) @7 L6 I
# Y3 h+ e6 {  v
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。2 [0 o- r1 O) d' G. ^% o

4 O1 I* [  e3 O) w- f$ Y要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13* ^% }6 k" y9 }; ]3 L
hi,
/ d- k2 Z5 i0 e/ f  Q, e) o
9 ^$ a2 K" `$ F- |UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

8 W; u) J( r% d4 I) L6 Ivoid main (void)
9 R( r6 N* g0 b: ?{" I* Z# b0 i- @# _3 p9 Z3 v+ q
        int i,j;
; S0 k& T6 K1 {) l3 B8 x2 T    char *str_buf;; u- x) ^; Y7 |- C  f. g$ }5 L
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];2 O# k, ^+ t; k& X# b
        double est_L_b_=0;* ?4 e  q8 Y5 I
        double est_lambda_b_=0;, d5 N. k2 w9 v6 ~1 \
        double eul_[3][1]={0};
" z4 H5 T& U, u+ U/ m* s        double est_v_eb_e_[3][1]={0};% a- M8 c+ r4 N9 P- \: t
        double est_C_b_e_[3][3]={0};0 i+ D- \/ X2 g  S% `- [# q. t2 n
    char *qm;. `5 E; Q2 t& H" `$ `
    char rec[70];" ]+ {# G8 \1 ^" R. [2 I0 g
        double L_b=0;" U0 A# m0 B4 N' J) ~
        double lambda_b=0;: a  F2 [. t, v, v
        double h_b=0;) D( |  D  u% n9 g1 W( C4 E( P
        double rate;
- |# R0 D% _$ v. w9 j3 Y, c7 |' t7 P& z$ E
. f% C  @2 s6 I" b
        // 外设使能配置
' ?) u! G6 L" z5 J        PSCInit();
6 O" n8 Z3 K7 Z; g: {/ ~
% a$ R9 e5 @* R! t. k# U        AppInit();
4 U4 j1 ?% H, }
* A' M4 S8 Y0 q- r- o        // UART 初始化
; q% l: _9 t4 y5 U  C        UARTInit();
, @& e/ w0 w* U4 T
' f8 q+ L+ A7 H/ t& x, o        // UART 中断初始化
8 S; _+ J- s' D3 e$ w3 y3 {        UARTInterruptInit();
' e* x$ E" c8 U0 T# J( ~4 w! j8 W  V1 t. o1 W
    evtRcvd = 0;
9 h% u% B% ^' {4 M) y5 k7 n    RecState=0;9 D5 I0 e. F" _  _7 P, p# A
    /* Initialize */" u, Z% {$ [$ \4 \. D
( A/ c" w2 ]/ B4 i/ C. u
    printf("DSP subsystem ready\n");
9 y7 {. J% Q! y6 p
% x9 m0 f+ F/ x    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));" z! J3 e7 ]. J' b

$ |, E1 R1 h/ J  P5 Q+ Tfor(;;)
6 E0 G0 N" r2 u' Z3 ^8 p- o{+ W* Z0 ^! N! R
        if((RecState&0x01)!=0)& N. _& G( w  d: L# s0 m9 c
        {1 b9 r. `7 @. t/ T+ A1 E) Z
                printf("liuzhenxing\n");: p$ T) }5 u+ c3 Z! \( i
        }
/ @4 x5 B* W( w; Z  X, Y        else
4 a7 L( u$ F, |: A. Y        {
" @, M/ L! q5 ~, {% J       wait_event();
% F/ n8 o; j5 g7 @2 _* {- t/ B
- y( p" t7 H5 [3 X2 L9 W           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
. e- ^" Q! j$ l2 Q& k. S) s% F  I, N% N7 D# P4 X: x9 I
           for(i=0;i<60;i++)1 i$ r8 E) E, O  h' B( ~) w4 n! R3 m
           {
  B0 D; K- i$ O7 ]                    rec=*qm;" g3 p. \& }' s# c( a1 k
                    qm++;' J1 ]$ }" b5 E3 B
           }  L; @8 C* G# n* Q# j

. P' f% A2 c( m) C7 ^9 b$ d& D( o           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);% n% e  B0 ?+ n3 n. r$ X
8 V4 t& U6 G1 ^+ Z. y! u
           L_b=L_b_receive_double;* L$ P1 B3 o3 s5 }* g7 d
           lambda_b=lambda_b_receive_double;1 T; l0 G* I, S: W3 J
           h_b=h_b_receive_double;
2 N1 T7 ^9 z7 ?( @' |+ [+ Y           for(i=0;i<3;i++)
6 K7 Y; {3 F% z: M2 @. K                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
& }4 b& u8 i. |           for(i=0;i<3;i++)0 ~3 D' v; X* |
                    for(j=0;j<3;j++)7 \4 V5 g  m2 J) ?# ~
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];) \- X$ M% M$ n1 x7 x! M
- {# E- B3 T) Z5 S) E$ j& F
                printf("L=%lf\n",L_b);: x- j; v2 \% E$ }' h
                printf("lambda=%lf\n",lambda_b);7 H  R( M# ^/ ?  h) h
                printf("h=%lf\n",h_b);2 [7 f9 [4 X2 r6 z

% ]7 t# A7 T' S) s' U2 {6 T                for (i=0;i<3;i++)
5 x& D% X" _% d- H" I0 b7 {                        printf("%lf\n",est_v_eb_e_[0]);
( n3 F. y( c2 k& z                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]);! n1 ~/ u0 n: R1 G5 ?8 P) u; f
                printf("rate=%lf\n",rate);
5 \. B  A" X' c
# x! ~! g/ V7 x/ `                CTM_to_Euler(est_C_b_e_,eul_);
7 Y2 u5 ^+ M- M                for (i=0;i<3;i++)
) j0 o/ B6 }7 Y" u0 F                        printf("%lf\n",eul_[0]);2 U- s( [6 J9 G; e9 O
                printf("end************************\n\n\n");/ I3 g  o7 K, D& M7 h
" V( q% ^$ V; r2 l: ]8 D
                /**********************************************************************/
* z5 d: Y0 p$ ]* P: f) J5 Y. @  M/ O) J7 C% a& L+ Y& n, \
            char flag[4];8 J. M: k% G7 j+ O; _" ~: Z

& s* M% y: f3 f. W" i            flag[3]=0x00;# o# J8 G" R2 O' ~
            flag[2]=0x00;
( @! S6 i! B7 u" _" T6 |, h' r' a            flag[1]=0x00;2 b, [# ~$ M2 A' g" F2 h2 B, z
            flag[0]=0x01;; c! F- i8 s  `  w3 X% m
0 x, {. J$ S9 D" h  B5 K1 a! i
    /* Allocate I/O buffer and init with string */
7 |5 L. C8 @$ l# e& J' _  `    str_buf = (char *) malloc(80);
& z( X1 G* K6 u    str_buf =flag;. r1 R: R0 |5 D2 V/ F
9 i( f& \3 ~2 W3 y& C) A1 W$ M
    /* Send buffer to remote CPU */
  L' ?5 }/ c7 _" f4 Y4 A    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));) A( P+ h' `' @0 D/ O1 E* s

  m9 U0 [' v; p9 w    printf((char *) myPayload);
/ B3 u$ P4 J: O. g/ c        }
3 q8 c$ R: }) c) {4 r7 U# J' K}8 g& x4 e8 ~/ Y9 w

' n+ |( n2 E/ K! \" N    WAIT_HERE;
( F1 L; B3 ^( h; e8 [& o. S9 S0 `; e}: f- s& [" F7 \* }1 Y
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:5 ^' G6 D" A. r  o
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。' X2 N" \4 n9 c% k6 S/ P% T
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
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
3 K$ T6 i* G4 J; P8 Msyslink 的初始化是否成功,notify 通信是否正常了?
' B$ L' y9 M5 Y/ }# a& X8 N. h
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
* D* }- b4 @1 n& @6 U( Z, Msyslink 的初始化是否成功,notify 通信是否正常了?
+ a/ G. Z7 R' q
我用的是裸机开发的双核通信,用的是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
3 u1 d  h$ G9 n  C/ b$ Y+ f我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

# e, F5 ?) R" ~. O5 V4 F建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 14:06 , Processed in 0.048617 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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