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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。1 i8 A' P! K3 Z1 ^
我是在DSP初始化这不太明白。
. f1 L5 k6 ^4 u: {9 I8 z) ?' l初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
- {- c4 |' \' ~5 H; {% d% a, |6 f6 c; a2 p6 Q) h: d  A2 Q

. y# S0 U2 s% L# \* @3 j0 P, w首先        PSCInit();//UART0使能
' F7 ~( T0 t  G. j* }void PSCInit(void)
0 }* j0 n" V- J) m; t+ v{
3 O/ D! O* t; ?/ w' N        // 对相应外设模块的使能也可以在 BootLoader 中完成6 R& C$ u. Y" |- d# U+ a  W
    // 使能 UART0 模块: L( H. R, G  O
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);" ?, [: n9 I5 I( k6 Y4 X% O, G
}% w3 h7 }3 x6 V, H. l

6 t" V. x6 c( F/ z* q. \
7 `8 j8 `3 r* n$ E然后是 双核通信的初始化           AppInit();7 ]: {  H1 i  R0 C
void AppInit(void)
' T' @" Z% w0 C! a0 \* o( \{
" q! b/ u2 H0 c5 A4 g1 ^    /* Structure to initialize IPC (see Ipc.h for definitions) */+ Y6 s' `) Y5 ~; L* p) Q/ O) [
    struct IPC_cfg ipcCfg = {
  R0 J' p* \; D8 i            IPC_DSP0,             /* local processor Id */% r7 ]& A' y' B. v/ |
            IPC_ARM_HOST,         /* remote processor Id *// p: z! d, }, i( {" D, C  Y
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */* x! f. V; d- {& O# B2 M" V
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
! E8 M$ M8 z/ u) ]: {! |4 Q. L( A            NUM_MAX_EVENT,        /* maximum number of events to be created */
3 F0 |  }: }# I# f; t) b            &ipcPvMemDsp,         /* local side private IPC memory */
" ^6 ~! Q) n! }/ n' H            &ipcPvMemArm          /* remote side private IPC memory */
0 I0 k! b- B# h: z& {; V$ c" K' L* P    };& ~! E( m* A. q) c- e
    IntDSPINTCInit();
+ ^0 m  T1 N' o    IPC_init(&ipcCfg);
5 i. x! p" _- Y# X* k2 S+ u    IPC_intRegister(C674X_MASK_INT5);2 U  a3 a7 k' [! n
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
8 m; E# f0 E4 C9 S7 i7 ?/ b4 k+ V$ L8 _( F
    /*  Enabling interrupts for DSP C674x CPU */  Y& }( X& p, M7 u
    IntGlobalEnable();        /* Enable C674x global interrupt */- G) C& ~) t. ~  \$ r5 p
    iAssert (Notify_start()); /* This will enable IPC interrupt */) u# }9 U  v+ C5 a( m
}* s# b+ P. [$ G$ J
! p7 O$ w) ?: u
然后是  + w5 }) S$ b& v% \- j; ^$ E3 n
            // UART 初始化
