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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。6 |6 n1 \& N0 Q1 j6 B+ I
我是在DSP初始化这不太明白。
1 n$ w- d: V: l1 W5 R7 u初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。; I1 {  E, Q0 m0 r* F8 [2 K

, ^' c9 L1 i' e1 x) l! D/ w- }! T& B7 z) S1 U& Q$ i
首先        PSCInit();//UART0使能
  d4 V# G% u+ X" x! Z5 @6 j% A: _2 Vvoid PSCInit(void)
  A3 U1 N/ w$ v: |; v* {% `{
. E: r6 ^3 H0 w* E        // 对相应外设模块的使能也可以在 BootLoader 中完成1 M' G! I. e3 S5 j% ^
    // 使能 UART0 模块
) D6 c2 m# S8 S0 I) k    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
8 g! X8 G* G" x' H! Q- _}6 Z& U/ g( k0 D4 S/ T3 W

  J7 R( A: l3 ~7 W! J6 f
! V; j  M( N3 ^; P  }4 ]然后是 双核通信的初始化           AppInit();0 e$ `" A3 [( j" d& z" U$ ~0 x
void AppInit(void): U" u+ Y; I; G8 ?+ c8 ?6 }
{
, }8 W8 |8 S& E- n; F1 p# f! H8 F    /* Structure to initialize IPC (see Ipc.h for definitions) */7 z1 Z4 `7 X$ R
    struct IPC_cfg ipcCfg = {  C3 g& r2 l. u0 ]
            IPC_DSP0,             /* local processor Id */
/ T  w) Q( D5 V- Q+ G: u            IPC_ARM_HOST,         /* remote processor Id */
8 _. L0 D/ ]: O+ t8 o            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
3 o% c" C# h6 Z5 I            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */0 ~3 ]) g. C7 r
            NUM_MAX_EVENT,        /* maximum number of events to be created *// u" H9 f5 F; o; \+ d2 {
            &ipcPvMemDsp,         /* local side private IPC memory */! {* \/ l2 H" \% ?
            &ipcPvMemArm          /* remote side private IPC memory */
  O; w/ F4 U' u3 k, z: t    };
3 w# o3 w9 O$ f7 D* S1 c    IntDSPINTCInit();
' B- F: d* b( h/ B, K, A  t    IPC_init(&ipcCfg);
3 t$ x/ w$ X5 \$ A7 u$ t    IPC_intRegister(C674X_MASK_INT5);" Z9 J& T9 R, x' P4 k; {& G
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
8 ?  L2 u# ~. W
' j3 U2 N* x! p; d+ x  B; K    /*  Enabling interrupts for DSP C674x CPU */
6 B/ P. V% d$ r6 H# C4 N7 K, s    IntGlobalEnable();        /* Enable C674x global interrupt */: X5 q$ |5 E9 I9 ]8 \: U+ G6 H
    iAssert (Notify_start()); /* This will enable IPC interrupt */
% v+ H( B; A0 ]6 P4 f9 J* O9 \}% x# R+ k4 N0 [, g6 k

