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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
4 R: \8 N  Q: L* E- |我是在DSP初始化这不太明白。6 A8 s9 Y5 y- U+ y
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。# l/ _* I: S, t0 c0 r, w7 g4 N
; |$ z5 V& E. Z: Q- D: P6 Q
3 j1 p9 V7 [7 H9 I+ i* `2 {
首先        PSCInit();//UART0使能
' l+ X# `6 K% k3 Qvoid PSCInit(void)
* G  z3 @! R3 H( w8 u7 s2 ^{
  @6 k! Y2 |+ r        // 对相应外设模块的使能也可以在 BootLoader 中完成: G8 I4 Y  i- Z: i5 G9 Q, L
    // 使能 UART0 模块% d& [; p( T  N4 d
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
1 g& I; _5 I- J% q}
# K1 s" @: ~- {+ l0 R% |
2 E3 \  L$ @  h! v! M- m  G
' C4 I; f) z+ [  w9 s; d5 M
然后是 双核通信的初始化           AppInit();
, n, l& y6 \9 {. c; ]* u( \: svoid AppInit(void)3 g; j; R( R7 T. g! K0 p% s
{% `( v. T' C4 I
    /* Structure to initialize IPC (see Ipc.h for definitions) */
5 {3 P! P8 c8 L0 p4 }" G1 H% N    struct IPC_cfg ipcCfg = {% y. ?+ n+ s" _5 ]2 M4 x
            IPC_DSP0,             /* local processor Id */8 l2 Z' x$ V  d* ^1 L1 I
            IPC_ARM_HOST,         /* remote processor Id */
2 e9 n( r4 G; R3 s8 ^8 B            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */  U' |  L" l3 ?8 o$ g! ^$ G
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
( q+ O# {' `! ~            NUM_MAX_EVENT,        /* maximum number of events to be created */
' s1 }9 {3 V- E$ h% C  D) [" x9 }            &ipcPvMemDsp,         /* local side private IPC memory */
1 b& M0 D6 [3 B! D% F            &ipcPvMemArm          /* remote side private IPC memory */
& r1 z6 K- z8 ^: |. v6 w* u5 S    };
/ [! j* t' S9 F* m" g: H    IntDSPINTCInit();
: |! \2 S) ~# S2 b+ v    IPC_init(&ipcCfg);7 ]+ V$ D# S+ |  d5 |) P
    IPC_intRegister(C674X_MASK_INT5);
$ Q" [& H" c$ X8 ]    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
' t6 ^( q; {+ H( E& E2 C. g- s
5 Z! i: h, j- f- x; \    /*  Enabling interrupts for DSP C674x CPU */
  P( C( x$ z% n2 P6 W5 f' i    IntGlobalEnable();        /* Enable C674x global interrupt */
' k& L4 T: B& W# t! U0 K! h8 K: j3 p    iAssert (Notify_start()); /* This will enable IPC interrupt */7 r/ }2 }" @7 T3 k2 w$ U: ^% H
}
& T" ^8 m% \: _" ?- l
+ q* P# ^+ B+ Q7 M
然后是  
2 i" z& M. @4 X+ V9 I' U4 [- X            // UART 初始化. N, Y% F" o3 q- d8 S
            UARTInit();6 K& f/ v0 t/ q) [( K- |' a
8 Y$ S3 M: Y& n9 b5 }. H* u/ ^8 b4 a
            // UART 中断初始化
. U& F* I  z+ ~            UARTInterruptInit();
; \, E: `) V! b6 K$ ~

/ w) i$ s" t. k$ M9 U
5 Q% B, y8 g& ^4 u) Evoid UARTInit(void)
# w. k1 c" s' R4 s{6 L" ^/ G1 G/ V5 A- v! [+ z% Q
        // 配置 UART0 参数! M0 j9 U% S) `* H2 ^+ r) _: T
        // 波特率 115200 数据位 8 停止位 1 无校验位  u  I: ]) U" D! v5 t1 q# a7 w
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,; ~8 N/ A* G  ^  \
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);) L. Z' r( h+ c+ U8 L/ U; K2 R
        // 使能 UART0- k* V' C& @4 t2 e& k; m5 ~* V5 z9 X
        UARTEnable(SOC_UART_0_REGS);
* L8 U" N. {5 w) l/ E2 g! f% R2 n
; T' u4 o0 l9 I    // 使能接收 / 发送 FIFO6 W. w0 ]% g2 @
//    UARTFIFOEnable(SOC_UART_0_REGS);
9 E/ c" N2 j/ ]% R/ u) i- {5 A& S
. {# a2 v: w& R4 K! ?0 E  v$ ^        UARTFIFODisable(SOC_UART_0_REGS);
: k) o# a, s* a$ B, F3 l$ p7 i6 @7 B8 X8 M( g9 Y# j& a; o
    // 设置 FIFO 级别     接收FIFO的级别
, \7 v3 w4 O, R( h* `& K! [& F//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);& T' b$ `7 d. u+ l. b2 f) \
}0 f. i) J+ V, N4 o2 ?! L2 a' T: Y) |" }
1 ]' Y% H, \7 Y5 m: r0 X1 ^& A& ^$ b
, `2 V0 K) }# c2 E- R
void UARTInterruptInit(void)
7 K4 U3 U& E( x/ E+ h{
. w, B3 r$ O* S7 l5 h0 K        IntRegister(C674X_MASK_INT4, UARTIsr);7 p2 {3 K6 B, ~' X0 i, B+ L: I2 r
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
4 X. g; ]+ d7 d3 H4 D. F. I# y! B        IntEnable(C674X_MASK_INT4);
( p: g) a% f2 |% R$ @; f
  |1 ^3 X& Z* y, J        // 使能中断" Q+ L1 {* }5 b2 t% U+ T/ n; Y2 l
        unsigned int intFlags = 0;7 X1 L) E8 ]1 W3 `! w$ d
    intFlags |= (UART_INT_LINE_STAT  |  \
, }; ^5 R% H7 y- U1 E                 UART_INT_TX_EMPTY |    \* n5 j6 z/ T0 h  p( ]8 t
                 UART_INT_RXDATA_CTI);
) ]# u2 u& p( |6 r( q    UARTIntEnable(SOC_UART_0_REGS, intFlags);
  w+ c/ a1 |- [& t7 j# J% b' I5 o}; E1 _, }2 G6 z7 v! |/ d

( g3 g  J" e, N& p4 I, L! q! v  I
/ P& C/ \8 T3 h, H+ k8 d1 t: \void UARTIsr()
$ J- x- ^* p, K" L, I* p* }{
# {6 ^7 h' ~- Q# x    static unsigned int length = sizeof(txArray);
- m/ O( |* Z* _  m- Z& Z  `' U0 H+ Y    static unsigned int count = 0;
4 k' n7 ]  h3 c    unsigned int int_id = 0;5 D; {! V7 j7 c

+ ~( W0 q- h7 t4 X
, q) P* H/ s5 ?0 g* @; N& H1 N3 O+ v7 E9 z' o& ^8 x
    // 确定中断源8 h  X8 }. n8 }/ N" r2 ]4 ]0 |
    int_id = UARTIntStatus(SOC_UART_0_REGS);0 Y2 c# k5 a6 H& [8 }. @
& m) Y4 m# |$ L( z9 F
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。5 t1 \$ z% Q* G

3 e) \9 h2 q6 Q; {4 a: S0 C/ \% k  g) y  D
    // 清除 UART2 系统中断
6 {" f6 E& T- x3 j    IntEventClear(SYS_INT_UART0_INT);
  n  [% u# v6 N
& L6 F% V2 e( k3 d    // 发送中断
* B% A9 V+ P0 Z1 E. p    if(UART_INTID_TX_EMPTY == int_id)
; i4 U% h% C, }# w3 y    {
3 I/ h- \# x; o1 l! N3 k! g! ~        if(0 < length)
( Q% h1 D- n8 `+ B        {! V1 G' }0 H8 L) f, @
            // 写一个字节到 THR. O0 _5 G: U8 H" _& x
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
  P2 m  K0 m0 e* N            length--;
" _- L. t$ y( @% Q( K: S8 a            count++;
/ v  n: \0 d" m0 P. w        }
8 G  t5 @  J( j0 J        if(0 == length)3 V) q# a. ]3 p5 M3 |4 F7 V
        {! [2 L! i: T7 O, J, I. d3 j5 V
            // 禁用发送中断0 _. L/ ^9 e* ?7 U# _6 J
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
* ]( f+ I. q: S* ]6 S) e        }8 O0 w) o+ ~% R$ O
     }
9 |- J5 e8 I5 }  e/ u
2 p% N3 J1 c) z$ H2 l    // 接收中断! s5 A3 r3 U$ O' G
    if(UART_INTID_RX_DATA == int_id)# U; t4 _9 g- {& U
    {- I/ j0 |; ]1 \. J
        if(status_a0==0); h5 }, E6 `: H6 ~6 s
        {
4 u& y4 W& L7 v                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);. F* G2 R0 z$ }% k' @
                if(a[0]=='#')4 h* A: F+ U/ Z( Z7 d
                {
! _* F, [+ I. ?, P: C" q( [5 b1 _" C                        status_a0=0x01;6 M6 B' ^3 m1 z. ~
                        status_a1=0x01;$ O# U% c' d: `
                }
