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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
) q2 u5 {& p4 x& c我是在DSP初始化这不太明白。
8 P3 ~- I8 P+ K7 M$ }) K- h初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。( u$ b+ C# ?0 L4 N6 ~

  y8 T! ]' e+ G2 _7 _0 s
3 ?3 o8 F/ \5 x4 n首先        PSCInit();//UART0使能% k7 C- d) {& }- G: v) M+ t
void PSCInit(void)- ?/ l) p0 o* ~6 g! B$ ]
{
7 X3 b! D- g  N3 H! Y4 Q; P, A% B; |        // 对相应外设模块的使能也可以在 BootLoader 中完成5 `2 f) |8 x# d5 \5 G  U4 [
    // 使能 UART0 模块
/ N7 q) X# _7 P    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
( _9 ?3 V5 z7 ]2 x0 @}
8 m/ y: B5 ]# ^6 i# O% P0 J+ g; D

  n( _, W. }4 l: z: Q$ `# J0 @+ u5 \8 C
然后是 双核通信的初始化           AppInit();
5 w1 f6 `% L* n; l: H! @void AppInit(void)
5 x# O+ g! `  }/ s4 s{7 h, j- R5 M" A, y
    /* Structure to initialize IPC (see Ipc.h for definitions) */; K/ M  c% N$ a, ?0 d8 n
    struct IPC_cfg ipcCfg = {
. |* }5 W2 \! P" B+ p+ w            IPC_DSP0,             /* local processor Id */
! Z2 G1 H5 V1 o1 k' x! |            IPC_ARM_HOST,         /* remote processor Id */! l  k" o1 @8 G5 o! r4 }5 V
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
5 i* M. p7 P, M0 G4 y' Q4 I8 ]            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */- l( ~/ m) K7 A5 Q2 B
            NUM_MAX_EVENT,        /* maximum number of events to be created */
4 Z2 a% e2 D; q/ i2 r0 z            &ipcPvMemDsp,         /* local side private IPC memory */6 J1 j/ P9 d# f% W! |0 |
            &ipcPvMemArm          /* remote side private IPC memory */
- J- a, l! f& X2 V/ ?    };
  r( z4 e$ g9 h$ M    IntDSPINTCInit();
8 O# r8 ]. {0 h/ m' _- ]+ I/ |    IPC_init(&ipcCfg);% A8 k5 e+ b3 B' S# H; k
    IPC_intRegister(C674X_MASK_INT5);
2 a( X. E' t! ~& k1 ^# M    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));& j5 F, W  q$ R. _  R
+ B7 d% e2 }' a( V: Q6 D9 s
    /*  Enabling interrupts for DSP C674x CPU */0 g, b: ~/ `" \. e
    IntGlobalEnable();        /* Enable C674x global interrupt */' n$ W( M. E9 L! L6 t
    iAssert (Notify_start()); /* This will enable IPC interrupt */1 e% U: l; T, b! s
}8 p' \% @# [' C; [, h

! v1 P2 o4 u; u5 B. }) F2 u然后是  2 }1 `7 d2 H5 ?) z$ D
            // UART 初始化
0 Q/ M9 q1 M% z: f! c) S$ G            UARTInit();! [, _+ K; f8 [1 v2 O4 H$ Q' V
0 a- t# h+ s+ K+ Y
            // UART 中断初始化
  a: V) y- Q0 i, e! @6 r            UARTInterruptInit();
1 z; m* S: J6 v6 Q
6 R/ }0 Z! |  T% o8 i4 x

) m# |* J5 f0 W6 \void UARTInit(void)( H# W7 H4 F8 I7 s3 o4 Q
{7 o9 R) D# J; l0 J$ C
        // 配置 UART0 参数7 L4 K8 }0 R6 c% T/ s0 _; Q
        // 波特率 115200 数据位 8 停止位 1 无校验位- b) ?! H* Q7 Y. U9 W: j3 g
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,& P6 L, e3 W+ J' U  S2 r3 M+ F
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
: t6 A& v2 U4 l: C        // 使能 UART0! }/ T  e* I" m% V
        UARTEnable(SOC_UART_0_REGS);
  k: }, a" Y  z- n( S
# A8 q+ d8 i7 L* l5 P8 g/ @5 L    // 使能接收 / 发送 FIFO) c+ h3 g% {$ p2 w
//    UARTFIFOEnable(SOC_UART_0_REGS);
$ U1 G& ^1 z# k# k+ i. ?* N
! O" @  |/ k# n1 N9 z        UARTFIFODisable(SOC_UART_0_REGS);+ d. M. I& W  }: o1 l7 }& K6 @
: r  X2 V0 _4 P) U
    // 设置 FIFO 级别     接收FIFO的级别
) \; [+ D+ h& v9 _//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);5 g2 f5 L3 {- i3 s, z( Q
}- k5 r4 t7 A3 ]$ q& ~& Q