2 k7 X) P4 Q2 S- L) {' e然后是  
( T' G) `5 z2 ~' A/ ^            // UART 初始化/ b: Y  E) l0 y5 O* R, A/ Q. J* U) M
            UARTInit();
( j2 q* A* O; D
  Q4 n( l; Y: k            // UART 中断初始化
" C/ }# a1 x5 w4 c            UARTInterruptInit();
! ?" ~& ]' \! t. y
* p3 R) q4 B# S: e

9 f$ {8 t/ D4 w& [2 Tvoid UARTInit(void)
; ~* Z$ V- y0 {. Z9 J7 b* K{
  z) Q6 {: ~8 e! {1 e4 k* W* d# Z  k        // 配置 UART0 参数- H  v5 S2 v5 K
        // 波特率 115200 数据位 8 停止位 1 无校验位
5 x$ @/ d# g0 p  _5 `7 _% N    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,7 F5 \! t, A3 A7 `$ m
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);" Z# S4 L+ [; o
        // 使能 UART0& ]6 s; x: O2 w& f
        UARTEnable(SOC_UART_0_REGS);
0 W8 H2 y# \9 c5 f  z- L7 C* C# k
: a+ e! g& M$ {7 Y. W) T    // 使能接收 / 发送 FIFO- ?$ C* d5 j& _0 O" Q9 H" A  e  K
//    UARTFIFOEnable(SOC_UART_0_REGS);
! O# M- Z# o3 f; m- s! N
( }# ^' b  s) p) C/ M. g        UARTFIFODisable(SOC_UART_0_REGS);& ~! K9 A3 V/ Y  D+ \
7 b  T& b' n! _& S3 p0 [
    // 设置 FIFO 级别     接收FIFO的级别$ Y- h" K. W: I) |- X+ A) P3 L
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);. q! Q" O7 v; @0 }3 D, z
}$ G, r. @, v6 u0 b
$ b* J5 r% A+ v/ ?3 b; V, f+ l7 `
0 j" t3 C6 U! @! O6 ]' \
void UARTInterruptInit(void)0 _1 _8 Y/ Y$ W+ C8 M# `
{9 u* j" _. I- ~9 g  i' J: m$ r
        IntRegister(C674X_MASK_INT4, UARTIsr);
* R! x6 B8 F2 M- ?        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
/ v+ e, c; V# o        IntEnable(C674X_MASK_INT4);' m0 V  v: B! |, d

& Q( `" p2 m$ w4 ]7 h        // 使能中断
; m3 }9 r) A) |7 {/ [        unsigned int intFlags = 0;
4 i) ?, ^5 ?! e2 z* U! @4 K# D# n    intFlags |= (UART_INT_LINE_STAT  |  \3 K$ C, ?- |) Z/ s+ v% }/ s/ T' ~
                 UART_INT_TX_EMPTY |    \
' ?/ t% k5 b  o& X                 UART_INT_RXDATA_CTI);
$ ?; [1 c" J7 p, J    UARTIntEnable(SOC_UART_0_REGS, intFlags);" M: V% M- r  }  t3 d2 R
}
2 p( I; B* V: ^* G" u* v# W% i

# g8 o6 `! A& U4 d" e5 d0 l* T( [+ |0 z
: A+ H0 _' J2 C7 Z% ]' @void UARTIsr()5 W1 O. f/ ~; G
{
. n6 s+ \/ i" q9 }4 i4 {    static unsigned int length = sizeof(txArray);, l7 I, p* W8 \1 f
    static unsigned int count = 0;
7 P/ j$ L2 k4 D2 W- }: S    unsigned int int_id = 0;  N. H" w8 K5 }4 F+ |# _
& R; O* Y  [  e2 ~$ ~% _
$ W6 {/ A- H% N5 T
6 F* r/ `" j$ B4 f, [' N
    // 确定中断源
" U4 p: |& O1 P4 z/ D    int_id = UARTIntStatus(SOC_UART_0_REGS);4 F0 f# M" [2 K5 I

' Z. M1 ?& e- M    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。5 X1 u! H: i- Z: u! N( w8 r6 F
- G/ ~5 V$ j. R; q
# ~- t( m& |5 J: x
    // 清除 UART2 系统中断5 \% u8 B7 {' ]/ ^6 d: X6 @3 ^- Q
    IntEventClear(SYS_INT_UART0_INT);
! z/ A' h' w3 A6 J9 V3 Z
5 q( z6 X$ m0 s6 m    // 发送中断
/ a! V3 M6 O8 T/ P' w    if(UART_INTID_TX_EMPTY == int_id)# c% o5 f; g9 W1 E3 n' x! e
    {
) {; Q' P6 V% [$ S        if(0 < length)
$ V$ f" T3 O( B; d; }* J# [( p        {
9 a. ]: b0 h* T0 C7 p( q1 Q            // 写一个字节到 THR
2 k' j: ]! M# g( c7 \; D9 d            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
$ q; r2 \, h( W+ t2 D% N% j            length--;
/ E$ B: U! p- A# |            count++;& P' Z) Y& W& C+ {% c6 u2 {
        }
( t7 \/ B  V: F" ^! H- B6 H6 I8 ~        if(0 == length), j1 p9 y8 M4 {+ e7 R- |
        {: {6 j1 r- P7 a- y
            // 禁用发送中断
/ t, F2 t& f" k/ F; ?- V5 l! \8 V            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);, q9 T* ^' @* V* x& W
        }! J" h1 J+ D% u0 O6 ]  g
     }; ]8 w+ i0 z! U2 @- y2 Z( B3 M
  K9 x) G# c" Q/ X- f3 H0 k
    // 接收中断' L. O; C2 K& d& N1 `0 X$ }
    if(UART_INTID_RX_DATA == int_id)
0 @6 f. d: j/ T$ q    {
; }: Z3 s+ L  [  h6 ]' D        if(status_a0==0)# H$ r7 U& s! D9 G, c" g! a
        {
9 P: }, G$ J$ n- L, I                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);) I: ^1 Z( I- ]) s* a2 c: @/ X
                if(a[0]=='#')7 N* p4 H8 G5 o) P, P" d
                {
+ H/ O, C: r) O) v                        status_a0=0x01;% L/ K0 B- f2 e7 l. g
                        status_a1=0x01;6 n* u$ N; i* V& D
                }6 }: t3 T* p5 I# x8 B
        }) t6 |' E/ J! a
        if(status_a1==0x01)