$ z* ?) }  O$ r+ t            UARTInit();& L- b& K# b1 m1 y: v+ W% G: n
. C$ [6 l4 X9 E- V
            // UART 中断初始化( M* D! {/ j8 s4 P( q' H  t
            UARTInterruptInit();7 O' ?; T5 _1 a& l' I- q! N5 f

8 Z) R  c6 d. X) [1 k# H5 x
% e0 y2 N" Q' P! b* svoid UARTInit(void)
' R4 F6 L7 O' [/ g4 w$ O{4 E7 y& O5 Q; N. i, V' l8 x7 I
        // 配置 UART0 参数) b! }+ L1 l! m4 r2 x  K2 o$ k
        // 波特率 115200 数据位 8 停止位 1 无校验位
: e$ w! |% ]' F: d    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
3 b$ J- F" [2 p                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
6 J8 I" _" B* a        // 使能 UART0
( u% l& l9 l# m' G        UARTEnable(SOC_UART_0_REGS);: W' [% @5 c3 D* R. \
* a$ n( p: I% l- Y* V0 w
    // 使能接收 / 发送 FIFO
) [! B; s, V/ @8 c8 E7 d7 X//    UARTFIFOEnable(SOC_UART_0_REGS);
# B( m& K. p2 q+ G9 }# z" h3 b$ d& \# v# d
        UARTFIFODisable(SOC_UART_0_REGS);
( M0 j2 J# G5 ?7 k" N
8 j' |+ L7 R* \5 ~, _    // 设置 FIFO 级别     接收FIFO的级别
9 c" L; `" E- U//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
3 g1 L7 ]0 @2 i& ^! {- l}
1 J! B3 V. b& N8 ?( g; X
- ?2 e7 {+ Z1 Z

, k) r$ w" q5 }0 X: y+ C- h! bvoid UARTInterruptInit(void)4 c) F: _/ I- j, i" a" [
{
. n4 i8 A5 g& Q; q        IntRegister(C674X_MASK_INT4, UARTIsr);
+ j8 b4 g2 m% E( p; v; q9 ~; B        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
. W2 v2 e. \5 f+ X8 Q        IntEnable(C674X_MASK_INT4);
. |* a: r* F- p/ }( b; ]
2 R: H' u8 V+ C4 v7 B* ^        // 使能中断
. [/ O$ U8 t. K( P& B6 S        unsigned int intFlags = 0;5 o& n) r6 u2 z
    intFlags |= (UART_INT_LINE_STAT  |  \
8 w  ]: ]( `% B' Y8 b; M  }                 UART_INT_TX_EMPTY |    \
/ [+ P; u9 ]1 R4 P9 K                 UART_INT_RXDATA_CTI);1 Z! B( I8 Z5 m9 C
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
$ W# y% Z: w2 c" W2 {2 E7 R}
, t# f9 g+ A" K" f

; c4 v3 o2 d8 D+ ^/ g) j- k+ P
7 l/ X2 n7 q" B! f& bvoid UARTIsr()  G# g8 S2 g% t6 Q  K5 ?
{' p9 C3 K; c  ^" H0 [
    static unsigned int length = sizeof(txArray);: ~) p3 d0 b0 L* k& x
    static unsigned int count = 0;
: ?2 q) U8 E) w4 f; A7 N  ]    unsigned int int_id = 0;
! q6 Q* W3 t2 u- O; ^4 }- i7 d8 J% t# Z6 z# n! b9 |
" c  u6 m% L$ j" l

( J" e$ I# Y9 B/ ?8 Z/ D! W( m; Q    // 确定中断源. T- k+ k1 g; R
    int_id = UARTIntStatus(SOC_UART_0_REGS);! t' e# j8 k, y( _/ b3 J/ E
7 v( a) K% R/ H/ v5 b! c
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
0 o0 a0 m) j' |3 d1 _' w
% a% {+ T) f  f8 S5 |" T
- p. A5 t# }; h9 R' J    // 清除 UART2 系统中断
, ]1 o+ b. w9 _    IntEventClear(SYS_INT_UART0_INT);
8 M) X- [; k7 u- O7 y# w2 z; n& x" c) t
    // 发送中断4 I# G- I7 x* X" F
    if(UART_INTID_TX_EMPTY == int_id)
9 A( p6 e" q% `# u+ f    {
) j) }5 r& e  m9 u        if(0 < length)" F6 j) O9 y, o8 Q& n
        {
3 r/ M3 h- V) o) I% }+ Z            // 写一个字节到 THR7 F# s/ |8 v) ^# c+ Y' o4 R
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
; X- Y+ o) x5 f; N5 ]5 t1 h7 M            length--;
$ t; \8 x7 ?4 G/ V. N6 l            count++;$ B; C$ c9 a/ w3 ?
        }
4 z" }1 [" h9 x        if(0 == length)9 Q& z9 g" ~- ~" Q
        {" j3 y9 L- W9 w
            // 禁用发送中断
& N' v0 q* ^: S  g% ?; i5 U            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
: R3 s9 o7 @3 I7 M: r        }
. _. @, x" ]5 A" b% U+ T) G     }! t% A5 I0 }" y$ T/ a. z
4 y1 X" k% l) j( j0 V: n
    // 接收中断; v$ i# K! u0 t7 {
    if(UART_INTID_RX_DATA == int_id)
