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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
$ ]2 x+ L* U) n+ v  }3 j1 ~我是在DSP初始化这不太明白。
7 a, Z3 s% t- X& ]; T7 r初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
% {7 f8 W, K3 [( g: v
9 M6 A# u$ [& ]$ k  B3 f: x
3 {! L& F0 L8 S3 O首先        PSCInit();//UART0使能
- I6 Z0 Z7 P) Gvoid PSCInit(void)* p+ r; `2 `" M9 i( Q  w, ?$ H; c
{  n' m5 ]; O! p) n5 j4 }9 A
        // 对相应外设模块的使能也可以在 BootLoader 中完成
( T+ d' m6 d( |* f, C    // 使能 UART0 模块% U6 y5 Z- e0 k2 Z, I# c4 q& m4 g4 q7 J
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);: J3 |0 Y; U$ ^$ L) ]( E( @' h
}
$ @, M- f; U9 |" ?% a+ P* K
5 R/ e+ r5 t* I2 `8 H

2 a! n2 @, {" G0 |然后是 双核通信的初始化           AppInit();
6 d- y% V# N* Mvoid AppInit(void)
# c; e8 k; z8 \" M) }{
1 o3 n: b: X8 p8 v# y/ K    /* Structure to initialize IPC (see Ipc.h for definitions) */+ W, R2 r* ]! H- R% a2 N
    struct IPC_cfg ipcCfg = {
+ c- [" `: W6 C: k% z            IPC_DSP0,             /* local processor Id */- p1 F& m  c" B- K
            IPC_ARM_HOST,         /* remote processor Id */
% O* T+ S3 |  ?9 e. `$ H            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */. F' S0 N- x; T2 [3 g9 m
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */: D0 c5 c) {5 r; q4 W
            NUM_MAX_EVENT,        /* maximum number of events to be created */+ X2 [2 c0 C9 G/ [
            &ipcPvMemDsp,         /* local side private IPC memory */
: W+ a7 n' [- z( C: }. c            &ipcPvMemArm          /* remote side private IPC memory */
5 c! [/ C: ?; L5 m0 ^) F    };/ d( y6 {  ^0 E7 Q
    IntDSPINTCInit();" W3 A' U% H0 i3 ]6 N+ F
    IPC_init(&ipcCfg);+ g. m) s, X" q0 S6 P
    IPC_intRegister(C674X_MASK_INT5);: L/ O  a9 H& _; K6 ~) H6 o: n
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
/ W1 e. y4 M: [  K/ B0 E. S* ]. p
6 Z. f8 m( R5 n' F4 q    /*  Enabling interrupts for DSP C674x CPU */
: ?! b6 e" ?2 {; ^& X/ |; k    IntGlobalEnable();        /* Enable C674x global interrupt */3 T+ x6 J  ]: I+ k9 i- g
    iAssert (Notify_start()); /* This will enable IPC interrupt */
  K/ O" ~: ]  T' v  F3 N% C}* H: F0 f' Z  b6 a9 m9 Y
8 ~# N9 e% K& O) j4 _
然后是  
2 b) X3 E3 `: z- z0 |7 @            // UART 初始化
  |$ r0 b1 T# k" A( T            UARTInit();
% d, j8 E2 C3 p" Z  ?0 G. @$ }( D) r2 y3 y0 M6 j
            // UART 中断初始化, n! w) O$ s3 _$ L9 s* ^8 F
            UARTInterruptInit();5 E5 T, j) Y! a9 O5 |

3 g2 m) I; r$ F+ S" J4 P: h4 e
3 {2 x! ^1 S( T: ]/ l- ^void UARTInit(void)6 T$ ~/ F9 U; l6 u8 t
{
& ?- ~5 q/ y  N3 V  K# }& o( r1 ?        // 配置 UART0 参数' U! C+ d; Z7 v( R! P
        // 波特率 115200 数据位 8 停止位 1 无校验位
0 u( W, e' d: H6 Q1 p3 R3 r    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
1 _$ w1 M$ T' m$ K                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);7 _7 z  P; M4 O) n. ]4 ~, |1 T0 v
        // 使能 UART0. }% s, N2 s5 |: U5 W
        UARTEnable(SOC_UART_0_REGS);# H4 Q6 r2 j7 b/ K9 b8 @

: b" q/ r# W# J/ K. G0 v8 [    // 使能接收 / 发送 FIFO; g  a( Z( g4 N& s$ E
//    UARTFIFOEnable(SOC_UART_0_REGS);
/ b+ [& o- K0 ]$ d
2 _. ~3 q+ t) @. J        UARTFIFODisable(SOC_UART_0_REGS);
8 J  ]9 A1 k$ G4 s1 X; s! g# l$ e8 }, F! v9 ^6 r
    // 设置 FIFO 级别     接收FIFO的级别) X. Z% z2 ~" K3 p. ^' C% r
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);# p. W# q  |: D
}3 U( V) j* M; v& U. L" v' e. u