6 X8 L6 c2 D4 H+ [' _        {3 c0 K, j/ P0 x8 r
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# ]9 W0 \; Y4 \* y3 `6 d' f- f
                if(a[1]=='R'). w* \% T  K6 S* D
                {( v. Z# \/ X4 D6 O! Q" ?  d
                        status_a1=0;
% T: J5 K( q: L9 @  J) r                        status_a2=0x01;
2 q7 E/ K1 ~% ?3 y% E                }; W0 R) @4 g! ]9 \8 e! s
        }1 S1 x1 ]  ]5 F
        if(status_a2==0x01)
* s% J3 \2 l2 V$ X2 l7 O+ U% W$ j& `        {
: x9 P$ W: ?" X2 v. |# D! F( v                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
2 P3 `; [! \' T3 Q! F: l                if(a[2]=='A')1 v1 `7 T3 r0 ]) x- m) L
                {' i1 i8 D$ E3 g  [1 a+ A7 n- q
                        status_a2=0;% h& y' g" A$ ?# G  s
                        status_a3=0x01;" P# l  S$ O9 n
                }" C8 \! Q- j! C, L
        }
2 E  A! D/ H2 Q. V; J" q; _        if(status_a3==0x01)3 R6 b3 @8 E/ R  d
        {/ [) ]* ?; M2 I( O  V+ r
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
" L) B3 \) L* C7 A1 W9 x                if(a[3]=='N')% C: v4 A* _5 S& C4 R
                {
. K' j  E) u+ ^) u' Y                        status_a3=0;
9 O/ L% S, r+ y: j7 l4 d                        status_a4=0x01;4 c' n$ ?6 G5 x3 r) P
                }
0 _8 `" V" I) Y        }
2 l5 n5 J1 I9 U7 R- m" S        if(status_a4==0x01)
' U4 A* w5 a3 }6 f% P+ ~6 b: _( N( ~- Q        {
1 _! w" _/ |' B8 o$ z/ c                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);5 \& X2 Y% [. H9 ?
                if(a[4]=='G')
8 `, {3 I' W2 c" Q" ]2 Y! `                {
: H4 s8 `4 h$ @5 E$ P4 g! H                        status_a4=0;! f$ A5 V2 @- u$ ^0 m+ f0 r" W& T
                        status_a5=0x01;0 T. [0 A' [9 r& d& A) T* C
                }" `0 b, _9 k& Z0 q
        }6 l, C4 q/ }. N# E
        if(status_a5==0x01)
8 T8 X+ x5 k& Z        {) l2 H7 i* `% H
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);: ]# U9 _' R! V0 R( y9 q& p% x0 U0 _
                if(a[5]=='E'). g' O, A2 x5 o# a9 t0 G
                {
7 U( t7 J6 r, B0 B                        status_a5=0;- Q& s9 X  h" n( I
                        status_OK=0x01;
3 P; c2 n5 ^/ B; K1 A/ ^1 h" s& l                }
( E/ i$ M+ c( d. B        }6 L# }& m7 U$ U; p. i& C
            if(status_OK==0x01)
( p/ e- J* o! m  ?! @- Q        {& G# X* c' X/ u0 J6 B
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
$ ?0 O1 O; R* a4 t- A                        lengthrx++;9 O2 E* h- O( z0 Y! |
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)1 ]! s& w( j1 b" K7 C- J: e( W2 {
                        {: `& ]7 A, A1 e# b4 i$ {, q
                                RecState=0x01;
% ?( w; t3 C( c$ y                        }
+ N& V# U1 B( y& E         }
# Q2 d& Z5 f! ]4 n5 u% c8 _' i- ]. s" c% E* E3 x1 Z; [& f
     }
: z, \' ~4 o: I4 Y2 U& [1 r3 M& K# Y% ?" s7 b3 f* H5 Q
    // 接收错误' e8 v9 Y5 a4 x" ?
    if(UART_INTID_RX_LINE_STAT == int_id)