; F" z6 `5 r, {8 m, l" F6 }/ s" m' U3 [% f
void UARTInterruptInit(void)- m6 k! M2 o3 L1 C
{
1 `  M7 v9 V9 d" G        IntRegister(C674X_MASK_INT4, UARTIsr);! c0 D9 z) {% q0 Y2 e
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
! _- |% C( Y. H        IntEnable(C674X_MASK_INT4);8 T" g# _' }8 k$ A" b: A3 ~

3 a8 I4 K- p* E8 u/ Y- ~7 i        // 使能中断( A$ Y. Q! F% W
        unsigned int intFlags = 0;- v; p- K( Y. c1 q3 C
    intFlags |= (UART_INT_LINE_STAT  |  \+ J' K* ?  n3 I& ?' c1 J9 m1 e
                 UART_INT_TX_EMPTY |    \
. M  G  g: t  ^& g1 v+ [- v                 UART_INT_RXDATA_CTI);
+ U& y1 a6 Q7 D. U    UARTIntEnable(SOC_UART_0_REGS, intFlags);( v  N+ L- V4 c+ ], P
}
: Z0 T7 k8 v9 [6 W) o
% X" d5 W6 |* O/ S& Y2 |1 D8 X

. B4 Z, p% e# {6 Q3 gvoid UARTIsr()
% r" y  Y, V/ o. {{) C. x  ?9 Y4 z4 e0 {# F
    static unsigned int length = sizeof(txArray);
/ G. V. u: e" q& Q    static unsigned int count = 0;
1 z3 ?: v1 h7 L) M: g1 m; |. H9 m; n    unsigned int int_id = 0;
5 U, a! n8 m/ M7 m8 w
  V0 ?+ D' i! B# \+ U
4 V* ]! T/ X: |- {' m* _  u' }4 k0 q% }) T0 Z- x
    // 确定中断源
0 V1 V6 ^7 c! z" z. o7 ^$ u    int_id = UARTIntStatus(SOC_UART_0_REGS);
4 K, n$ y* z# W4 d0 J% y% |0 C% u  v& j4 z0 _  i6 E8 ~2 T
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。( ~" H8 Z, a, S$ w) ~7 E
. W6 Z& a3 D: _$ B1 \! j
6 K5 }  G& j& n/ C
    // 清除 UART2 系统中断, m/ N0 _* b$ d* p" S
    IntEventClear(SYS_INT_UART0_INT);
( k, M: }, u; \. Q! |* j0 H# V6 ?* o* F$ N/ I) [; H& m' }
    // 发送中断9 L; e. V/ i9 c6 `% g& r6 n) @: q
    if(UART_INTID_TX_EMPTY == int_id)- _' _5 ^* S. ~  ?7 s
    {
6 T; A; y% H, _( T5 D6 L9 N        if(0 < length)
' q! L; l3 G: h: K        {
* \* @! U8 S, |* d! |& ]9 L            // 写一个字节到 THR. J' c; ?) ?2 F' n2 c
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);8 V8 z) n6 ]9 ~( r0 |, ]  D6 f
            length--;
  i( B. C+ s% G+ X: x# m, N8 G* y7 @" {            count++;
4 h  n* }( @) K" E& A        }3 A: C0 U; J0 G
        if(0 == length)
8 v, v7 h6 b: V8 J" I3 {        {5 `# v* @' ^3 M4 ~% e5 D" }
            // 禁用发送中断: Z1 @4 n0 @7 @# O
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);6 @$ ?, D) _5 ?: R$ Z6 E
        }  O% ^; e7 I6 c% @3 H- [: I
     }
  U" j, ], K3 f# n# ?- c$ o5 h! @( r# `! |
    // 接收中断
2 `( Z. S+ W6 [# L# ^; F1 L    if(UART_INTID_RX_DATA == int_id)
: |6 s" r! l0 z5 o" \/ }7 J    {
" ~2 l( L& R, R        if(status_a0==0)
" n$ u0 {; L2 }! j6 Z9 a4 g4 Z        {/ z( L$ M9 C' B9 P1 [( U& o
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 G& o% Y2 U: ~8 I0 ]0 ^  R6 Q; x" U
                if(a[0]=='#')' J& o5 _+ k3 B8 b( m2 N
                {# V8 D0 Q* F+ o
                        status_a0=0x01;
( @2 i; c* T/ F                        status_a1=0x01;& @% |* s3 [4 H8 ~) w1 `
                }; {% k' ]7 c: v. u8 e) M
        }" \  Z9 ^. G8 A$ G" f7 y
        if(status_a1==0x01)
