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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
& g% d/ y$ @6 Z+ `我是在DSP初始化这不太明白。
" m7 Z5 K  a2 D, Z初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
+ s5 {% O' X1 v* o+ j, g9 L0 ]& |% A* v% j3 G' I
3 c! C& }" h. m4 l2 ~8 e6 q$ q
首先        PSCInit();//UART0使能
8 f8 T. [, u: k9 K' z1 Pvoid PSCInit(void)5 w  o& N. o0 c: G
{% q: u, g4 R# K
        // 对相应外设模块的使能也可以在 BootLoader 中完成. x% O5 W7 x2 n; ]" r
    // 使能 UART0 模块
4 g: A2 {& `- T3 ^+ e: o+ d    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);% F+ j! E& D7 r$ H" k6 h- P7 K7 @
}1 E$ c/ U# A$ [* c$ ^: Y1 A
) L' p2 M! E2 c0 g

1 Y; \# g. |; |% H然后是 双核通信的初始化           AppInit();
, H# [8 Y& i4 `void AppInit(void)' \, b7 \) c+ v" f" D# T
{& F1 J) }$ T0 R. F8 g, w
    /* Structure to initialize IPC (see Ipc.h for definitions) */1 ^! g5 X  D8 U, u! Z9 ^
    struct IPC_cfg ipcCfg = {7 o7 J. ]) X; \/ F/ W8 }3 x: F
            IPC_DSP0,             /* local processor Id */8 o" j: ^# ^) u4 y+ [: e% D
            IPC_ARM_HOST,         /* remote processor Id */
4 W& |, U2 Y- a0 m0 O            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
& e( k4 Y; D* d1 b7 K1 A# A: h            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
( U9 I0 ?' J5 R6 T0 c            NUM_MAX_EVENT,        /* maximum number of events to be created */) D: q2 d! ?5 c! _! H4 u/ @: h
            &ipcPvMemDsp,         /* local side private IPC memory */  V1 ~( n% h' z
            &ipcPvMemArm          /* remote side private IPC memory */0 K1 L. ?# {* D) o
    };. d3 L' e+ v. _
    IntDSPINTCInit();
! n+ X3 }+ k/ b. d' K6 e- I    IPC_init(&ipcCfg);
# C4 K5 d: ~+ T1 e7 x1 j    IPC_intRegister(C674X_MASK_INT5);
2 W) W( J- [1 w# w. d    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
9 @5 E9 z3 h# M* f; I* O- B, i0 f/ @, g
    /*  Enabling interrupts for DSP C674x CPU */
* w5 m. ?2 {6 I% Z9 c$ y; m2 J    IntGlobalEnable();        /* Enable C674x global interrupt */. p  a9 c; j3 L/ a  y$ r
    iAssert (Notify_start()); /* This will enable IPC interrupt */$ s7 ?: E1 P7 R. D4 s
}
$ B# |' J1 T1 x" s/ P
' S$ Q, I. X3 r+ `. H+ \
然后是  
$ a! i8 l4 o; c$ [0 p: _            // UART 初始化0 Q- {$ G# X' ?7 O6 H) p& v3 q. s
            UARTInit();* e: g" w% x1 p3 h

+ }1 Z5 K0 \4 S  N- \) z            // UART 中断初始化( B( P6 C* M6 z7 \5 M4 S! m) c8 _1 E
            UARTInterruptInit();
1 M" _% O" H: K- x! F/ s

  V  c; x8 I3 K  O: ~$ Q2 p0 c# E* v# U
void UARTInit(void), C# Y: X0 l8 ?$ a1 w
{
; `$ K2 E$ a# [9 h6 p, ^        // 配置 UART0 参数' X. d' y* F& a
        // 波特率 115200 数据位 8 停止位 1 无校验位+ V# \# f5 Q7 P8 H, `
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,7 Y, W, u/ X8 i5 w! \5 q
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);$ r5 }& S. t8 I/ O9 K. H
        // 使能 UART0