% p' K9 h# y- p8 W/ B    {
! K2 Q3 ~  E6 h" g2 X. p        while(UARTRxErrorGet(SOC_UART_0_REGS))
1 i" r$ Z2 Q  K/ u' d8 J        {
7 U3 }7 ^/ y, j            // 从 RBR 读一个字节
4 a# s5 U$ W1 L  |+ ]* n6 R, p6 @            UARTCharGetNonBlocking(SOC_UART_0_REGS);, W. D& x! W. V1 F6 f; G
        }2 @! A  E+ W3 t; y+ j0 O$ P1 k: e3 ^
    }
% n( i4 F' r$ d/ X! x! G! ~
% x0 {  B( r; ~% s$ D4 U; p# U    return;0 O  ^9 J7 Y2 z+ i% D" X& U9 U1 f0 _
}
  }  g) `, I, \0 _% L! ?: Q# f
, H' L# x" U/ C+ D; _  R- x

# a' W3 Q0 J+ u0 l9 P3 r& w) r3 m0 H! m* y3 `: {, L0 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,1 U% s  u6 M: s- |, C0 U+ Y# m
6 a- g: I* T0 H% k
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。7 \- E/ E+ E& \* a# Q

3 Z. B7 H" d: H! R! h; p要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
4 R( O% e2 D$ Y6 S! g" l# bhi," C4 ~; q# b2 v  w

: }8 U& `# O9 q, M- NUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

0 R8 {' ?5 u% P: \: I+ t& `void main (void)
7 |. X: g0 d# [+ w( C: W8 H) S' c{
: P: m+ Q3 R" d+ [  E& e        int i,j;
# w8 ~8 Z: y  F, q. y. [5 w    char *str_buf;
# K- |* Q8 D$ X' z/ c1 z8 a7 N  F) f    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];: C5 r9 Y5 m: V# t" m
        double est_L_b_=0;
- ~9 l) Z$ o! T8 m        double est_lambda_b_=0;7 a: G/ ~8 O1 M8 H% d7 I
        double eul_[3][1]={0};6 G. w' l% {" C
        double est_v_eb_e_[3][1]={0};) t$ T% e3 X+ t! w
        double est_C_b_e_[3][3]={0};
" \: U# r' f- U2 W. K7 D" n0 G6 F    char *qm;, B- \  U/ w/ W
    char rec[70];
7 g; F6 U8 N0 X        double L_b=0;
/ }$ u2 y& t: U' k        double lambda_b=0;. b# R- Y" D+ s* v7 L  l! k
        double h_b=0;* r; ?( C& }. j- {* B: E0 `; \
        double rate;
1 ^/ d# x) W. j5 l' k4 z% b  h# {1 y. o- m1 R
' l3 _+ V* e) L3 `# I4 t& c
        // 外设使能配置, l- A5 W7 `3 j! y" a# [5 M% C( y
        PSCInit();
) T' P' u  o: Y* l  a9 i$ T& Z% u; l/ A
        AppInit();0 V) D$ _& v8 e

( ~) A- E, H* R        // UART 初始化
$ L) |% C% g5 h5 \9 k/ v        UARTInit();( H, y* m" h$ a4 }" m# m

2 P& J7 N4 Y# D        // UART 中断初始化( G, |* R5 f- d! _) y4 w
        UARTInterruptInit();+ B( {/ H: _3 }, d# }

9 K# z% p( `& M9 v5 C' b! v    evtRcvd = 0;
6 T0 j  ~) p/ L  L* \1 K/ |% n    RecState=0;
2 d9 V3 b: r+ ^    /* Initialize */) i4 f+ T- }( [2 f! Q* A, C( @
: Z. M8 G$ p* L" k: N# @
    printf("DSP subsystem ready\n");# H# v# t# Z0 l% v9 i

0 o, W- k" }; t- K    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));# j' z% E& F& z; x

2 o8 W& d! s: K, jfor(;;)
) e# b- e; u( c4 L/ O7 |{7 h$ s* E. O6 j9 S3 i# T
        if((RecState&0x01)!=0)
+ o( R; m: h$ x+ \& K% k        {
& t/ E) B2 b" }& |- k                printf("liuzhenxing\n");1 T% a  S. w( P7 F
        }
8 _+ r# A; K6 o/ e. \- {        else- E8 R1 I# |" ^# U
        {  J1 U- m  o: L6 P  S6 t7 `
       wait_event();
7 A6 f9 z, W7 K  z/ M& ]
$ a) s6 }1 u" P6 e$ ?           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针. c! ~( }4 S  z. M1 E9 C

- ?+ \6 }9 l  r+ C# a% n           for(i=0;i<60;i++)
, M9 W2 D$ n& {# k* ^/ c9 X& ~           {4 @& O/ L0 [- ~4 A! T0 C) `
                    rec=*qm;
) r# T/ q% _; @7 h! M4 T) ?                    qm++;5 g+ f+ L+ i- s/ _+ @( Q
           }9 {: z. A' N8 u& Q8 ?
/ E6 v( ^9 W+ M* V* Z* b
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);3 p: T+ \0 H* D# g# t2 K0 m
6 {6 c. [0 r& I
           L_b=L_b_receive_double;: Q; h; h1 I9 g# h; _& r% n; H/ q
           lambda_b=lambda_b_receive_double;
5 U% w( C: a, i           h_b=h_b_receive_double;
. A) c; D2 g6 Z           for(i=0;i<3;i++)
; [8 p/ A* R$ }2 W                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
& _& m4 |" {/ q: o4 e: D           for(i=0;i<3;i++)- a% `5 ~# F; H' B6 z9 y* M
                    for(j=0;j<3;j++)  R) K9 y/ z7 U5 D9 s, F8 ]
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
. o. N# T* @0 i; Y9 c
1 _0 p' z  x: [; D0 |- r5 |( N- @                printf("L=%lf\n",L_b);
8 p/ }7 \% F1 O; ~$ r                printf("lambda=%lf\n",lambda_b);4 H8 m2 E# q9 k: P! m: ^2 c
                printf("h=%lf\n",h_b);+ m2 c) ^* e0 X% T