" l6 k! [0 h4 A: O1 p* [    {
) I& H/ K: k- }7 n/ g. g        if(status_a0==0)6 k. d5 Z1 }, R
        {: B) o( Y+ {8 C
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 b1 B+ @# ]9 t" I                if(a[0]=='#')$ D1 s7 u# N" I! a. u
                {
) ^9 G+ @  ^* F" m                        status_a0=0x01;
8 K. q' W2 r) S, }0 K. @                        status_a1=0x01;
6 ~" Q8 W+ `# M% g                }
2 j$ B& H3 b+ M6 r$ S        }
5 n+ O/ a+ P7 R. ~, a$ c6 [        if(status_a1==0x01)* G. H" d* [# n' ?/ x  i8 n9 j
        {8 o0 y$ l- {8 A: N8 D- M& H
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' M( X$ v5 A: L
                if(a[1]=='R')
) u' }7 ~+ f) K  i- e$ P                {
3 k& l: i: k. t; F, N( j  ?- X& `                        status_a1=0;9 \3 m* ~7 B8 Z; ?) T
                        status_a2=0x01;
$ v( M7 {2 d& R- c& p) _; b0 a                }! Y3 G5 v( L$ E
        }; A$ r3 X) ?- j* N0 X9 X
        if(status_a2==0x01)
) c0 M4 v% ?$ `' T        {1 O. {2 M1 z; Q! y1 V, C
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);& L: A; V, ?6 m) F8 j1 ~1 z8 i$ ?
                if(a[2]=='A'), J0 x0 q% J+ b) \; f; N7 h
                {
/ U+ s# m& p) n: e$ n8 M0 ?! f! J& j* B                        status_a2=0;
9 j8 I; ^5 M3 Y" u/ x, ^7 b6 H( r                        status_a3=0x01;; T) F. h. N. [4 Q- Z
                }# V1 j* J7 E9 r- \
        }
+ c8 V5 J% |2 A! P; \        if(status_a3==0x01)/ T' {* i8 @& Q) h0 s  r
        {
1 H4 J* t1 w" ~7 P                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 x& U% H7 h' X4 F& f4 N
                if(a[3]=='N')5 j2 |: ]) h. _8 N$ U$ A
                {
; ~+ U% H/ r) w5 Y& o7 b                        status_a3=0;
" Y  j: p) M: j                        status_a4=0x01;
6 N; K" N7 x# _9 m0 @7 T0 Q1 \. A                }2 D# o" T5 w+ c! _" b' B/ r, v
        }% K0 N* o9 ]" @1 K2 ~
        if(status_a4==0x01)