. I/ K  P/ |- l  y$ g4 Z: q3 V% t( K" e) ]
void UARTInterruptInit(void). R% z# c9 Q* O3 ?+ F
{
, B0 L' U& f! \& o3 O        IntRegister(C674X_MASK_INT4, UARTIsr);
0 b1 w4 P3 J3 V3 H        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);* k0 \! m& n4 \1 ~6 h0 K
        IntEnable(C674X_MASK_INT4);
8 \* X/ N& J4 h9 h& }; ]7 x8 q+ ?" w( T7 D$ t( K1 C3 t# _, n8 _/ ?
        // 使能中断0 L# U$ ~. \7 G; I  O" p$ K6 Y
        unsigned int intFlags = 0;6 @. L' r$ d) R" {9 D; C2 t4 D
    intFlags |= (UART_INT_LINE_STAT  |  \
. w, E- U) F# ^* W) G8 C7 O: B                 UART_INT_TX_EMPTY |    \
0 j1 M- L7 J, n) n$ w                 UART_INT_RXDATA_CTI);; O, O  m4 y- Z& [. x2 L3 f, w
    UARTIntEnable(SOC_UART_0_REGS, intFlags);$ t( ?* J( F6 J7 Z* _3 b
}
) ?8 [$ Z3 B3 i' H2 R5 i

0 w! J) a' T  E, F, P9 u) H3 A- _% `* V) k0 I8 i+ X
void UARTIsr()+ B+ p0 ^- t) y6 J
{
9 b; Z" T! I' q4 T1 g7 ^    static unsigned int length = sizeof(txArray);
0 @. Q! `0 v5 M9 f8 t: L; W    static unsigned int count = 0;" t, |* r# w0 S! q/ o
    unsigned int int_id = 0;
* `& k( V* I# G2 D. M/ X
0 K5 G; m* `/ D+ G$ F4 N
( n+ s$ l: K. F2 i1 H* J# g6 Q6 m2 G8 K
    // 确定中断源
  ], @2 q& j) C: O    int_id = UARTIntStatus(SOC_UART_0_REGS);, Y5 m  M1 k0 H# U, O

8 I# E4 G' m* O    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
5 B$ k2 U6 K6 {" }* ?- j1 ~) S- Y+ @' Y2 C* A0 F* n' m
$ u( p) l7 k$ E9 K1 ^. O
    // 清除 UART2 系统中断9 ]- c* [. l* w2 Q3 B* d
    IntEventClear(SYS_INT_UART0_INT);) w* C8 G( H9 J
6 W; ?; H& C+ A, i3 i8 j! ~& M) o
    // 发送中断
% c% t7 x& J  J, q    if(UART_INTID_TX_EMPTY == int_id)
" b2 [/ i: t( P    {
6 Q% w" p4 \( ~$ w8 [. ?/ y) N1 l/ l# \        if(0 < length)
# G5 {7 h, a- N' V1 e. S4 U4 w        {
6 \! ]4 r* l2 E4 q% R( g7 _$ s/ l            // 写一个字节到 THR
' v) r+ j: s' U. g            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
( t, e8 I; d, m: n1 o8 A1 Q            length--;" h8 A5 J4 y: {+ f9 Z0 H
            count++;" y1 q3 I4 H! ]
        }) a+ g6 |5 z/ N: c9 h
        if(0 == length)! B0 k: ^7 d, w: U4 v8 B: i' @8 a4 b
        {
3 n2 I7 a+ a7 r: i( p            // 禁用发送中断
  @' ]: Q. g) f! V: n            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
4 y7 y# A0 I- w        }' R0 {( N6 L) m9 v3 M8 q5 W
     }
  K) G+ x- V7 ]- g% P& u
" u% P9 ~. Z, o4 \7 q  [) w6 d" \+ q    // 接收中断/ I" H7 n) V9 y# f
    if(UART_INTID_RX_DATA == int_id)4 b9 S' a, }3 E$ Z; k& \
    {
" `3 y$ z/ j7 n8 q3 |        if(status_a0==0)
8 D% g  ~/ b! R7 r        {; ]3 ?9 ~% S  ^) Q
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);& c, A' T+ l8 V0 ]- ^2 c! M
                if(a[0]=='#')