: u/ W! U$ W+ A; k/ q+ L/ e6 S        }( V1 Z! u+ i) v% M
        if(status_a1==0x01)6 e4 U5 ]* S9 c1 ^% \* s5 N
        {, P- s' u1 t! |8 y! S
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);( z( y" m  ~3 R% H1 [
                if(a[1]=='R')
3 Z6 N5 i9 I3 m* x4 ~                {
* G, ~; G( {7 @- y6 @! `5 j                        status_a1=0;
3 R9 o8 q$ x7 \$ r                        status_a2=0x01;' _* {" ?# b; J. _
                }
  f  k" c8 {5 `7 n+ }2 O- r8 y% L' E        }& M: M/ ^; v4 V. |* ^' A- g6 L% s
        if(status_a2==0x01)5 Y; Q9 [3 h5 o& E# h% b% Q# L1 h
        {
8 |$ [0 K5 F' k5 ]                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
: s; U% {2 V% _) c  r, B                if(a[2]=='A')
4 ?7 z1 |0 g7 Y: W9 n                {6 Z- }! Q4 n, T+ m- j' N1 f7 b
                        status_a2=0;
  X" E$ f' I3 z7 Y- F, {                        status_a3=0x01;4 L, \6 n! {4 e$ m0 f& k
                }
' O( o# N2 U; Y! H* P, ?        }2 V1 c2 A9 ]) b' A) M9 Y5 Z
        if(status_a3==0x01)  ~* o7 c) Q8 L/ w# H3 h
        {% R$ m: \' y# H* N
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 |2 R- D* t( `, d0 l& d5 G+ K
                if(a[3]=='N')
! F" Z- ~; w  U% \5 m1 l- l$ L                {
7 r- S, \$ B' m! [6 i; T                        status_a3=0;2 L& C0 Y+ D% u( q9 F
                        status_a4=0x01;
% S: x( S& X. S: W                }$ e3 i8 ?1 P8 n. y
        }
+ y: h, z  S, }6 z5 x8 H4 Y& D, N! T        if(status_a4==0x01)
( c$ l, A4 W, d        {4 M9 `  H* x* ^' R* f1 i
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% d: F; H2 f  v1 B8 M+ N  G" s                if(a[4]=='G')# V# ~) Z1 f1 h& N- w2 F5 }
                {5 ^. _/ c0 ^/ ]& M$ W4 P
                        status_a4=0;
. z; d- k. U/ Z' c                        status_a5=0x01;
- c' U" L. p  h. N+ M                }
2 P+ q2 o# g2 f7 L: O3 d        }
: @/ }* L! ~7 K; T. F        if(status_a5==0x01)* w% _8 c% _7 U& H
        {
7 i0 b  t" D2 ]0 ]* F) ]6 c7 }/ O                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% e+ ?9 G9 h/ B) `$ z$ A! b2 w+ D7 n                if(a[5]=='E'); G% i; s9 a5 P" B! y
                {0 a( Z) ]2 X7 s# B/ Z% V
                        status_a5=0;
3 j' E6 q2 m* C3 E4 g* u                        status_OK=0x01;
2 G) J; e5 L) J  U; I( Y& s2 Z9 m                }
8 R$ R8 I+ O5 Y* f* \+ _% g        }
- t; [+ d  ?& l5 I/ i! S- a            if(status_OK==0x01)
9 J& q, Q$ C! g; W5 @2 |% ~        {
8 u7 l# M* f6 G                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
$ o$ K; d. s1 n7 C- Q. g6 s                        lengthrx++;: B  i, T) P; k" v1 s) |& p8 c
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)  u6 b- ~9 f  u  J1 X
                        {0 R1 l6 _' v7 [" M1 R* N
                                RecState=0x01;4 H4 c) ^' I' C' _; _; O- E
                        }4 f; m5 t# ?- N# h
         }
. @& A! k7 B0 l* t$ C1 ~4 t5 n( Q+ x# o6 P
     }
* r3 l2 a4 N* o9 Z  T; q- ?
9 j7 K  G& C! b1 {: U    // 接收错误( e3 [4 S9 Q) y0 I8 O& R
    if(UART_INTID_RX_LINE_STAT == int_id)
& x9 B* x+ f  Y    {
+ a# Z. u2 Y4 F2 `        while(UARTRxErrorGet(SOC_UART_0_REGS))
5 o+ K/ f( H( J3 P- k' y4 p9 _        {% ]. z" R9 q1 j. W
            // 从 RBR 读一个字节
2 L: Y! l! S! O7 \6 [3 j/ q            UARTCharGetNonBlocking(SOC_UART_0_REGS);
" j, u* o* w' i) w5 e5 ]4 V        }* M6 n3 M* E4 l9 _7 F
    }9 v. V: w: [, X7 \# X
8 @5 q/ I, _  O6 ?1 k6 N
    return;* x3 S. d0 L3 g- \+ t
}/ j3 L! l& B# ]; P
0 Z7 Z& c( ^( V2 s0 K' j' e8 @0 E
2 `( T9 N2 b$ a7 y

. S9 l  u0 u  p1 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,( K: h; K* J) I) M3 b

1 W1 x, G; T0 t* H2 u$ S# s1 d5 RUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
, z) ], h; @, C& U+ ?/ O) j
/ G% m, t6 W/ _2 V' O4 A要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
# ~* ]' |  v2 K# I; X* P" f7 Khi,4 ?- R4 _9 x5 P

$ @% e% k$ E" W; t0 c/ aUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

, W3 J7 Y5 i- K7 k# ~; x9 jvoid main (void)
. C9 Z9 n& `" X6 M' Z3 M6 r2 |{8 Q" d8 [* I% w) R" _0 o0 U
        int i,j;9 z& a$ L1 o$ I+ {; {& L
    char *str_buf;/ t; T' L. Y. r! Q2 {
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];; }2 s" x9 G3 I1 Q2 v
        double est_L_b_=0;( q( z3 ^+ _4 ~+ I
        double est_lambda_b_=0;
* F; j5 o3 _8 I        double eul_[3][1]={0};) P1 H. G6 r' s5 S9 P; n8 b# ~* X
        double est_v_eb_e_[3][1]={0};: m% C* F+ A+ }
        double est_C_b_e_[3][3]={0};
7 [9 ^0 c4 l6 e* _! O    char *qm;
, ]( J3 K# ?% D. u. I* {/ N    char rec[70];
7 U; v1 K* _  x8 z1 ~, g        double L_b=0;
2 W, Q2 W* I2 u' [+ D        double lambda_b=0;. O0 S9 E* N! S1 A/ i. V/ o$ O
        double h_b=0;( q- a- I: c7 ?+ ?
        double rate;
% M9 s3 T! |) K* g9 F0 A
) Z! }5 S3 n: b; a
, K  K+ G, g( C0 v" Z7 g- N0 O; O4 z        // 外设使能配置
9 x/ u- z. v5 W" g1 D5 M) _        PSCInit();
; {# _% A# W: E2 N7 o: U2 i
. D4 n4 \2 M6 j" o$ Z        AppInit();
. J+ g. R6 |+ Q3 E1 h- m
3 z8 D: F: p; r1 Y2 h; j  Q        // UART 初始化
) [$ T/ f) g* ?        UARTInit();& u0 Q9 Q/ Y, Z( t
2 V' Z% [6 ~. Z% m. ]
        // UART 中断初始化
: `# W* O# o; T        UARTInterruptInit();
# j3 i* s" d7 }1 J4 G* ]# k( F/ S$ @3 u  c" c. v& p0 v
    evtRcvd = 0;+ c! K$ T) r0 a, _
    RecState=0;
! p, p, i& P' t7 S6 z* V    /* Initialize *// j, [) q' `5 u4 ?5 R6 P+ {" @+ M# H
. w0 ?- \+ T, W( a3 \1 F
    printf("DSP subsystem ready\n");3 m3 n) c; K1 r, b" S9 r
: Y  a3 s; n' @) k- J( n9 J
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));, G4 f. t* m5 `+ P4 E

0 D8 R; U6 Z; N- bfor(;;)1 N' [7 n! ~' o4 C- D5 f1 z: x
{
! E! R; \" G/ K1 g+ ^. c8 q        if((RecState&0x01)!=0)
% ]* \$ q" u1 ^& @6 Y        {
# F+ V1 b4 i. n2 g                printf("liuzhenxing\n");
+ z+ Q' @8 Z' D  B9 U        }" G* U; J& u" k
        else6 Y' J! T$ V6 F
        {  A( D0 ]1 `/ g  p7 {
       wait_event();+ \9 z' u  m) \; e
0 w  A6 i  c: V  ~4 k9 H
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针: F0 c; V$ d, }/ u) P
  [3 I0 d; X; N% N! N+ o/ B
           for(i=0;i<60;i++)
" H( b. G1 m( `# Y+ K+ ^. b( C0 H8 o           {6 l0 a0 J  Q$ n7 \" s  F
                    rec=*qm;
" Z. b( I; D, x2 l3 y                    qm++;" z% o3 X/ \& |5 P" j
           }
% m9 a5 y) s& Q4 n9 @. ?3 {* `/ {& _5 a( p
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);/ Q4 \" o5 E- _4 w# v! X8 D7 ^, w

: J" B( Y* S* x" S           L_b=L_b_receive_double;$ f$ U6 l! s( [4 N
           lambda_b=lambda_b_receive_double;' l" U& z$ n$ p$ q
           h_b=h_b_receive_double;  h* _. _% i7 r! q  T
           for(i=0;i<3;i++)
; y- x* {/ L9 a$ m% W; L                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];* W5 H3 K" J, Y5 g5 U5 r* t. t
           for(i=0;i<3;i++)1 L1 H. Y+ t" J
                    for(j=0;j<3;j++)% |! }3 z% W6 t5 M) g  q' v/ y$ K7 e
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
1 V& b* }* S9 A' G! i/ b0 A1 N" Y( a9 W6 n7 X" k$ E9 O6 Y/ j
                printf("L=%lf\n",L_b);
1 D" e- r8 y* b: J, F& [& a                printf("lambda=%lf\n",lambda_b);4 c# o; Y0 P, @4 p# G
                printf("h=%lf\n",h_b);
6 M/ O0 i6 A& }+ X4 }  @8 _  v: f- j0 s: d! I7 c9 J: ?, @
                for (i=0;i<3;i++)5 V- n5 ?* S# f, {4 M5 c
                        printf("%lf\n",est_v_eb_e_[0]);
$ @1 ^% A4 T% i2 Q                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]);1 K4 {/ U, V  m0 w' u
                printf("rate=%lf\n",rate);
: T2 x$ Y) o+ i9 n2 x
+ ^) ~" S) }2 v/ M2 T% y2 ^7 @% m) i                CTM_to_Euler(est_C_b_e_,eul_);$ f+ ^8 D; l* C1 k2 D! g
                for (i=0;i<3;i++)
+ k4 u% {- ~" i% }! H0 P" m  F, O                        printf("%lf\n",eul_[0]);6 B; R9 ]& B& ]& H& ^! t' v1 _
                printf("end************************\n\n\n");
5 O: ~; o& Y; m8 A7 N2 a
# r/ d: R! ~) M6 w/ |4 ~- o                /**********************************************************************/
, f/ x' x" m* l" B& ~8 u7 J, D) P6 {* F# b, L
            char flag[4];
! B0 C% N2 P' C( Z0 M  b9 w5 |4 b* j
3 A0 D+ A! w' }/ W9 M9 u- F- C0 I            flag[3]=0x00;6 o- @" X0 \, d8 B+ I% F) p' B
            flag[2]=0x00;5 `/ v4 `0 w/ c  U: Q/ J" d3 N2 m3 O
            flag[1]=0x00;
& V: [; [, a2 f+ b  t' V            flag[0]=0x01;
% S3 K! Y% t0 ]: z- }
4 f3 q+ ~7 J8 J$ n* u7 x8 w& u    /* Allocate I/O buffer and init with string */
. ?0 l/ f3 {) p/ i3 [" T, q8 e    str_buf = (char *) malloc(80);& T/ }! ^- l8 a% [% n: n0 ?
    str_buf =flag;
2 c9 i+ o( d% g) h# X
7 h* R" c* f$ \& p1 X3 A    /* Send buffer to remote CPU */* x& S4 I; X! Q7 r  W
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));8 O( H8 u/ u  T% Z; c& C7 O4 w

+ V- j+ Z/ U2 T% B' t0 R; X    printf((char *) myPayload);5 `3 |9 Z9 I% d
        }
3 C9 d! z& O  A/ i1 Z4 r}
- N% }. r2 R: ?8 I# l; R1 u9 s" J$ H) D( y
    WAIT_HERE;( C, b8 h6 z* ~+ R
}
0 i6 h0 d- G1 W( Y" T; v
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
* S2 v2 z- a7 s6 |我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。+ E- z0 f- [, ]) x: x
然后我把双核通信的初始化屏蔽掉,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:548 \( R# m1 E5 y  J
syslink 的初始化是否成功,notify 通信是否正常了?
' d1 d* I' G, T4 \9 I
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54. s5 \+ T; I9 \
syslink 的初始化是否成功,notify 通信是否正常了?

6 r% [! j3 C5 i) i/ K( z) _3 v) a我用的是裸机开发的双核通信,用的是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 H5 N/ c( ]; m) `我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
8 x, X' }* E) P$ g2 r
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 20:01 , Processed in 0.049630 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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