9 w! B2 t- r. G% p: V4 T        {7 S4 \; s. X' r3 q- m' R6 U) @
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 T8 z9 j! n$ Z- N1 {' L- T                if(a[1]=='R')* w/ E7 v' J0 k2 v
                {
$ E- \. M: S$ M2 ]                        status_a1=0;
: r( |! ~1 V. _+ E# ~( t1 r% F                        status_a2=0x01;; K6 Q  N1 J5 j( D
                }
, c6 i( ?: m4 h) J4 m        }  n3 V4 z! M: n# B7 [5 G
        if(status_a2==0x01)
4 @! b7 e- X' z6 U( h, c        {
& b9 i; i- q! Q, T8 E: N, N                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);2 r  z% C# p# M; ?, j
                if(a[2]=='A')" V) P; i* \* w: Y: \
                {
3 T4 \' d3 s* L2 ~' a+ a, B                        status_a2=0;
( F6 u+ _: K' i2 V4 f$ y                        status_a3=0x01;
7 o- L6 J  N4 v                }: n2 j0 z" f" Z# C  ?7 X0 J4 X
        }  g- |* Y* G5 a& y& m) e
        if(status_a3==0x01)
. O1 O% p2 [: D        {
; b9 Q; y. l% p- H* |, u. X                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
2 n% ?9 ~' |; J                if(a[3]=='N')
' A! C& q0 f0 F& l                {
1 t/ O4 q8 S! K6 l/ M! b                        status_a3=0;
0 z7 Q  c2 e+ N  y, d2 u: v: u+ P                        status_a4=0x01;
( b3 i9 z* ?: P7 E                }
% Z; \; k" Y5 K; z+ Y        }  e, \0 H& D* e6 X$ Y' A
        if(status_a4==0x01)8 ~3 K# Q/ K4 S7 u6 t- ^0 w
        {
: c0 w* i/ U( k/ h                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
1 H5 ~; q% Z2 W                if(a[4]=='G')
! G1 |: R/ m. O& ]4 B/ o' G3 i% |5 H                {5 L( g. o1 S2 Q) v, X
                        status_a4=0;5 C) T& K, h8 J6 w% D8 o
                        status_a5=0x01;, [- t, U( v" Q6 D7 E
                }
2 ~, ]% S4 |$ N% u6 P        }/ h' L; K' X# B) Y( E8 \& y! |) {
        if(status_a5==0x01)4 b' V- z% Z" ]" Y& ]% e
        {+ n9 [8 a1 ~7 n: d! h9 O( L: M, b
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, W# W' ^* P# _. A                if(a[5]=='E')$ P# W1 w3 L& f7 h9 Y* _
                {
8 A5 j6 |* j* Y: n4 j8 @  g5 I                        status_a5=0;/ |- T4 Q; l- O
                        status_OK=0x01;
) E9 I7 a+ i, f' P* G8 t                }
: s6 C7 M0 f$ h6 o/ ^        }
& l! G% m$ ]& k0 C2 i            if(status_OK==0x01)
0 y/ Q! y+ _% U0 }- z        {& _" X! j: S& c8 u9 Z6 ]& y
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 m$ ]' b9 u9 Q& }7 q
                        lengthrx++;
' f* H' O8 X: O, N: o6 Z                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)& R  L0 U) \) e# _) e
                        {# ^) b! ^, }2 M% D) b
                                RecState=0x01;
7 q) k) H$ l3 Z; z; h  R                        }
6 S# A( d' s! y; h         }( v# I4 V2 g- y7 a
  d2 a0 v  A$ {2 A2 K- {
     }
3 J4 G3 p7 y7 Y+ i4 c' H# ^; K  }0 k: M+ c* Q7 `0 W
    // 接收错误
; C% E8 t: T8 Y& k2 k+ D    if(UART_INTID_RX_LINE_STAT == int_id)
3 z4 z5 A( V2 d' @    {
% v6 `& g! N2 G, |$ `        while(UARTRxErrorGet(SOC_UART_0_REGS))
" K* [  o4 l' D6 I% o  Y        {
  n7 ?& \4 I  j& ]' m            // 从 RBR 读一个字节
. M. D+ q) F9 ^2 `9 f/ B# X            UARTCharGetNonBlocking(SOC_UART_0_REGS);) L2 Y$ ?* v9 I$ k9 m* q
        }
$ Z: I% Z9 }$ L" F    }% Y4 Z! p; D+ z6 ]$ W* ~3 |8 A/ ]
* v' B! O/ h9 ~
    return;
0 R0 h# Y/ y1 h0 p1 E$ e3 ^$ ~# k}1 ~0 u3 j1 C: g/ J! {2 b

. B1 T6 P' w" L2 a
; g1 X1 ^. Z. E& I1 ^* ?

  ^7 |4 ?( ~( I4 w3 {9 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2096

积分

创龙

Rank: 8Rank: 8

积分
2096
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,/ S+ v, F" ~$ W1 h: M) I( s" X% j
1 r' |  n9 L+ i6 ^5 x0 {6 y
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
* q' [$ x% c9 m, @" T
6 l' Y1 c( Q" `4 Z! r4 A. A要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
: [: v6 w2 K7 y0 m; p0 g# s; Ohi,0 I6 h: v0 e/ f# J4 h- y" v) v  w
+ K1 a- ]# U; P/ ^3 \/ g
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
: _) b  W7 U3 A4 }; u+ {8 h/ C
void main (void)3 @3 ^6 D0 E2 E2 @% _- z8 ]8 I! b1 b
{: g: L  `- v( I, `' j3 L/ Z- t
        int i,j;" h! A7 S5 Z/ J/ o0 h, [
    char *str_buf;
! q& B' H9 G- G* M    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];% \5 D/ y; Z: r+ d1 |
        double est_L_b_=0;
" \: H. t5 {9 C) L        double est_lambda_b_=0;! p( i" \8 O  g
        double eul_[3][1]={0};; x1 I6 T  J: o5 j1 j$ ~
        double est_v_eb_e_[3][1]={0};& A0 T+ ?/ b8 n5 ~
        double est_C_b_e_[3][3]={0};
9 m6 L; c& u) p% P- z. t$ t    char *qm;
: P. L- w  ^. i/ q. S! m    char rec[70];$ o6 y. v- Y- ^' j' i4 f) i
        double L_b=0;
) s7 ]% |1 S# |. I0 q/ }# E7 f6 P7 m5 F        double lambda_b=0;
, s" Z, L# Q0 R9 d0 P) a        double h_b=0;
: ]# Y0 [' C1 [) r  {4 V        double rate;1 o, [( m0 ]  H* K
  ~3 x; B0 t5 V; A/ B# [' K