% D' S; Q( R4 Z9 v. I1 H        {% n- d1 P! x* M& Y9 H& S! c
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 \& `6 U9 J3 \) i6 d9 C                if(a[4]=='G'): v' S  r1 j  j9 C3 l- Q; ?" n5 V
                {8 M& }9 j1 y% c8 y9 K5 y" O
                        status_a4=0;
& e& U$ T9 c% z/ e8 C1 Z                        status_a5=0x01;1 S: D# S3 N& H2 F0 s: }% y' k
                }# N3 B; u+ q# d/ l
        }
' F' i$ ~+ U/ }        if(status_a5==0x01)
! Y8 {6 s3 v4 y! K7 f        {
4 C9 v) Q- e$ r                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
$ s  G9 n9 v* A( M+ W+ Q8 k5 s                if(a[5]=='E')
) m! V- o. [# K3 F& {- p4 ^2 R8 X                {7 E2 |0 h' N  {# ^
                        status_a5=0;) z# R* ~% b- F! j
                        status_OK=0x01;
% C7 l. ?) i  _" f& E, W                }2 o3 K+ O* W' a1 X* Y
        }7 u3 H0 R- L/ O0 e' h1 v3 a' W
            if(status_OK==0x01)( O/ O4 f6 M" x5 ]# R
        {
/ s. ~' {  g' A, B6 n6 |4 E                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
' O  M6 o: j* f/ O3 Y3 D% A- O$ n; l9 @                        lengthrx++;
+ H; [* L1 J# k: V0 f                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
' W9 o* O5 K" K0 ]                        {
( h$ |7 S5 M3 Z6 h                                RecState=0x01;0 W0 Y* C1 y9 w" s- v  a6 r0 a: |2 Q  @
                        }
- z9 M$ l: p4 M: Z         }
( A! A: [" p3 d8 m
4 n/ L' m; @9 t- J/ V9 G     }
1 f, Q0 x3 r( b0 r6 R9 J8 d: s0 S. _* f' M( _: E/ e. \# o' P
    // 接收错误
# k4 \$ Q8 X$ T  b    if(UART_INTID_RX_LINE_STAT == int_id)
$ P7 e' F0 w. a& w0 s9 j    {
1 E. }4 E" }0 ?2 o        while(UARTRxErrorGet(SOC_UART_0_REGS))
/ E; s$ p! h, u; Q: A7 e0 ^        {
: S" c, B( D6 Q2 @% w3 Z; A% B3 S            // 从 RBR 读一个字节: p2 G, c/ I( _2 j4 T* U
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 M4 Z7 e5 v* B$ M" F( m; n3 A        }
3 I& v- ~& R$ }2 f5 B    }+ ^$ [& R. S9 P# p1 G- M
! `# d. q# p6 G$ z
    return;9 V# Y6 V& ^& V% L
}
& ^& f( e+ ^2 _* u; r( j! D6 ?
% E- d* a1 l; c* ~0 D0 y( D8 A" u
  [3 ^0 x# d: ?
, c* z, }1 Z7 o6 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2018

积分

创龙

Rank: 8Rank: 8

积分
2018
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
: a5 s. K  V9 N, k- Z
2 q2 C1 R- L$ y0 {$ s7 jUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
4 m* a$ z, `  v9 G5 X6 p
. ^7 `: R- E/ _5 |% B要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
8 T: N# L  `& `* u& \8 khi,% a! T3 A3 I! s3 Z+ `! J/ J. @1 U
# V, Y2 }7 V& v$ {
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
4 Z* c! `1 ^. t" I% K
void main (void)
& t+ o' n! a% P9 Y* d$ p{0 C* [7 x# o6 I
        int i,j;
  }" G9 j3 A5 p' S3 R. m1 l2 Z6 \    char *str_buf;
/ U( ^* D+ q$ V! n    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];  M) d# s$ q* O" b% r) j" g* c
        double est_L_b_=0;" I4 E0 J% F! x# a# A7 f1 T$ {
        double est_lambda_b_=0;, o% Q4 P9 B) Q! [& [7 V2 Z( c
        double eul_[3][1]={0};+ C3 N$ O" O+ \4 Y7 _+ W' u  G
        double est_v_eb_e_[3][1]={0};4 n& v. B9 u- B: `9 K
        double est_C_b_e_[3][3]={0};3 C& `1 A( ~' B8 Q  r
    char *qm;
2 c: B% b. E/ F7 e3 G1 i4 ]    char rec[70];  ~6 b/ U' b& O3 a, G  Z: Q
        double L_b=0;0 ^8 t; D3 I# o- L5 Y
        double lambda_b=0;# j) v: h* w. X
        double h_b=0;2 B" M; e/ O$ I# m# J" l) [
        double rate;8 h5 [; l1 L/ Y

  ^& F  q! u0 x9 n" t) \: C) A; i2 @) H
        // 外设使能配置
+ F' _0 ~0 c+ g( h6 \( `% M        PSCInit();
+ q2 ^0 E/ ]) n4 q' R+ |! ^' q, e5 Y3 S/ N( m+ V# b; z2 [0 B  \
        AppInit();
) j2 |( S1 j! K$ b* N7 J7 \/ h
2 z/ o2 I$ V' z1 G6 Y; l( E7 X8 Z        // UART 初始化4 F# S( o. }0 q; N8 B! G, h( b
        UARTInit();
* q0 C; v, J* @4 _- ]% Y7 @+ D8 c2 P9 h) }9 P3 s% T  E
        // UART 中断初始化
& i5 a  s! c1 y5 V' Y        UARTInterruptInit();) H2 U' v4 @8 ~4 g* x- t1 B% r
5 z6 n' J" v* v( B  k6 R+ ^
    evtRcvd = 0;
0 G; B  ^# s7 k9 S# \    RecState=0;
. V/ M9 K4 o8 V5 Y5 X5 M    /* Initialize */4 _$ b/ J4 O$ W# u+ N+ A
' L0 M8 D# }- M* \/ X3 k) {9 q5 G
    printf("DSP subsystem ready\n");6 b8 S7 x9 l0 F& y$ D- L

1 @/ z, y: }" l! R3 K8 M    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
) d9 ?7 ~" h2 S- g1 W; u+ o  `
3 E0 N( m' A0 K+ Gfor(;;)
& t9 r8 |. e: _0 Z{
8 o( V7 e5 `: H9 i        if((RecState&0x01)!=0)
! o2 D- t( I4 E+ |5 O. {) P2 N        {2 i( Z0 ^4 N3 X+ H8 J
                printf("liuzhenxing\n");' r' A: a6 C% D  S; ~9 H9 ]
        }
" a1 r$ i' x( @& l: e3 a6 c. a        else  \7 _" g) Q. I
        {
0 \3 c" L+ ]/ F  C2 r5 [/ F       wait_event();
# K2 S3 i) X" @. {$ Q4 @' v; f5 Y4 M$ Y; _  _" l. X
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针: X  m4 ^7 W( @7 k, L( ^

& t3 g& W1 g1 Q* R7 m/ C6 m           for(i=0;i<60;i++)" i; \$ L& `6 f) j! d1 y
           {- a6 c% M# {, H4 M# J
                    rec=*qm;
8 ~: a7 s. G4 b3 Q                    qm++;
$ B" b- H/ L% W           }3 w8 K) M  X# M

; d  B3 e! j8 q% h. o+ M3 f           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
8 W% y8 ^9 x5 g1 A+ {+ @) m) D, p; G# s9 W4 ~) S
           L_b=L_b_receive_double;) S# O' G9 D, @
           lambda_b=lambda_b_receive_double;9 w$ y7 j' H; Z* Z+ P
           h_b=h_b_receive_double;
' `- m; K9 O! p4 W           for(i=0;i<3;i++)9 ]0 m! N+ [; D9 U, f0 S: n
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];- u% C, Q& D6 H# L' e6 A5 g
           for(i=0;i<3;i++)
