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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。. Y: s9 s7 |; D; f* f7 V
我是在DSP初始化这不太明白。  b/ S# u  m6 J  [' m4 t! r7 [
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
( |( u, K2 d) S/ P7 {; p
* I* r& i# @' u
: ~  ^: I0 L0 i: j5 G& ]首先        PSCInit();//UART0使能2 z9 f2 O  m8 I5 s7 m6 G1 v# a- X$ |( P0 i
void PSCInit(void)
9 ?  t2 c0 [) P, [1 h9 w: R{
0 l8 z6 P2 t9 `+ _3 d        // 对相应外设模块的使能也可以在 BootLoader 中完成6 Q/ ^) p4 a: l8 z2 w1 d6 s/ a+ U
    // 使能 UART0 模块; a# h0 W0 \2 z; x, {4 X$ y
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);7 I5 a& W) c0 P! u" V5 d
}
5 R+ L+ D3 a. M+ F, M

( C/ Q7 t, y1 {3 [6 e
2 P& E6 Q" k2 k6 m5 U然后是 双核通信的初始化           AppInit();$ m0 W. N+ S3 X: H6 r
void AppInit(void)
; Z$ Q& B) |' h8 ^- C" f" r{0 F5 A: X3 x7 U5 j9 e
    /* Structure to initialize IPC (see Ipc.h for definitions) */
8 [- D$ y% O4 B- F/ n  \5 K    struct IPC_cfg ipcCfg = {# g1 @  ^! k1 G$ d$ a2 e
            IPC_DSP0,             /* local processor Id */" _9 p. m3 l$ R1 K- ?& B4 Y
            IPC_ARM_HOST,         /* remote processor Id */
5 E: j2 I1 U- x2 p6 C            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */! j; E$ t8 p& c3 w
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */% t6 a% {/ A' \* q: p  X
            NUM_MAX_EVENT,        /* maximum number of events to be created */
: q) D4 ?. n8 J% B1 _  A3 z            &ipcPvMemDsp,         /* local side private IPC memory */( c8 h7 m5 a1 f; p9 q7 G
            &ipcPvMemArm          /* remote side private IPC memory */8 K/ v$ R) ^1 F- |2 y% A8 Y
    };
8 |1 l1 b" k6 R1 Q: V1 f    IntDSPINTCInit();
* Y3 A7 r8 c, x% T5 U    IPC_init(&ipcCfg);6 K. ]( t  H1 n/ L- |
    IPC_intRegister(C674X_MASK_INT5);% t: u' B+ \4 N  v
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
* A8 L' z9 v  N- R- J* h# M! w% ]$ o- D0 _+ f2 z0 }
    /*  Enabling interrupts for DSP C674x CPU */
- h# k) Z  b/ {* J- u    IntGlobalEnable();        /* Enable C674x global interrupt */4 t+ i- S3 F4 ^7 n* ?
    iAssert (Notify_start()); /* This will enable IPC interrupt */" ~1 C+ ?7 |. B$ u1 c
}6 {6 Z5 m  S9 E# E5 t
3 G7 A% t/ l9 D
然后是  ! V' y. ~- T9 {' [' g  L0 f5 l
            // UART 初始化3 ?0 R% o- d# m9 V' @3 W  ]/ R
            UARTInit();' @& w7 X4 S6 N. B, T

3 m4 s  T3 _  O& U3 `6 y: C) E7 f( Z            // UART 中断初始化
% G5 c/ ~. u3 P1 N" |% j            UARTInterruptInit();, p3 T  l9 W; `. O5 ^4 G0 K
/ E- o  f. q* G9 h

, \! b0 k, R8 r* F3 ?+ ivoid UARTInit(void)
8 t( J. ~; I7 E7 @; {% }{
, s- D' y' r8 E0 s3 s  L        // 配置 UART0 参数
, W, R- |+ ]# o2 @5 v        // 波特率 115200 数据位 8 停止位 1 无校验位
7 ^, _! B7 ~. N    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
# r' \" n" a( w1 ]6 O0 ?                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);: m: ]3 t+ Q0 ^
        // 使能 UART00 u% Q: [0 U2 i
        UARTEnable(SOC_UART_0_REGS);1 q! F( y1 V# O5 K8 S- a8 z
; K1 a4 S3 _# B# h2 @  T1 d
    // 使能接收 / 发送 FIFO, @4 ?  n, t0 g8 _1 v! w
//    UARTFIFOEnable(SOC_UART_0_REGS);7 ]; ?2 H  }' d
2 t6 p+ R8 n4 t0 q- N
        UARTFIFODisable(SOC_UART_0_REGS);
; F4 w9 u( V5 p9 w, |% v5 x) ~' R3 r3 A5 Y
    // 设置 FIFO 级别     接收FIFO的级别7 h$ b5 Z- B- h: r" q
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
2 B9 q' n* f* w6 P. H1 ]7 g/ c' Q5 z}
$ w: F5 n2 G& y. F  e8 C3 X- p/ @) r

4 l! q6 q" Q8 _" D7 O: q, h7 R! G
4 H7 Z4 M# d3 Cvoid UARTInterruptInit(void)
2 G( `6 \2 \  G" k: k{! S6 ^% }3 W% `9 H8 T; L- ~# {
        IntRegister(C674X_MASK_INT4, UARTIsr);: S6 c# j' ]0 i8 Y, L0 o& b& ?
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
! C6 S( n$ S6 S- v. _* Q        IntEnable(C674X_MASK_INT4);( G: Q4 M" d! D+ a/ ~* `% G, {

# G6 t' Q* T( B2 x  p; n% z( I        // 使能中断- Y2 [8 q! Z2 W+ G, w( Z
        unsigned int intFlags = 0;8 `# `7 T, u: M# ]9 n# G: Y; |0 M
    intFlags |= (UART_INT_LINE_STAT  |  \
7 l6 m# j# V/ n                 UART_INT_TX_EMPTY |    \
' V3 w: C3 A$ k( G* p- I* l# T6 A. h) m                 UART_INT_RXDATA_CTI);" c3 `% _$ c3 n  T& S
    UARTIntEnable(SOC_UART_0_REGS, intFlags);7 P5 Y/ e3 K# \
}
) H: p0 i; ^3 f' X( t! j! U
( e- e8 p, m. V
% \8 }. R$ ?& ]& w3 p) v4 S, \
void UARTIsr()
' Z* V% D& W, b$ `{: ^: G; D4 h: o& p
    static unsigned int length = sizeof(txArray);% `2 _) G; H: R2 \# R; D
    static unsigned int count = 0;
% @. {( a8 `% y% c    unsigned int int_id = 0;
4 e- @. n& {8 S: [' `  X7 U! B, y
! e8 M  p: ^! I* y
( |( C$ _5 x9 f, {* b# `
2 L9 S  \, A* Y1 v8 b    // 确定中断源7 g# c- L9 Z& I4 B% {
    int_id = UARTIntStatus(SOC_UART_0_REGS);* n, X0 N0 d4 [2 Q( Y$ p; d

4 i4 w# j6 U8 w$ G; q7 B    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
- b& R7 m  p, Y. A
6 J5 g: V- s# n% z/ J0 D- R* ^6 J5 v1 S, L- f; Y
    // 清除 UART2 系统中断
: B$ R6 x: J) {: n  L' {4 B    IntEventClear(SYS_INT_UART0_INT);7 Z3 \7 l: W2 {% H+ m2 S
9 h) _' N) F# H. K8 K3 S1 q0 x1 q
    // 发送中断$ H, ?7 i* U& n% S/ L
    if(UART_INTID_TX_EMPTY == int_id), k+ U0 ?) p3 ~' p
    {
0 w) s" B. H5 v9 \! y- T" \        if(0 < length)
; M' z6 g& {/ O# s* V        {* s2 I" X' q2 e0 K9 K5 V7 R6 n
            // 写一个字节到 THR
$ y+ O* n9 @# ^. n            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);  |& l! K3 P6 o. y- X3 g
            length--;4 x7 I7 Y5 r1 W3 A( G$ y' [
            count++;. C' G, n+ i; l0 Y( B# H
        }2 e5 F$ j8 z- M/ e% p- A- O( U& X
        if(0 == length)* D( |' \& Y. V9 {' k8 [3 v7 ]
        {
+ l+ X, e: e( o$ g# X            // 禁用发送中断
; T( [- ]" @7 }) n            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
3 \6 D' F# o. t& o) N        }0 R( t! Y3 n+ J3 {" p% N7 a  q
     }
2 _" K4 N# `; I0 G2 S4 G
7 `1 U) W( m8 B8 v+ v1 B    // 接收中断  z" E# \  A1 @7 W: {* F' k4 B. x
    if(UART_INTID_RX_DATA == int_id)
# \, \+ M! ?- Q3 f7 H5 G2 O    {
- e, D# [+ y) z! d5 s) a7 h& V        if(status_a0==0)3 p4 ?) r2 v+ z$ J- B' i! T! l
        {2 {' Y6 |$ ~0 D
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);( I7 j4 P  Y& C$ a; O
                if(a[0]=='#')+ A, \& `- z8 ^6 n- v
                {- h# E3 K# n5 Z$ N* l) s: \
                        status_a0=0x01;+ y& y0 d; m3 S0 ~* I
                        status_a1=0x01;
1 Q3 |+ U. e2 b" \. }! \                }
, ]6 `2 q" Q' L: W' @        }& j* i& _/ n  C- c6 ~
        if(status_a1==0x01)
3 H- J6 H9 S8 h3 Z        {" @, R6 W# {5 y- O. |
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
$ [7 s+ A! F+ p! ]) u                if(a[1]=='R')
& t! X0 B0 `% D! x9 a1 j  j# W                {
6 w# K9 `* l, k  x. S4 B0 c, U                        status_a1=0;' Q2 K- I% \# y
                        status_a2=0x01;
9 j/ p& m0 |; M5 R                }
: I8 }0 Q* j! r. `3 R, m+ {5 i2 H        }
$ e. G1 T' N2 Z% `        if(status_a2==0x01)" r1 K: x1 {! _" U
        {0 [) X7 ^! ?+ p
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 X4 R: a1 @0 f. w& i' J, `- J7 J" ~
                if(a[2]=='A')/ J$ M& a4 L; R9 R
                {
& M" m" j9 W& y. i6 @! Z$ b! v                        status_a2=0;! w" u) H* u, S
                        status_a3=0x01;
2 J6 b( I% g. m- }; w, x                }" _% W% F) w6 t7 {7 e
        }: I7 ^7 @/ T0 X
        if(status_a3==0x01)
7 S" T' ~+ I. C  D        {# y1 V6 l4 t  o& y; _# v
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; j% J5 t! I: h* Q4 {: ?6 }" y
                if(a[3]=='N')
" Y/ `# R2 L1 D7 R3 H2 _                {, w- m( [- |4 s) ^- R9 A* M. `
                        status_a3=0;
6 T& J9 g. v8 r9 a5 c$ q                        status_a4=0x01;
" @" P& w& D8 U5 v/ q$ x                }6 m8 s1 i& z" h. I  Z4 T. n9 Q
        }/ r0 ~- t+ `. F: b
        if(status_a4==0x01). b  H2 `9 _0 ]0 ^; x# z' U0 n, g$ C9 {0 l
        {) @% c, n/ Q8 C5 L
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ R  z6 ^6 h% V2 Y$ M                if(a[4]=='G')
, T; {* l/ c* E7 W8 U/ @                {
4 h% m+ |7 z8 O( `2 O  {                        status_a4=0;
5 v6 ]5 w* U. e9 f6 K                        status_a5=0x01;
# u( ?6 M' W& S; q( |" Y  n, v                }7 x; I. z9 {; S+ i8 w
        }
; ]- m( c# o; e! J5 B1 a  k        if(status_a5==0x01)1 s9 G5 a6 I$ P( |+ L
        {
0 b2 r2 o  T6 X                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
; M9 T1 s6 N3 t' c3 m                if(a[5]=='E')  T  D0 [( z3 y, d
                {3 D9 r0 f+ ^* S+ A! o  x
                        status_a5=0;
7 L  Q- U0 c7 J; o6 @* f                        status_OK=0x01;; b: @0 m# L; |4 o
                }0 U9 H5 x1 L2 u; J5 D# p- W
        }' v# k' \6 ]9 _2 B2 s2 B
            if(status_OK==0x01)
; d' O( q: w3 F8 X8 G        {: G, g: {0 [3 [" T0 `7 P
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);! j+ O2 S" F1 {
                        lengthrx++;8 _6 P  g$ j2 k9 r4 U+ s8 p1 e+ X
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值); m/ G9 [8 d$ q( J3 S1 w3 j! i
                        {
! e  d* P* }; D* [- M# I$ `* L: z( i                                RecState=0x01;
8 ^- b) [2 _' K. N% y0 @" B                        }
  W# T" r3 q3 F8 s, o         }
( }$ i- j* O& n' p% y& t; Z1 B; T; c( `0 B+ j" m  h" Q
     }) {& ^# J" G2 E2 z0 g; m4 ^6 e

. w: a% `6 o8 `# L    // 接收错误
9 Z8 K1 M- q2 R( f    if(UART_INTID_RX_LINE_STAT == int_id)9 d5 [0 l( B! T4 ]& P9 H- {1 [
    {
/ h5 O: h; t' W6 C* X        while(UARTRxErrorGet(SOC_UART_0_REGS))
" e* F1 ?: S! u: J9 w7 P        {
3 }  a) e& R& i9 F            // 从 RBR 读一个字节
. t2 a) T' j6 c" H4 q, f            UARTCharGetNonBlocking(SOC_UART_0_REGS);: x  }2 n! n. u" f8 ^" v  L0 ]
        }) b+ T/ O6 D0 }! v7 V& Y
    }
3 M/ H& G2 q# h
- J' H: v9 B2 p* V& l    return;  O, |1 X! {+ R
}& o" ?: K6 X* I! m# k9 {, L* _
5 w. m4 z! M4 `% R+ `

5 f# _/ e* c/ e
$ ?4 N+ R' N! Z) T% D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

积分
2121
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
: U  s) t8 q/ x% z! s
. ^" |. {7 v9 ]7 aUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
5 A+ Y; }1 Z7 J2 m7 F8 y6 ^' t+ b$ d$ F$ a3 w$ g9 S, t- V+ ]
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
4 x# a! W! }# V+ p6 K( ~$ dhi,
& N9 l" M$ ?$ @5 h. v% F
4 T5 n% ~1 L5 q" t$ @UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

$ W0 B1 H+ B8 a% avoid main (void)
5 F* u* J# H6 \) @5 L9 e. k{
7 \7 t( R2 I+ h9 X0 V  A2 a( ]+ T        int i,j;  J' ?: N5 C! G
    char *str_buf;
* Q; |( I: x2 D  i7 @! `    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
6 U$ S* \0 A* ?' ?$ ?        double est_L_b_=0;' \, ]% Q  v  u- g6 C
        double est_lambda_b_=0;4 R, A' I) O7 }$ L7 m. v
        double eul_[3][1]={0};
3 \. n' ^9 ]& z. Z- p3 J        double est_v_eb_e_[3][1]={0};
) e9 \" o+ S5 u: [* c: W, i. L        double est_C_b_e_[3][3]={0};
& r1 ]3 ~& s' Y    char *qm;6 b7 n# v: @. E, p$ |( Y) e
    char rec[70];% i# v0 _3 ^" m7 ^( g" {
        double L_b=0;1 t0 j% h& M/ K( F7 t
        double lambda_b=0;7 ?& m, X% N" F1 O. Y$ a
        double h_b=0;
  K& }# R  E  P' ]) n4 b3 ^" W        double rate;% |% }5 I4 ^- D. C

* U# B7 o7 e. q& k- S; @/ }
1 s' N9 l. a4 b0 o( t* g( w        // 外设使能配置# O7 A! b! ?0 ]3 w5 A
        PSCInit();) Y" k8 E  @8 T0 g" G3 H

4 T- ?( n; t  S8 Q) c* X/ H        AppInit();
; A# d+ e- p  S8 f: |
, P% Y7 |1 g7 ]7 }        // UART 初始化
" k# k6 c0 V- Z, {' q        UARTInit();
- y4 ]$ o* C- i1 U$ A! j/ e' v
) m( b( B+ A0 R5 B& P- z5 N, @        // UART 中断初始化' ~" \. A6 g/ [
        UARTInterruptInit();- ^( B  e8 G- Q" y# x. S8 y% l

. v* i8 o- d6 p; @    evtRcvd = 0;0 p4 I; o+ R& ]! l5 K) A
    RecState=0;; P9 d% ?: M3 r. p! s  u4 Z
    /* Initialize */; Y9 ^6 Z( |4 M2 W7 [

; g6 @4 A9 z! y3 E0 W    printf("DSP subsystem ready\n");1 J$ N" [  m2 F8 \  L! S" K% M( g

8 I$ t$ d6 a% o" K+ X    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));& X$ w+ e8 A6 G" O6 Z9 H( V
$ j9 f8 P' M! k2 q: N* B
for(;;)+ L+ u: A0 L/ `4 }
{) J1 q( D4 i/ B. K
        if((RecState&0x01)!=0)$ a9 p& g! n' g1 V: F: \
        {
8 N, B. i% l! l: U                printf("liuzhenxing\n");2 J$ T' r) @; |  x! g" y0 c
        }1 ~. A2 D; l, h  x
        else
2 [5 p: x! s9 s+ S: x) J3 X  L        {
9 |/ s( f  D2 w* _! v1 u       wait_event();9 A7 C4 G7 C; E$ t0 p1 ]9 O7 a
6 [, f; S3 q2 x7 A9 s# T
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针6 V+ E5 h  I1 K' |  A1 A
7 [! C& L) {' I/ h; |/ w- y
           for(i=0;i<60;i++)
+ I$ C5 D' m4 E$ F1 m- G  k           {
( A3 ^! @) g. |$ Y                    rec=*qm;1 F+ r6 l8 A/ y8 Y; O! }
                    qm++;  \7 d( s+ T  ^8 i$ e! a
           }0 c" \" a4 n- U! w1 @- l- t9 X
$ R& d4 J3 i: x; V/ p; W
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
1 l9 ^* M4 \! a! e
5 e: _9 n0 y* I% R           L_b=L_b_receive_double;
- v8 M( ^0 @2 m4 X, c           lambda_b=lambda_b_receive_double;; ^' f* x$ p+ `/ i" r* T$ {
           h_b=h_b_receive_double;
/ ]1 V2 T; Q4 _# @' T5 U3 N           for(i=0;i<3;i++)
, R' T; I7 Q5 ~' n9 F$ k' P! `                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];  l4 ]3 r1 F6 u' \; O7 ^" x& h8 A
           for(i=0;i<3;i++)/ f/ U. h* O% X  G8 `, `6 E
                    for(j=0;j<3;j++)" R" V3 ]- X! A4 s* t5 u
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];* u& J6 |3 N; M" |7 W8 ]5 o" F; S% X
/ p, t* r7 D( C) n; ?1 ~4 Z
                printf("L=%lf\n",L_b);
! k; a3 M, m* k$ R$ _6 G                printf("lambda=%lf\n",lambda_b);  X' M' P; s4 [5 z1 _/ d' o
                printf("h=%lf\n",h_b);
, F0 n5 F2 S3 p+ Y2 s$ N! W% U. P3 K' ~. Q; q$ [6 Z. d1 N( y
                for (i=0;i<3;i++)- T& D1 D# |2 o) h
                        printf("%lf\n",est_v_eb_e_[0]);/ S: c% |9 c6 r/ y. Z; W" O# L
                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]);
. I* r. E( _# ?# a                printf("rate=%lf\n",rate);
; O- T) l. H" A! y" n
; f, p' ?3 b' m8 t! ~+ b                CTM_to_Euler(est_C_b_e_,eul_);) H* v5 E& J: N% I
                for (i=0;i<3;i++)
" i# x9 a* D: v/ G                        printf("%lf\n",eul_[0]);
* Z) c& Q) W* K+ u* B( v9 o) S$ s' W& p                printf("end************************\n\n\n");
5 L, }! p5 \1 I5 _" O) @! _8 i; d# e$ i
                /**********************************************************************/! }- j0 p8 o6 f. k( u" ~

' b2 R' ]' n" J            char flag[4];- m8 G) B9 _0 _! A' r4 q