5 Y. ?" O  h3 A1 Q% Q        // 外设使能配置& \* |7 l1 E& m6 v
        PSCInit();
1 H* m4 G! p4 J0 e8 b7 M  `5 J$ ?6 P+ `: z
        AppInit();
/ Q" B2 N) T7 r: a+ K6 l' t
6 B4 u7 V/ c  O6 [9 k! b1 f        // UART 初始化/ u: G$ I/ D( a( L& G! y) V; E
        UARTInit();) k# _: v) K; O

9 M) K$ Y# [8 j* w3 R+ [+ a        // UART 中断初始化
' x0 C8 W. S+ s2 N- u, A7 h& Z" H        UARTInterruptInit();
- t6 z  ?. S3 P& [5 s9 T
0 x" K4 u4 A1 t* O  [8 e7 w- ^    evtRcvd = 0;
, b$ F& t, L) u" _) Y    RecState=0;/ D4 G, n* V& v$ g5 K
    /* Initialize */# @' A6 g) j* O9 X2 V* |
* `( G9 g6 l* C# S8 [2 k
    printf("DSP subsystem ready\n");; p# J3 d3 l& Y  [2 ~% E5 K7 k5 a; i5 c

  F: j  p% y3 M+ H3 I  U# x    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
6 i% M9 x6 j" U/ T& H# e0 z- l1 \1 o
for(;;)' J) Z1 p3 K4 o
{
0 o. P" r7 j% E& P6 O) `; Q2 x3 D        if((RecState&0x01)!=0)# r0 X  V+ v' h( U1 d
        {
6 X9 D$ a  P+ W, T6 y1 Y5 z2 Y                printf("liuzhenxing\n");
+ B# I( ?6 n. v* Y) O        }) l, @4 X9 T6 H: i) ~6 V
        else
2 V. e; D1 D7 q# [; @* X        {
; T4 Z# Q( e4 l% ^       wait_event();$ b: y5 Z+ M4 |" V2 {2 ]" H
2 ?5 R8 V# ^& W1 ?; v# X
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针( J4 ^$ V. J" J* O  g, y3 e- r. N5 u0 d
' S0 s) r. ?9 A) w' {. z
           for(i=0;i<60;i++)% z8 l: J1 R) m0 ?  M3 f
           {( F; k% N1 @% f9 M' h0 `+ W
                    rec=*qm;/ ]: E* C$ q" p: p+ @% x& Y
                    qm++;
" L' ^0 O7 R) p0 K9 R           }
9 e0 f1 J2 F6 @( `) h
6 u( R: S% T; O  k4 P/ Y           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
1 R1 [; H1 v( {" N, z9 w
) E+ U* Y: X% L' s           L_b=L_b_receive_double;+ J8 ?) s! S2 j) r3 A
           lambda_b=lambda_b_receive_double;
: l) Y+ Y5 v: A' h) b% K           h_b=h_b_receive_double;7 ~  I* n0 T  l+ O2 W6 e8 o7 p3 Z
           for(i=0;i<3;i++)
# V2 b$ X4 w' u, K                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
$ D( _1 M7 k4 i; ]* b           for(i=0;i<3;i++)) M/ d( M+ D5 S
                    for(j=0;j<3;j++)
/ T# j1 T* z  W0 ]                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
4 J6 X3 h. }3 D- Y
/ ?5 t. a4 I3 B9 Q% k4 X2 D7 }                printf("L=%lf\n",L_b);, U2 _& ?1 j! \5 X1 o* \
                printf("lambda=%lf\n",lambda_b);
7 U* p* Y" X9 ?) i0 H8 }8 \7 n: d                printf("h=%lf\n",h_b);
+ V8 ], H9 ?+ H  w9 `$ Q3 h
* {8 d5 r" U5 n                for (i=0;i<3;i++)  }% Y7 K3 p1 H6 [" C5 F2 d
                        printf("%lf\n",est_v_eb_e_[0]);
' G6 o) Y8 m' D  e4 r                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]);
8 l2 ]1 Z7 a" [0 Z1 f! ]1 y                printf("rate=%lf\n",rate);3 \4 k! W+ P+ i
3 G2 {1 ~6 z' Q
                CTM_to_Euler(est_C_b_e_,eul_);
! c* a$ h4 `* o; _                for (i=0;i<3;i++)
) E: X( o+ I* S! m) n: ]6 e                        printf("%lf\n",eul_[0]);
8 W1 J) ]' y# \$ e# O                printf("end************************\n\n\n");
$ N3 G3 \# z9 Z$ D9 ~( n! N4 E6 Q3 w+ C" [' ~  D
                /**********************************************************************/
& J+ t" e/ c0 _0 ~* S2 @/ v0 F5 B6 [1 m' M% O! ~& J& I
            char flag[4];) e4 h6 L: p; W  ~% b+ H4 I9 W

  Z3 d% S# A0 x) V) A0 H5 i            flag[3]=0x00;
( O: e5 t. |, S4 Z9 [) `            flag[2]=0x00;
/ q/ U) L- }/ F! V, F            flag[1]=0x00;
0 K. s: e* P+ P1 x+ Q            flag[0]=0x01;
6 c7 C: o. q9 Y8 Q2 I
4 V! J  D  G9 ?- a1 c- G    /* Allocate I/O buffer and init with string */
' Z- F* n% T! h8 g, X9 ?* A7 }    str_buf = (char *) malloc(80);
5 C4 Z& C  v" H' m1 f% _    str_buf =flag;7 o: c- ^& K1 H7 k8 A0 m7 h
( u0 H. G. X, g; W) \- H
    /* Send buffer to remote CPU */
) d2 g1 [7 y3 A, `2 Y, z    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));  H3 t# U( `& s) t

1 n* v( E8 N; C    printf((char *) myPayload);: K$ ^+ `! `% e$ P
        }' S7 P+ M9 S+ e. M/ S
}' Q$ E- F' \  ?& g0 N  t" ]: p# R* Y

6 {$ A) f# s; y7 F2 m    WAIT_HERE;( D/ x' J- N7 N2 F8 h- e
}
8 a/ Q' S& u6 N" B3 n
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:, T- g5 l  m/ R' p3 U
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
% G+ Z) t0 z/ L- M$ Y" i然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2096

积分

创龙

Rank: 8Rank: 8

积分
2096
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$ G6 q6 k) b/ y3 n1 H' P8 B$ A/ [
syslink 的初始化是否成功,notify 通信是否正常了?
4 f* h1 ?' E% p4 E* `0 ^+ ?1 P9 {
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54% n- C* [/ Y' s6 v) I
syslink 的初始化是否成功,notify 通信是否正常了?
. G% j2 p3 C$ t7 J$ g! k1 `
我用的是裸机开发的双核通信,用的是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
) l( h, w1 ]2 i' t我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

: _  Z9 m! v# B! b  Y建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 03:48 , Processed in 0.052090 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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