5 j) n) ^. y9 ^' O: ]' F        UARTEnable(SOC_UART_0_REGS);
+ g& W4 T  j2 G4 S$ r
: c% W3 H$ D  E. T. K9 a  a    // 使能接收 / 发送 FIFO" [( o& W9 t6 U, q1 @& ?
//    UARTFIFOEnable(SOC_UART_0_REGS);
5 T3 x4 N) s1 ~! d4 \! x4 A
. k$ y! ~5 [9 o; L        UARTFIFODisable(SOC_UART_0_REGS);- ?# h" Q% w+ d2 e) Z, @

' K( W$ t: f6 v/ z8 }+ C+ ~2 c' f    // 设置 FIFO 级别     接收FIFO的级别
) B  N* G+ C3 {4 V# H) |//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);. M6 x1 W; y% N4 {, k
}! o7 U. M* I: ]$ `; Y; \
3 ?2 k0 n  Y' _2 W) O* K+ b

3 Q: @4 P0 M( O; J, Nvoid UARTInterruptInit(void)% s/ _; {8 @( d8 X' a, [+ \1 ?+ {
{
# ~- u3 \! F# W8 u9 g& H2 C4 W        IntRegister(C674X_MASK_INT4, UARTIsr);
8 M4 `7 z0 j! S8 k3 L$ f        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
/ V/ w! Z& \- W% [  v8 J) L- g. m        IntEnable(C674X_MASK_INT4);
; `9 j6 M  U: s) v+ H4 |
0 p' d7 ^" o4 z2 a( h5 n        // 使能中断% c0 U; n' C" I8 B# M% Z& r
        unsigned int intFlags = 0;: w' `+ ~9 T; E8 r* E0 A+ S
    intFlags |= (UART_INT_LINE_STAT  |  \8 S  q8 U& \+ J7 `2 _2 \
                 UART_INT_TX_EMPTY |    \
$ K1 D) k6 D5 g                 UART_INT_RXDATA_CTI);
7 V7 P$ m$ C7 g# |, z    UARTIntEnable(SOC_UART_0_REGS, intFlags);: e- ?5 F) q$ I" D
}+ \& k1 f) w9 q4 c, N- \7 d
  `! ]9 r& v9 R" u0 E

6 S2 S( J  p9 Vvoid UARTIsr(). i1 ]4 }8 W- }% I! B. u
{
( `5 b& V2 k* k! ^% d: e    static unsigned int length = sizeof(txArray);
3 O! c3 ]9 R3 T* z1 q9 e2 \) T    static unsigned int count = 0;
3 N. a/ K9 t  o* \; G! h    unsigned int int_id = 0;$ `) h) M( @' T( A$ v5 Z3 W
2 |$ c3 \, P4 C- K/ E
/ A. r% V2 e+ C& p" W& x
: u+ a3 G$ b3 p) a" ?
    // 确定中断源
" p/ M# O4 K& i+ ^2 A% M" D+ {/ W9 Y: h* {    int_id = UARTIntStatus(SOC_UART_0_REGS);, I0 v0 t! \3 z; P. v' N0 |( _
" y3 ^' h) ~4 e) x
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
1 T3 s; M2 L) k4 _
) F0 c& _9 h$ S7 }) V" D. b. H3 e; h& a* O! z
    // 清除 UART2 系统中断, j" o# Z: ^, d' a
    IntEventClear(SYS_INT_UART0_INT);# E# N9 S" M8 Q' h$ e! m