5 n* `( O% J5 j  ]: j                {
9 v% T$ x1 Q. z& h  [1 ^2 E                        status_a0=0x01;% c3 N% w+ Q+ m' Q; |5 o
                        status_a1=0x01;# B9 a4 N# t3 }; f1 R9 ^) U
                }3 r9 U% T! U+ c1 g
        }
: w1 X- ^, O  J  R        if(status_a1==0x01); b+ E: F. d, G" }. Y
        {
8 d) J: s% J# z4 y                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);: G( j. o$ d5 f
                if(a[1]=='R')
# h+ M$ D  ^+ r, z4 M. p5 M                {2 |; v+ ?% Q8 a: z" D3 J7 @
                        status_a1=0;
3 z% U9 S; D# z) Q                        status_a2=0x01;/ Z* V# x% E6 T& e, E
                }
# M. m7 Y7 g( O9 J        }2 F6 G; u# L. v: o4 ]1 x; v
        if(status_a2==0x01)6 x. N% l  p0 s& I8 ~
        {
$ C" P/ s* I( |( d5 ~" [; @                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
" m8 N, k) a1 R% I9 s                if(a[2]=='A')
8 K: Z: v/ `5 V3 J+ }                {
6 v9 {8 o4 ~& g! q                        status_a2=0;1 X% Y$ {) T' E! R9 R+ s4 `) e
                        status_a3=0x01;
6 T7 m- p* o5 w8 T3 ^                }
# [. \4 @) x: Q4 x2 }        }8 s8 e" H4 u# Q# |6 h
        if(status_a3==0x01). b0 c% L( n% y  C1 T
        {
( r' H( T8 p' e( p8 n                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
' d8 T5 f: A  Q                if(a[3]=='N'), }7 [6 p5 Z6 s& z5 s
                {1 j; c* [4 H) R' M
                        status_a3=0;5 p" X# d- f+ d( \
                        status_a4=0x01;2 T0 v1 k) a! Y7 c8 h# Y1 `
                }
' W- P) u+ p* X+ T  `        }
+ v  J3 r7 H3 `1 C! ?. ~" ?        if(status_a4==0x01)) ^8 X& t' F3 }/ a. e5 E
        {
" }9 O( \3 `% \: W3 F. y- q& l- \) s                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
; s+ h7 F0 [+ |( i, w; P# b                if(a[4]=='G')7 d# ~, I+ d8 l) o2 Y* w
                {
8 }0 ]. P* Y9 V0 ?' L1 r                        status_a4=0;' M" r* i$ u$ W) {9 b
                        status_a5=0x01;
0 H/ U9 Y6 d* X6 _6 Y( X                }
9 ^" N3 }; G! L6 s% |        }
# U2 V+ ^( o9 l9 Y        if(status_a5==0x01)$ N5 y3 q  m# p0 I  |% b, Z1 A
        {6 \0 P3 {6 G5 M
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
3 `7 b% b5 Q+ Y/ t( j1 F                if(a[5]=='E')
# Z' \: J) ^3 M; Z& B3 D" K' d* k- E                {4 R. Q+ G/ M4 @1 e1 {" n9 a
                        status_a5=0;/ A9 ~+ k+ i* v5 c' o
                        status_OK=0x01;" O0 u8 @  p7 H. D
                }" i2 x, i6 z8 S/ J$ G
        }' z3 K$ }  D. H7 M  b  b7 P
            if(status_OK==0x01)
( Z. [0 ^$ {) B1 _" I) i* X- @        {+ Q  W; M! j! K% g
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);+ p0 N5 @% A. ?: j+ Z
                        lengthrx++;
) K7 t6 }# L% Z9 m" v, [& [1 U                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
& Y* D6 l9 h2 Y7 t5 y! u                        {
, R8 V7 _( P8 ~; A                                RecState=0x01;
, \- _2 x8 z" {: c1 l$ m9 p8 E                        }
2 u+ M" Y! E$ `- R         }# X8 O+ f* w! F; A% _8 ?. U, B9 J

2 j, B. e; B' G4 b' @1 D( k     }
' u, ^* c- }: c& Y& i" {. W; d& t9 G( c% J5 F( ?* f
    // 接收错误
4 c7 o0 _  |" x, O6 V7 C: e; x9 @    if(UART_INTID_RX_LINE_STAT == int_id): H  ?" r& r( p% m4 [
    {8 Y, W- w: c2 s$ J+ O1 Q
        while(UARTRxErrorGet(SOC_UART_0_REGS))
7 W5 J# I2 I! @) F4 y. y        {# M, @- o) a. B5 H
            // 从 RBR 读一个字节
: |6 Q/ P! U* G4 ^; H5 f) r" A5 h            UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 Y2 A$ |* `+ K0 ~        }6 P9 a2 K( V# D
    }" _' K. u" k! j  T# T  l3 W
) Z4 V' ]! s+ O& _+ i! M
    return;
- v4 H; P5 Q& o) i9 C& C1 [}+ F/ a4 p' H( q: B

3 A6 {. ^' S) m( e+ k
9 u8 V! \0 a  j' S; `- j" O

, i7 J2 H6 l( E8 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2025

积分

创龙

Rank: 8Rank: 8

积分
2025
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
, E* [7 ^( v- f0 I6 m5 H8 @" |$ e) X4 y9 J$ M
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
6 H2 ?* w6 B$ E: K
# o' V* b6 d& c, m$ _; C+ m% R要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13  p$ n$ j# }7 D2 {- q' _
hi,
+ b3 H" n& R( c; A
) m8 N. z% N9 Q9 UUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
5 l+ j8 x+ }# J% q% r" C
void main (void)
; R6 P4 V3 t7 Y  y{
* Q) ?. R! q1 ^. Z( e" p        int i,j;
- p9 y3 ]0 |2 h; l! D4 c5 e; z' \    char *str_buf;: r' C* W. P  d" s+ U5 O5 I
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];+ R7 i7 w' A) |. C& u
        double est_L_b_=0;
0 J4 N7 Y9 Y( {+ q8 B* j' r7 E        double est_lambda_b_=0;
) h. j# \" v7 ^3 i" ]$ v4 v        double eul_[3][1]={0};
+ I. I3 L# ?5 Z5 @' D: Z! K        double est_v_eb_e_[3][1]={0};
6 s4 U; W  ]9 g( Y* i6 M! g. s  I        double est_C_b_e_[3][3]={0};
' D( x+ j. ~( F' M1 L, g6 ^    char *qm;
5 G5 j: \5 e* J. T  I; C    char rec[70];3 r5 z8 i+ x9 f! @. }! \% z8 m" n
        double L_b=0;
- `( K# b' I0 K        double lambda_b=0;
) u" c7 P/ o4 A: m; J! F        double h_b=0;' z2 Y2 N6 J4 j' a& i- C( V- m2 p, t
        double rate;
+ q) _! ?$ |2 M, P" j0 d( @* j" L0 |
$ l: Y6 a( k+ C# ?! S
5 K0 w! ~9 g, W* n: w6 B; R3 j        // 外设使能配置
, }3 f/ g: G3 G6 S- i) h        PSCInit();
* @9 J  o  D* F8 q. {; `8 |; k+ c& J; F, G: N2 n
        AppInit();
: W5 ]9 Z; Q1 K. s, l
9 p/ a  j- x* ^! m! B  |        // UART 初始化
, ?+ q* w& o  p- I9 U# q        UARTInit();' F# o/ C) T5 w/ E
1 w# t6 e% A! u1 r
        // UART 中断初始化
1 l9 I; {, `  G# K% `9 N        UARTInterruptInit();0 h' [2 ~' z6 ?5 Q7 i( G" i

# m7 S  @3 L) `! Y( ^2 O( D    evtRcvd = 0;
7 O4 g. x  f( m- c& W    RecState=0;+ n4 [: V2 R- _" p( a
    /* Initialize */
; E5 W8 U5 l6 V
* X% Q0 h9 a) K: C, D    printf("DSP subsystem ready\n");
+ {; |. j1 }# `) c
% L: P! H) }/ z) e4 H    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
+ g0 K9 B' n, D; a$ ~" T* z5 G! [( }! `$ ~. P2 T. p, P
for(;;)
9 J3 m5 h; g1 F1 I- O! f7 m- Q1 F{
- ?% u# @2 P+ w+ c! X        if((RecState&0x01)!=0)/ z3 r$ Q. B; O! R+ Y4 F- r& o
        {; Y5 `  q" a- m, w$ [" z1 ]
                printf("liuzhenxing\n");
- t) q& _4 k: T5 A: \* \        }
* h" `0 B" r+ y& `: x4 ]' I        else
4 S5 g6 j) f, C        {* ^7 w2 K/ C" z, I2 ^; x
       wait_event();
5 @6 y6 b- k, v* S5 N8 G2 e# ~$ [# I7 [( D. A) g
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
# ~# j  J% R9 X' U
" o% q5 g  I1 p! k& {* P           for(i=0;i<60;i++)
- E/ v& h8 i, ^& g$ G' U           {
6 d* R3 I8 W7 q( [  V+ G* t                    rec=*qm;
9 x- O2 |8 E7 A3 d                    qm++;
: |+ E9 Q1 T, q2 j* Q5 @3 x8 _0 D           }5 c+ ^3 L4 M, M' B* N2 v( G4 X
- I! V0 a. K4 o" W6 M
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
  E7 j" v% K. V1 [; f) ^4 W2 Q/ E! x* B( B5 i0 s
           L_b=L_b_receive_double;2 T2 f" U# V0 G" g: H: y
           lambda_b=lambda_b_receive_double;
- Q3 I" v2 |0 [* q+ W: V" p           h_b=h_b_receive_double;1 b3 A. i: {5 L/ Z
           for(i=0;i<3;i++)% x& T/ F7 L% ]0 j  g  k
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];1 {0 a5 \4 Z; i5 k$ o7 y' K
           for(i=0;i<3;i++)
" I% H7 A- T8 y, _  ]) d$ h                    for(j=0;j<3;j++)
. I4 {* U: w: }/ ~9 }: X9 s9 i2 Q                 est_C_b_e_[j]=est_C_b_e_receive_double[j];0 Z% y2 o) ^. f# T
+ y9 i6 Y. K6 n& |# d
                printf("L=%lf\n",L_b);% }* l, Q0 p2 @2 X8 w1 v6 [
                printf("lambda=%lf\n",lambda_b);  |( \6 E/ n1 d. A. i7 Y+ \: e: G
                printf("h=%lf\n",h_b);
0 h1 l$ ~- `; A! l
' g( ~8 F) @. M3 w, N/ y& o                for (i=0;i<3;i++)
% I( m2 F5 u5 v  U! E+ b                        printf("%lf\n",est_v_eb_e_[0]);5 ^3 [( o3 H( ]% z! x
                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]);
$ x% r$ b3 N. g1 E* y- ]                printf("rate=%lf\n",rate);8 W+ `* s6 }; X: Y

; I9 ^3 m; G" N# Z% b) q                CTM_to_Euler(est_C_b_e_,eul_);
  R! C# T' [) s; k4 J8 l1 ]                for (i=0;i<3;i++)
. j' f. m. n3 K' n                        printf("%lf\n",eul_[0]);, L& |' a3 E$ M' l
                printf("end************************\n\n\n");
% N: O. u- z2 F1 w; C6 f7 {3 \2 P: W7 F- f) y
                /**********************************************************************// _; p! q9 I; b, E6 T; s; J& z& F

7 Z  R& W0 f4 V& N1 `' @/ M            char flag[4];
! j$ C' h. F& f5 y- O: P; R$ p/ f9 ], H
            flag[3]=0x00;. L2 F! A% W# |
            flag[2]=0x00;4 t+ y/ {$ Y* C- A7 A# ?8 B- M' ?
            flag[1]=0x00;: |" a" k4 `8 f$ q  ]) q# Q2 n
            flag[0]=0x01;
3 P" k  D, l+ J) f5 U5 I6 |( E# s. ]  }
    /* Allocate I/O buffer and init with string */) P! P& L# m  S3 a# n3 \
    str_buf = (char *) malloc(80);/ W1 q( q- _' ^4 R1 U) b: S4 h
    str_buf =flag;
) Q5 s8 H6 q& B; w6 A& m% R& `4 h9 w+ M) Y& [
    /* Send buffer to remote CPU */- H1 B+ [# i: Q3 N
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
$ }/ e# [+ X! }5 O( w' w; _& m" G0 J4 t/ n+ k! p; E0 ]
    printf((char *) myPayload);. b( m& c/ `4 ?0 K; W5 q
        }
6 d/ k2 G* l# n" x3 S* k/ l% L" ^9 ^; A}5 x, F% h8 q, N
$ B7 |& l( I, `9 }  s' I7 E
    WAIT_HERE;
* q% Y) G9 o1 w8 u7 ]( O4 m}3 X: l, D* x8 |( 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 | 只看该作者
我说一下调试的情况:' g8 O, K9 o+ s$ B
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
- Z. n  g$ b0 U8 m5 u然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2025

积分

创龙

Rank: 8Rank: 8

积分
2025
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- m  `% E$ O+ p+ r6 Z/ X  J/ U
syslink 的初始化是否成功,notify 通信是否正常了?

2 O/ J, g4 [2 ~5 X5 [0 m双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54( C( d& W4 @) j% R- c
syslink 的初始化是否成功,notify 通信是否正常了?

8 @% u9 {6 x8 V% |* K% M  u我用的是裸机开发的双核通信,用的是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( T3 r4 j' b! |6 B9 k
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

4 m, g  A! s0 f. U& b* R& D1 v建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 06:51 , Processed in 0.049239 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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