, b4 H0 h0 U* P% w. m$ R
                for (i=0;i<3;i++)4 k% N# ?7 ~4 O4 J, h
                        printf("%lf\n",est_v_eb_e_[0]);9 a  z. }" \: H* G0 _
                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]);5 m7 H& R8 `4 B7 ?: T
                printf("rate=%lf\n",rate);
, B& m' s: B/ g: L$ R; Q' I, x& F1 z- r. k  I, V
                CTM_to_Euler(est_C_b_e_,eul_);
" n6 k$ F! O& b) v9 Y                for (i=0;i<3;i++)
* z5 K6 `! V  W                        printf("%lf\n",eul_[0]);9 [, n$ D, U* C7 n( a( j/ ^
                printf("end************************\n\n\n");0 @6 }( d6 l( x/ B2 s& n
: |' E2 d  Q( o' `4 ]  y
                /**********************************************************************/) O2 S% F/ C9 U/ m' @' j
; N& L2 V6 e4 g
            char flag[4];1 K) T% P7 Z( z: }" y
: K+ q& j# D! K1 r- K
            flag[3]=0x00;' `' ]9 R) a) b2 E7 C1 o
            flag[2]=0x00;6 J- O% U- I  `" X8 i1 g
            flag[1]=0x00;3 c- s0 O+ p' F* J+ |
            flag[0]=0x01;6 C' s; c: n$ q2 _1 r
; P, y8 m5 H+ m# x% d& A1 R
    /* Allocate I/O buffer and init with string */
6 V+ E) H6 G6 ~2 ?* C    str_buf = (char *) malloc(80);
1 T1 `4 _3 e4 x+ {" h    str_buf =flag;
' t' T( c6 c$ u' U: }8 j8 y# v6 y+ t0 H0 V  H
    /* Send buffer to remote CPU */# y% x" H' `' Q! t
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
0 l( G0 \7 Z" v. L9 Z8 A# k. q9 Q6 g; r& H: u4 y4 p
    printf((char *) myPayload);( U, ~( L" G2 @' f( f
        }
( q* T  d9 H( a8 d6 \. ]2 r}
/ n/ Q9 o, a) s7 A2 Q( J- F2 z9 @* ?& H1 A, ^3 f
    WAIT_HERE;" ]5 ^  I) I' g
}
! D9 K& [3 T- J6 j( K
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
; v% A0 ^) L  D: m. z$ u5 B: B" _我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
+ a1 @, E7 k+ }4 M1 q( C" Q然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
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:545 Q$ X# p3 S; |% p' q
syslink 的初始化是否成功,notify 通信是否正常了?
% q9 j) O9 ?, c& a7 b8 q0 _% K
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54: ^. M# O4 d- |# J: v2 L+ q% ~
syslink 的初始化是否成功,notify 通信是否正常了?

5 R4 b* L* E# l% k我用的是裸机开发的双核通信,用的是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
, P0 E' G" y; O9 c, Z我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

, q* A1 |/ P3 {7 O" [/ }8 S建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 11:44 , Processed in 0.053771 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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