- N. h  J: {5 W( Y9 q# i    // 发送中断9 X7 {1 S0 d" }! x0 K
    if(UART_INTID_TX_EMPTY == int_id)# a$ s5 K; I: \6 C0 k8 G  s) D/ Y
    {6 r/ k* k* r6 o+ f
        if(0 < length)4 E+ I' H- m. w# L
        {
* j% d3 K) C* p  z( |  R: j            // 写一个字节到 THR8 O% y9 `+ j% _7 Z2 Y+ e; M5 ^9 |
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);; E4 v% E' m0 U' \* {5 |4 i" N+ S
            length--;9 K$ V$ S# G1 R0 V" t: D+ }
            count++;7 Y- N  Y7 s( {
        }6 K% V2 Q9 R! k) ]" s) e
        if(0 == length)  X2 h' }7 {! E  I7 E& u
        {& Y* Z# Z" [: x' p# `$ E
            // 禁用发送中断6 }# y& L3 N+ V; `9 Y$ v8 j+ D8 f" R
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
9 F* W  Z! y" A7 S" H9 J        }
8 L1 L6 w: J! s0 c% n/ ?     }
( e; v$ b( }; f5 e" R+ \
  u2 Z! j% |8 s! }- a; k' l    // 接收中断, j2 K% c4 |- U
    if(UART_INTID_RX_DATA == int_id)
8 c% `, P8 F( D8 o% G, O9 A    {# y, d* d! m. Q
        if(status_a0==0)
  @, E7 V% v" s) H- A/ Z4 f2 ?        {' N6 H1 _3 w) a* h  l5 }) g
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);  m5 p) t: Z- y. d9 B& W
                if(a[0]=='#')
! \$ S8 R" e4 B5 k- e                {
4 @6 B' ?1 W# W! W# M. y9 }# q                        status_a0=0x01;
/ S- O7 u  O3 [7 n                        status_a1=0x01;
2 J/ I) L4 u3 K& U- F% e5 Q                }
4 B3 f& E. A/ U        }; t+ F; }2 T$ m# x; z
        if(status_a1==0x01)7 @9 D+ _! h% ~1 _
        {
; A. }  N! U9 D* ]1 P5 h                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);- M( y# o+ X+ x9 \3 F( k7 v
                if(a[1]=='R')
$ J. [7 P2 ?) S- G9 H' e  a2 p                {+ w0 A- a9 [( D2 ~
                        status_a1=0;
4 F- S& a1 V1 g% Z6 I1 D                        status_a2=0x01;
0 o" c$ Y* w: i( Y8 x. o  r$ N                }
  \7 v. E7 L, y3 U4 G5 z        }
$ Q4 i1 k+ n( l        if(status_a2==0x01)
+ @; o, X3 G$ v* s0 Z4 i        {
6 i* a: j" X) F; U                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* \! g8 e" }, y. |
                if(a[2]=='A')9 x( C9 \8 o( x8 v3 q' [9 d
                {
, I; U4 }: W9 g: g                        status_a2=0;
3 r9 S4 j4 u1 w; V8 j                        status_a3=0x01;0 }; _3 t) [3 g7 Y
                }: j) J1 u5 H* g4 Y  m9 z! w; e
        }
3 l3 p2 N# R: |2 D        if(status_a3==0x01)8 Y+ Q7 t+ ]$ x/ ]% l' E
        {6 G- B5 Z* b( j
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
9 i: \5 Y% ]0 k. a/ N                if(a[3]=='N'), B$ j. u8 N5 b
                {
: [1 X0 j! z  n% w- X  {                        status_a3=0;
0 Y- D9 W8 b$ o4 ^1 x7 M# U  U                        status_a4=0x01;- Y! Y1 I3 |4 z' k' H
                }! n2 ~4 q. q6 s& Z# P% w
        }
4 o& ^, K6 ]$ V* @        if(status_a4==0x01)
! s* `& X. s2 Z        {7 O7 |% r! c0 Q2 M8 S9 m2 B
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);- V% J/ Y- ?$ b
                if(a[4]=='G')" z+ b2 @/ r  l1 n
                {# R& O; S  H0 Z3 q4 J9 q+ `1 O3 a
                        status_a4=0;4 h& b6 ]3 j- A; V8 ~
                        status_a5=0x01;( x. S3 ~1 s! x+ O0 X/ a" s
                }
0 R. L7 y4 u5 a+ _' K2 c  Y        }4 g% j9 A3 ~6 h- }6 L: X
        if(status_a5==0x01)* p2 t- j+ F) h# `2 Q
        {
$ G- F& s% _) W5 k9 f* z                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
* I% L4 A' \4 C# ~% \, a                if(a[5]=='E')
7 ~' ?* Y9 k% v9 {/ K: I  r                {- f/ ]$ p( a- p2 Z- K
                        status_a5=0;
0 {" D0 u( X0 N0 z                        status_OK=0x01;
! f+ ~/ U$ C% U1 i                }
3 O8 x. S% r" O( r6 D+ m        }
/ K3 `! r) n/ X3 \8 Q            if(status_OK==0x01)8 q+ T, L9 \  q4 K. W
        {
9 }2 w* q! ]) J                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
# [& r1 e) m0 R9 b1 j                        lengthrx++;
8 h: W- u: C2 p* |9 S9 Y                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
4 P7 Z8 V; F! J( l. W2 y                        {
( y( t, M$ E. k8 \, j                                RecState=0x01;8 H2 A5 k( _4 d5 a  U) a) |
                        }
; s3 |, ]6 b6 u, ?+ V. E         }
2 H" Q3 n& b. A0 g, a
. e, ?9 n6 N( T% E( F; r7 K; E     }
2 @9 Q9 }7 T; V. c7 ^$ {) C/ h2 d5 b
    // 接收错误5 z: z5 ]5 p* E; n& Q  H
    if(UART_INTID_RX_LINE_STAT == int_id)  I/ L: \; v$ v, L
    {
" j' P; L8 w) B& }! B( t8 p- ?1 M3 O        while(UARTRxErrorGet(SOC_UART_0_REGS)): |% K3 ]2 J- k, D9 }# x
        {+ A+ y1 H, |: G- B1 S
            // 从 RBR 读一个字节
. }. @% |* }+ p            UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ p4 P( T+ ^# S4 D/ t        }, K" B: H( e# R& |+ l
    }* T: w* Q* h2 k1 e
$ i* Z3 |; W9 A. c) _& u$ o
    return;2 e$ G: Z) F: ~" K5 e9 ~
}
& E0 A: c- W8 ]8 |4 c- {8 R# A3 j, ~& z8 ^- }7 X% O

& v5 K+ J, t8 k8 N1 f
6 A8 u8 Z5 G" k' [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2138

积分

创龙

Rank: 8Rank: 8

积分
2138
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
( m# m. a. g8 }, A0 P% \$ o& Q" I) P' ~5 `. n
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
; O* E. D$ n" @. Z) \* o0 |* B7 n4 @  l2 _. q6 J
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:135 E8 _. K# w7 r
hi,- U1 U% v/ X& F4 o  F; }

! `1 f. X% }: m, }$ HUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

+ p7 d# ~: x' t& bvoid main (void)' C6 r% b. S* `8 A; v1 }# i4 N
{" D8 z! [. Y, W/ W+ r$ ?
        int i,j;
2 H4 o0 L4 G/ x; E1 S; A1 p$ ]+ Z4 d    char *str_buf;
+ b5 h/ g) w$ I1 I( j, E* b    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
+ h7 J9 w; }$ ?# e+ `, E5 J        double est_L_b_=0;
1 Q. k* _7 }5 \        double est_lambda_b_=0;8 |' ]: }3 j9 L( V
        double eul_[3][1]={0};
) n4 Y! n; Y0 W  _7 y* @& K, B1 ]        double est_v_eb_e_[3][1]={0};0 T; k% [$ ?! s/ t! l. |# Y" b8 g
        double est_C_b_e_[3][3]={0};
  ]+ l' r5 t! K* \    char *qm;& |; x) @" b% ~* H/ q% C' ]
    char rec[70];