! e4 F- r7 r4 Q' W  s/ M5 P                    for(j=0;j<3;j++)1 Z$ m# [/ {6 e" U" l
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];+ Q3 _6 {, l) q/ D9 `8 w. G- |9 c( t' h* Z6 b
5 [0 `: j6 B9 L
                printf("L=%lf\n",L_b);2 ?" I9 ^0 z6 M9 {: D. M' z
                printf("lambda=%lf\n",lambda_b);8 m2 _9 t" U  c: {2 d1 h: h
                printf("h=%lf\n",h_b);2 r% e! M5 o8 d
5 }0 f6 x4 W& d1 P( H
                for (i=0;i<3;i++)/ p2 u) x7 R, B8 h! b" U6 x. H
                        printf("%lf\n",est_v_eb_e_[0]);' E+ L4 ?% p0 S
                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]);
) E0 k! u# x1 A2 a                printf("rate=%lf\n",rate);
1 X% e& s; p5 q* W! |4 ]5 J% q; I8 W3 Z! z+ r  x
                CTM_to_Euler(est_C_b_e_,eul_);
$ R' J# B$ P$ D+ b9 k! E# W                for (i=0;i<3;i++)5 ~7 u9 F' S/ N& {( Z7 N7 F( L
                        printf("%lf\n",eul_[0]);+ }/ O1 O3 q. @0 t
                printf("end************************\n\n\n");
/ b) O: y! Z( d, y# m# [) \
/ d! A# t$ S* P1 K2 X+ F! ^                /**********************************************************************/0 q' b1 W# a' B' L7 d* t/ R
% H6 m5 Y8 X& m5 I2 w: \* p: o
            char flag[4];
( I5 y2 C3 o% E+ y+ A' l
8 V7 }; v' f* x1 \( w, y5 R  I            flag[3]=0x00;
* C/ h3 F4 D' O9 n            flag[2]=0x00;
1 M" f% n8 ^: Z5 j9 z  ^$ h            flag[1]=0x00;# v( M* X7 Y- q$ P
            flag[0]=0x01;
# Y3 F; p" o8 a+ F) j, W7 z# z* {1 S. s  r4 ?2 Z7 g
    /* Allocate I/O buffer and init with string */
9 Y* o! t7 O4 C    str_buf = (char *) malloc(80);/ @  f- U  K+ m: b( c4 H
    str_buf =flag;
- P$ O& v# }' p, J# A: j$ p3 a; b* L% l. J4 ~+ a: M
    /* Send buffer to remote CPU */
+ Y" h8 d2 F+ _8 {% Q6 ^( t    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
! S9 {& ~3 J. b; i9 a) }
' N* T/ W& Y; J% p, p' j0 N    printf((char *) myPayload);7 u/ @( i$ w% x& x$ `% P
        }5 R+ S" j1 a) Z
}* G) w- M: I' w  e

) J) N2 x* O2 O6 C$ `# u  Z& `    WAIT_HERE;
) a1 {3 \- S9 \5 U- l! V) O}/ z: }+ }# H/ U8 G" 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 | 只看该作者
我说一下调试的情况:
1 b" `# k0 {0 P; N我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。' Z% m) u. i4 I* Q
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2018

积分

创龙

Rank: 8Rank: 8

积分
2018
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: P  f1 f1 b( k1 r0 h5 Y$ [
syslink 的初始化是否成功,notify 通信是否正常了?

3 Q' S6 C' s8 C; D9 I双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54( {8 _4 p& k' M3 ?5 X: s$ W3 m
syslink 的初始化是否成功,notify 通信是否正常了?

$ M& M( Z. A9 E; ~我用的是裸机开发的双核通信,用的是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
0 A$ ?6 c0 v" [0 k5 Z0 ^; C. M我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

5 w6 l. m8 w. r: |; F7 g3 t9 B建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 14:26 , Processed in 0.059255 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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