1 l/ R2 E5 s$ a0 h5 k3 U" \            flag[3]=0x00;: o) e  u( O8 u! b/ v
            flag[2]=0x00;
* @4 T* f; e; X6 C0 G5 p            flag[1]=0x00;
( U. a# J) F; H7 t7 O6 f            flag[0]=0x01;
' [7 u: |/ Q3 ]  `2 ~3 _% g: X$ T2 \& `1 @% S2 p% E' q
    /* Allocate I/O buffer and init with string */& ~( g9 g( Y/ C
    str_buf = (char *) malloc(80);
  r% ]0 \  U5 W, ^. m    str_buf =flag;8 o/ W/ G! A; q% ~$ j4 H7 K! K8 r

$ Q  K- f9 {( ?, U6 v    /* Send buffer to remote CPU */
7 W' c9 l3 b7 u) x7 t3 v7 }    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
* N3 E, C! d0 ^# B: ]  p5 f& z3 k
4 J3 T. @8 n4 r- }( e    printf((char *) myPayload);
- k; @( P) \1 p/ u9 |        }- |+ a: t4 w. e5 l' u; v7 G
}
- l# v9 y: H6 F2 |  w$ [; B
4 f' T$ u8 Z' `* t9 k; Q  T7 A1 R    WAIT_HERE;
1 ?. I% p7 w! h( w" m% Y) X' i}9 P& z6 S! _! F$ R
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:9 A7 X) t0 {- l
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
9 D& m( u# Q4 X3 t2 P然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

积分
2121
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:544 ?5 I( S+ U8 N  M
syslink 的初始化是否成功,notify 通信是否正常了?

3 S/ [" ?$ Z8 }# _双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54+ s/ d! R& ~! t7 s& j7 }* K/ {
syslink 的初始化是否成功,notify 通信是否正常了?
6 j7 ]* }) Y+ 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
* T9 C) D/ b- L; X/ z/ P我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

" ~. S$ V6 M1 |0 [# J( D$ u建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 14:40 , Processed in 0.047367 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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