1 a' ?  L1 h/ n        double L_b=0;2 n8 u0 M0 B" @, u
        double lambda_b=0;% s; C- o# ^+ `$ I. ~
        double h_b=0;" h. @/ }5 v7 e# Y5 n7 d
        double rate;+ [& D' m) j8 m. o- M3 t
  s! M3 \; V5 p* N0 ?3 h
+ A6 A. s7 l7 s
        // 外设使能配置- V9 Y1 O# |! g9 v6 K4 l1 ?0 h
        PSCInit();
/ }* Z+ h5 L, Q3 ^+ J
7 e; ~2 Y- U" _' H6 |        AppInit();
- f$ a$ K, u9 D* D) [
' }# b3 t' N" W' T" }9 D        // UART 初始化8 K+ P+ ?% H/ p) i
        UARTInit();
. Y. F$ ~3 H5 \7 Y
& |( Q6 p) s9 Y        // UART 中断初始化
7 u) `# o( {) T9 G# Q' Y% f+ T        UARTInterruptInit();
8 M5 ^, x, N; C. }/ p& ~5 R# T
    evtRcvd = 0;6 `: e: f# Q. `. O- V* L& C
    RecState=0;! U* ], H! n6 H' w
    /* Initialize */
6 v4 P. H1 ~  {( A# s; X
, [; r) B, R, }! A& p    printf("DSP subsystem ready\n");; z* M; a  d0 I
4 h; z6 i4 v6 X% k
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));# F: v3 |7 v# L  X# Z
" D9 y9 L* f! N
for(;;)8 |( f; t2 E# O$ v5 Z3 R
{
6 V! [3 }9 m) ]8 d/ q: H        if((RecState&0x01)!=0)2 Y- B9 @: D: p+ n
        {
: X) t+ A7 M& \7 _% T! N" \                printf("liuzhenxing\n");$ E" ^6 ?: h# J6 h1 _  Q4 H! S
        }
) a2 c$ _. g: M        else
- O, c" U8 t. y9 j8 W& r: U        {
" l% ]! e9 R$ n7 X: a7 j2 M       wait_event();7 A+ _/ B  _: O& k; h( G/ ]5 m

0 n% r. ^% U/ d           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
# B$ \$ i+ K6 O  ]$ L) s3 \+ U, n
           for(i=0;i<60;i++)" @4 c! ]9 r- j8 m! J' k0 o
           {* P) D2 G& s; @% V+ j3 z0 x* f3 D
                    rec=*qm;
5 ?; x- M; G" B$ U& }) u+ a                    qm++;' K  `3 U, p0 b
           }
1 }1 u7 C& x4 u. p4 h1 J/ ~3 a6 p% h# D7 a* J
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
" V2 L: e% V, }8 O
  m$ C, x  Y4 p7 s* D5 D9 F           L_b=L_b_receive_double;) v& I5 S0 _0 r# ~1 p* C- N
           lambda_b=lambda_b_receive_double;+ f1 f! w1 p) u* l0 {/ ?( l
           h_b=h_b_receive_double;
% \$ m6 ~( c" c1 g, B           for(i=0;i<3;i++)
& B+ e$ m7 `9 Y, i7 ?/ b/ G                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
4 T# A" e9 C: m4 B, K% d           for(i=0;i<3;i++)9 ^" b& k5 o2 I7 K4 ^
                    for(j=0;j<3;j++)7 x) j' y4 E! ?# N$ C7 R
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
- {+ c" N. }9 w" K  a- m) w9 ?3 K7 W9 Q( I" @- H9 M# `6 {2 B
                printf("L=%lf\n",L_b);! i4 @4 V/ w. l
                printf("lambda=%lf\n",lambda_b);
) v5 e4 \% \) x- a5 g* o                printf("h=%lf\n",h_b);$ \% K$ S% a9 P' t0 D& n1 p
$ r+ \2 q& n5 Y  M& W. d2 Q
                for (i=0;i<3;i++)
& c6 l* W: j8 d# q6 a! C) _; ?: {; W                        printf("%lf\n",est_v_eb_e_[0]);
/ {: L! [' G# w& ?" [% a                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]);
4 q$ g8 r& y; e, v5 |: O( K                printf("rate=%lf\n",rate);
2 t. I- E( G& `0 E6 ?5 Z" W4 _* u( q, ~1 ?
                CTM_to_Euler(est_C_b_e_,eul_);
+ K: W% j' A& [7 p/ q                for (i=0;i<3;i++)
! n! i+ v' ^3 c# X6 Z                        printf("%lf\n",eul_[0]);0 a/ Q# F" D' T% `
                printf("end************************\n\n\n");
! V, j" M8 j( [" w( i- A  X' h8 Q; W0 I2 o3 A  k
                /**********************************************************************/* ]; o# m# g4 C; {8 g/ T

2 [. g/ X2 o# x0 ?8 V" @* A9 D& G            char flag[4];& c: k1 ~5 v$ p2 o
7 z6 Z, ?" v) U2 {, M' P6 q
            flag[3]=0x00;& @# g, ]  E: @+ j4 `
            flag[2]=0x00;8 _! c+ o7 G0 O
            flag[1]=0x00;  U& f9 H, j9 G
            flag[0]=0x01;
0 e; g& c2 c1 Y" L  X# U
! D/ z  \9 F7 F    /* Allocate I/O buffer and init with string */
% `$ t5 l. ?" f" \    str_buf = (char *) malloc(80);  A4 m% \5 U0 v  A
    str_buf =flag;
/ |5 u. F/ @4 N$ C5 Q
% C5 P" [1 P  V7 }    /* Send buffer to remote CPU */' m' Z5 `3 K. N
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));1 H+ P% E3 u$ n/ L0 p

( J. e$ Q: k, C    printf((char *) myPayload);
. V- l( T! Y0 M; F        }
; D+ F0 ^2 S3 X8 `0 j& ?3 V}0 Q3 z( Q; q& ^

7 a2 C, r: `7 v. a. [; h    WAIT_HERE;
* D6 m, ]# p: E" r9 M5 S" ^0 w}
3 _5 e6 E8 b/ C3 j! |
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
% W. k  I5 ]8 q, o! I# x5 B5 F我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
) H/ l; E; ~1 ^8 y2 Q% }然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2138

积分

创龙

Rank: 8Rank: 8

积分
2138
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
3 u$ a7 {4 Z1 u" g, Wsyslink 的初始化是否成功,notify 通信是否正常了?

: Z- l7 z" C; B: s0 A  C# n# b( h/ T双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54( o) @+ i5 J  H5 [5 \
syslink 的初始化是否成功,notify 通信是否正常了?
' i& `+ \5 L, A( 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
, M/ G1 c3 Q  V2 E  z& d0 L我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
8 P6 k; J4 f5 a
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 06:12 , Processed in 0.049358 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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