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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
+ q; ?& k& p" ~) x9 ?# f5 R我是在DSP初始化这不太明白。
/ W: `0 n- H3 Y* B初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
4 _8 b3 {9 N% v
7 U0 I8 N/ a8 g6 m5 t
3 o$ M, S" T& @+ M/ j1 ?) f首先        PSCInit();//UART0使能* R2 E% G$ X5 J/ W
void PSCInit(void)
* ^* _, i! R' @: G/ S{
3 M, g8 S! m5 @        // 对相应外设模块的使能也可以在 BootLoader 中完成9 |% N1 ]: h& _( I' S
    // 使能 UART0 模块
: v1 S2 A' u0 R& a. R- n    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
1 S2 i2 d7 f7 f! A; o# `0 G}
& N- n- g8 ?" D" W
: M* U$ M# r- @8 Q

; P# n, u/ u1 _! j然后是 双核通信的初始化           AppInit();
, n! ]% Q& @( y; l1 Rvoid AppInit(void)1 V0 ~  @! }1 p
{/ X* T* N1 k4 ]% P6 ?1 i
    /* Structure to initialize IPC (see Ipc.h for definitions) */
3 d: H5 v- F6 P/ h- s    struct IPC_cfg ipcCfg = {
7 x/ M6 C3 p4 a9 u7 f$ F0 b  g            IPC_DSP0,             /* local processor Id */( K3 d% F% p1 f
            IPC_ARM_HOST,         /* remote processor Id */
/ b5 w6 n* d2 `4 O            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
: j) Q1 s. ?7 x6 r4 G/ g            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
) L$ R+ o; |# A3 K+ i  I            NUM_MAX_EVENT,        /* maximum number of events to be created */! l% u$ g9 j' S" f- U  {! U
            &ipcPvMemDsp,         /* local side private IPC memory */
4 q5 d5 z( _1 p5 |* G. p2 [            &ipcPvMemArm          /* remote side private IPC memory */
$ L8 Q3 l1 B, b7 S# A  x    };% C+ V) ?* t8 R& \; E  y
    IntDSPINTCInit();, B' v* o" q. h
    IPC_init(&ipcCfg);
5 E( O' N6 o! F0 }    IPC_intRegister(C674X_MASK_INT5);3 ^" c+ h8 e2 @0 R/ V
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));" B; J6 \: K0 d/ Z; Z
+ m/ e1 s2 }- Q/ x7 S
    /*  Enabling interrupts for DSP C674x CPU */! `$ w. I! |* B  q1 ]+ J
    IntGlobalEnable();        /* Enable C674x global interrupt */# A; g8 `/ `# n4 S6 w
    iAssert (Notify_start()); /* This will enable IPC interrupt */" ^/ r* V8 G8 I+ h4 J8 P7 n! k
}
6 j1 D2 K. T/ R5 _
) w5 R3 H0 `$ |# C" i( _
然后是  4 ]( N- m% y% `# j* r
            // UART 初始化/ }; a. Y; Z& B$ L1 Y- @& q
            UARTInit();4 E- N1 q: B1 x3 _6 \

8 O  O( ~" s( [2 z! v# i9 E            // UART 中断初始化
. |* V6 I/ l  H' y# I            UARTInterruptInit();
3 U# r4 Y7 y8 i8 s% \& M

( T. q4 k  y, S0 `/ p; S- X
) Z% b; I! x$ E+ l$ bvoid UARTInit(void)
  I% z' C8 q# C- t- U, |{
- K5 _4 C# X% x' u- M5 g) t* {        // 配置 UART0 参数
+ J! g# e2 ^& J* Y- M        // 波特率 115200 数据位 8 停止位 1 无校验位
0 F5 w5 `; [8 u1 S8 ?# q    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
5 d0 G3 d; k: v$ B                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
# y3 |$ B  k: K4 K$ x        // 使能 UART0
9 Z' c8 P  ]1 w' E1 y        UARTEnable(SOC_UART_0_REGS);" }6 @' u1 O# X& S/ X$ d$ c5 x4 f

& e  |' E6 F9 X- q  t7 J; g    // 使能接收 / 发送 FIFO
% ?6 M  S0 a& {) Y, V//    UARTFIFOEnable(SOC_UART_0_REGS);5 t& V: b+ W' Q' t

6 B# e5 K' X; O0 S6 T+ J& m1 u        UARTFIFODisable(SOC_UART_0_REGS);% S9 g% A, ^& p$ I
6 T* H2 a! q* c& Y4 `" W
    // 设置 FIFO 级别     接收FIFO的级别
' K% k+ [$ v  q7 ~4 h//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);. K$ Z. ^6 H% S" H+ p( W
}0 o9 u- {: y& l5 a
# M/ T, w, t- O5 [  I
+ W  x4 l* a; v1 T7 X
void UARTInterruptInit(void)0 ~# M1 R5 k0 X) z9 T
{
3 r: I, ]. X* X: |, q6 u        IntRegister(C674X_MASK_INT4, UARTIsr);
8 C$ }5 G0 d1 l9 P! }$ P        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
0 G; ]+ w. V9 B- G+ k3 F        IntEnable(C674X_MASK_INT4);
# `8 ?. S' f: [( M) v$ x
9 W5 _* l. A5 t$ o4 y/ f% z6 |        // 使能中断
" Y+ y4 d! S$ d) _        unsigned int intFlags = 0;0 s* ~8 R6 ~, |* B7 [3 G- w
    intFlags |= (UART_INT_LINE_STAT  |  \
0 }7 l& r6 X; h. N4 G2 v4 I) J                 UART_INT_TX_EMPTY |    \
* \8 {; o- B; y6 Q0 w                 UART_INT_RXDATA_CTI);1 B9 u' P2 w4 F( E8 o0 ~! \2 `7 S
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
% j& d1 \; r  }1 t" y7 M- U}
! s3 @. @$ q; @6 T; n
, _5 h' Z4 ]. x5 q
$ [" G; v: X! M0 u
void UARTIsr()
" i( g- R0 ~. r7 [% o{# O+ j- t/ ?! B9 l- a" E
    static unsigned int length = sizeof(txArray);
; T) A" n3 o6 z1 U+ j+ P    static unsigned int count = 0;
. c3 t* p% ~4 a6 A    unsigned int int_id = 0;9 g* j) l# p2 E" v! A% n
/ s# M& n+ x  q2 F- {. s

' w! O1 X. F4 i2 E8 K3 {% M- J& s8 k) m0 ]4 s) C0 L" c: |
    // 确定中断源5 Z5 D% F/ m4 A5 }' ^
    int_id = UARTIntStatus(SOC_UART_0_REGS);
1 a3 {) P" r' }
2 f1 e0 D" z( F+ d8 `9 \    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。) j  G( o! h7 X
  I0 F5 Y/ P+ H
/ z8 \; F* v( R2 J; |$ t
    // 清除 UART2 系统中断
% A9 I) Y/ }# h8 Q) \    IntEventClear(SYS_INT_UART0_INT);
/ e1 i$ D. h6 T# {- j8 q4 P3 D# q5 t7 E
    // 发送中断& ^; `; c' H  i3 I3 O
    if(UART_INTID_TX_EMPTY == int_id)
" {" P( ]8 q: F    {
, l' f/ t  d0 x* C3 ?3 z- W7 `        if(0 < length), C  b6 K6 G6 k4 y! ~
        {+ r0 k7 [7 D1 C
            // 写一个字节到 THR
3 H  w4 ]8 m: S4 c            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
- F! r+ t1 n3 t+ A( \9 U            length--;/ M  ^* u) M* s, F" C. t
            count++;) b+ a) s) S- v* C$ m( \1 w
        }/ ~, u* A) E2 a1 {) D
        if(0 == length). b7 b1 F- C4 s; c  N" v0 }# u
        {0 a3 z1 l; }  x! i: }, e
            // 禁用发送中断- Y0 [8 C* T2 p2 T& }# `# ?% K
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
& R8 M4 K( z8 q2 x        }* `1 X3 ~6 Y* r: R! \
     }7 _' d6 N+ v; W3 V# ]$ B5 _
2 ^" e7 v! R. k$ ]. V% |5 d
    // 接收中断
, G4 @2 }3 f) r    if(UART_INTID_RX_DATA == int_id)3 m4 n) j2 Q, j
    {8 i" U7 K+ W) s: ^9 k
        if(status_a0==0)+ @2 m! r. u0 u. D" C4 @0 l
        {
% g) y0 F4 [/ E9 T  B; i                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);+ x% u1 u/ d% J5 a" s
                if(a[0]=='#')
( d- |, `! d$ v$ y                {
2 P/ g3 h+ ^4 }9 i- |* |, y                        status_a0=0x01;2 C1 T2 T6 c: K" K' d% [) x
                        status_a1=0x01;8 e3 B  d. j0 k5 A; U2 {% M1 K$ H# d
                }
, U+ b$ I# q+ \$ J0 }7 q/ j% |0 d        }8 n% C  z- W1 U6 r* I4 g
        if(status_a1==0x01). \& f$ i/ V) Q. @2 w" ~
        {' U  Q5 B# F& N( C3 ?" `' R
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
1 d2 K2 r, G* U1 }9 J                if(a[1]=='R')
% X4 q& X  H2 z, \9 O                {
. f8 R% S( g! ~4 n2 D% f3 K                        status_a1=0;* x" u& c6 }5 {' r8 |3 |5 Q3 s% P
                        status_a2=0x01;
& V$ z/ g, I6 i; G                }
6 i8 j" n. ^% A  v2 a2 s        }1 x7 K! z7 c- L' a( U* A
        if(status_a2==0x01)
: b" B) n% e  g% T8 I        {1 C& G, Q& t; ^0 T# D# }3 Z
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# r0 [& m& w7 Q2 r9 t+ ?7 _
                if(a[2]=='A')7 f! }- }" Z- k$ G7 M
                {
- c" y: j4 s% e3 V1 ?! j. R                        status_a2=0;
+ l0 J* f: o. I. i  Q5 p                        status_a3=0x01;
5 Y: u9 v: Z# c3 ]/ L) w9 |: d: `% M! s                }8 p) O7 T. g$ p) a- O
        }
, P( k, r3 i8 x0 _. Y4 ]4 P0 c        if(status_a3==0x01)0 S6 z; l' Y8 r# D
        {
3 ?6 n- e( z: _! w# v5 Q                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
" o- i7 Y2 b$ r9 e                if(a[3]=='N')( v5 O2 F5 G; h, \) w0 {
                {  \2 V# g- W. ?
                        status_a3=0;8 N* K* u" o: S9 n; H3 f
                        status_a4=0x01;9 H- g7 ?" v% m4 j+ t* \
                }; }; N+ D2 t& Y# X$ s
        }4 [4 u! c; U/ M  ?: ~
        if(status_a4==0x01)
4 n3 |: F6 E5 ]# M0 I: |; T        {
6 Z( W  h) D7 O: X% y. U$ b                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 Y  @5 g& ?' N/ w' L4 D& X' v                if(a[4]=='G')
$ z6 R. f  n1 t' l" h9 N                {
8 c1 X- M" B* B                        status_a4=0;0 f4 x7 h5 R( \; k& Z+ t8 c6 o
                        status_a5=0x01;, d0 M  _  v6 |2 m1 W: {
                }
* a; @9 a* G: z7 `0 ~  `% [9 A' B        }# X" K: a. |1 h) l7 N0 a) u
        if(status_a5==0x01)1 G1 q: D, L$ z0 X  Q/ A1 D
        {& N' ?6 @4 E6 ^' I5 d/ w4 E
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
; o, R3 c1 U$ p) a! p1 X                if(a[5]=='E')
, Y; m: W7 Z. @. W+ p% ?                {5 K! t) F" K5 c3 q/ p
                        status_a5=0;' S$ v* F  `( c. S! H: [
                        status_OK=0x01;
" l# f0 J4 Q, S; y" U/ C6 W) d; D: P                }
+ K: @3 Q# ^/ `# C        }
3 }. B% Y1 X' ^& v5 L# N2 e            if(status_OK==0x01), t7 a3 ~  ]  \$ ?* @5 Z  r/ V
        {% x" Q6 @% F3 V/ B
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" a. p, N  q0 P+ l" {
                        lengthrx++;
5 W7 M. Q: x* R7 a                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)6 J: r5 y8 E4 |1 M, O9 K
                        {
. n  z9 F1 h8 E0 l6 h' J                                RecState=0x01;
; O/ v8 F" T! D0 x/ c                        }2 o. i1 ^' _2 p, m: ^. v: J2 x" I
         }* O; v1 |: y4 r) K8 B
6 c; Y; M  m0 b% z# ]( w
     }
3 y2 s2 V# i3 ^  x" A; L" @* Z/ `( P
    // 接收错误
8 J# H8 @! u" P    if(UART_INTID_RX_LINE_STAT == int_id)9 M3 u. N: D8 S! [% y# i% c
    {
" n# v+ M7 S8 C2 Z! F        while(UARTRxErrorGet(SOC_UART_0_REGS))# K8 t; m- V* e% i
        {
* B  o& i% o" b  t            // 从 RBR 读一个字节
& x2 _6 T  x* ]            UARTCharGetNonBlocking(SOC_UART_0_REGS);* i7 J& v3 ^8 p; g
        }
* J3 w& W2 N0 t1 J9 Q9 Y: h' B    }
1 f3 S# b% G. F) u! Z, R5 E6 C
- v8 Z6 B2 I6 R7 H; _; n    return;
! g$ R5 O6 t% N1 q}
. X' G6 ?. C7 E. ?: B
( K) T+ ]8 c/ W+ E" O. l$ b& }# n

9 x0 y) ^% V! a' e- q0 v  W2 l
5 `4 R# l' g# i: t+ d$ b; l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2096

积分

创龙

Rank: 8Rank: 8

积分
2096
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,% K$ c+ c  e# V3 K5 R+ P

1 u- }. j5 e7 V# C" VUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。( h% s4 b2 q3 ~

, X9 n/ S# C! b" c要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
7 R6 N0 D9 Q' C5 m6 x& Vhi,
# @1 V) z6 S  x! b
% l* A! u* J* P0 `9 CUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

; B. `6 V: {4 G) Jvoid main (void)  {- g( _) E* |6 _
{
4 D: F( I! F4 O- B3 L        int i,j;
" z: H7 t: }) N; F    char *str_buf;
: K& e+ R) v9 B. A    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
+ @( w) D3 }4 l% x: a% r        double est_L_b_=0;
% T0 u1 k# f  m! w, W3 [" y! @4 {        double est_lambda_b_=0;$ F& a8 ^+ R1 S: H
        double eul_[3][1]={0};
4 U2 l5 i! w6 _( V" M: L        double est_v_eb_e_[3][1]={0};
% Z, T: S- P4 B; F) s' K/ @        double est_C_b_e_[3][3]={0};, \$ ?& j$ c' v& \0 [
    char *qm;
" R* a; v+ b% A, U1 }    char rec[70];
1 W9 ^3 ^3 q5 x8 s        double L_b=0;
8 \, j" [8 a  ]2 b8 u: J2 h        double lambda_b=0;
7 o3 X! Y* ?, h( M, n# R" S+ v  x        double h_b=0;
& }* B- H9 g3 D: j" e        double rate;
5 ]- P, \  B8 E( u" D& S* h6 m! f( l% [; x+ T: T! N

  w3 q6 ?* n* Q        // 外设使能配置
1 n1 `4 y  u" i        PSCInit();# z6 l* `' C. [3 b, G, ^
/ V3 H0 f+ x% {/ z- b( Q
        AppInit();% U$ U3 u) v& Y( a, l1 D

6 L4 J' Q* z7 s8 d. m        // UART 初始化1 x/ W& H! a7 _; l/ @& ]6 z* e  K
        UARTInit();/ g  A2 {3 O: n2 p5 y' g  y
! d" ?9 ]7 O0 O7 U* [" f, k
        // UART 中断初始化
$ z1 N1 q% n3 g/ x1 h! I        UARTInterruptInit();
9 p0 I: x3 a) l" {( c
, |1 m8 I; S8 Q# h) m0 p$ {    evtRcvd = 0;
7 a) b8 J8 M0 P! `    RecState=0;
  z& t. m5 R9 L; Q7 X8 {    /* Initialize */
7 Q  k, V) V$ u  y, g% n. x5 c6 _5 E7 w! f
    printf("DSP subsystem ready\n");
4 l8 G- T3 D- |+ P6 k: R  E, A2 O. W( e$ }  {
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
2 I( m2 b. ~7 i
8 K2 \2 u) J- T* b  Xfor(;;)$ P$ n/ i% W+ A! e0 ?& R
{, H7 B0 E. u, U' P/ k
        if((RecState&0x01)!=0)+ r/ A5 H4 r# f8 w
        {  ]( Z+ @: w! n9 q, k2 P7 E
                printf("liuzhenxing\n");( J; K; v/ Z. R) R" h& e
        }
3 n* h4 H) v' ^2 V4 @# o& s$ X        else
0 }! ?, G2 F/ l" `5 A$ S- w! R        {* p& C4 b! h7 u1 |" l! W- s+ p
       wait_event();
, ^" z& d9 L7 C. F5 A6 V: O- _% c, h# f$ f
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
5 y) ]6 ^: r7 Z3 F8 h/ Z& w1 u( z2 ?; B6 b- \2 k
           for(i=0;i<60;i++)3 B1 x: e( b- G. Q# d3 [
           {
# b3 i2 Q- w- v( C                    rec=*qm;$ N: X% a" u3 Q- n0 Z1 s. Q
                    qm++;
- j) C- R2 R1 J% h5 p( O7 w% |           }
6 ?8 A2 b! \; b. X+ @6 H1 T' c& O3 d9 y
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);. ^6 m& q. n# w+ \- j( |
# L6 d+ d) s# `$ K# O7 m6 r* Y$ b
           L_b=L_b_receive_double;
# W3 O/ u) Q; ?  s( J           lambda_b=lambda_b_receive_double;% r* b% w( \# t) v5 Y9 E# P
           h_b=h_b_receive_double;, g+ I! a% C, i+ g+ X6 z
           for(i=0;i<3;i++)
1 {4 `  I( A# `+ e$ H& J                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];# |* J- p5 n  \' e, s# q8 C
           for(i=0;i<3;i++)
+ {0 I* c5 t( z) h3 K                    for(j=0;j<3;j++)
: w* z  H8 J  a1 _3 G                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
5 T! s+ }/ E' @% |% p) M/ Z; i) B. N6 F
                printf("L=%lf\n",L_b);
3 D% W/ ?; ?( m; s7 o8 }; k8 u3 R                printf("lambda=%lf\n",lambda_b);) b7 n6 G' {3 l& b8 K2 }
                printf("h=%lf\n",h_b);6 j' h: U" |2 K' e, |1 z

% T: d9 }2 D  e2 r$ H% c- d: B                for (i=0;i<3;i++)* \3 J) O, E1 g+ {$ j  f
                        printf("%lf\n",est_v_eb_e_[0]);+ Y5 D8 c4 ]  \- C* q
                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]);& Z) f/ G9 @. H- ~
                printf("rate=%lf\n",rate);
9 o! G3 a/ S* e4 c3 L! f2 _% Q% d& K% z6 {& A  E- D5 i
                CTM_to_Euler(est_C_b_e_,eul_);0 D  t( J2 @9 J, n; S( V
                for (i=0;i<3;i++)1 ^. i9 k6 N+ e1 S6 u! Y0 d  Q
                        printf("%lf\n",eul_[0]);& C. \  O+ e+ s
                printf("end************************\n\n\n");
+ p  c5 m$ u: i+ a! G! n! l; O4 u) D8 }
                /**********************************************************************/
/ E& U8 E' j* p/ w4 r* s' Z. g
& x$ x5 q" z2 f/ t            char flag[4];
, [1 k2 H* B" t& b
6 u) m9 H9 {8 X. D$ _" k            flag[3]=0x00;; t$ a" F+ T: k8 W! }  D
            flag[2]=0x00;
) Z% U4 ^0 Q, h            flag[1]=0x00;( A8 u0 q. s( o$ B( k2 I" m$ D
            flag[0]=0x01;
! V7 t- X  L) H' r  i2 [: {+ J4 K; O3 Z5 P( Y: v5 H8 {
    /* Allocate I/O buffer and init with string */
/ s3 s/ b  h4 e/ _" j* F2 b; M    str_buf = (char *) malloc(80);! |; S3 i( ?& D$ {
    str_buf =flag;# q  g' S6 b4 K# G8 e0 e( r% p0 L3 Z

3 R9 v* w" }: T, c* E    /* Send buffer to remote CPU */% V& e' c" p* G9 B
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
5 ?" G. R+ g6 k8 t; @) B4 p
( {8 x' C2 g) i    printf((char *) myPayload);" \! j! e# t6 a! ~
        }( }: c; V+ X5 u# _& {; q, ?
}& q* [1 j8 D. f( g# K# s7 `9 w' C
0 s) Q5 @2 Q- c6 C: @/ w
    WAIT_HERE;5 ~2 p9 N* }4 r( f  `
}
1 o$ ~! s/ z/ R- c2 t3 s
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
. @- v, q% \! L1 Q' }9 u: i6 A我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。/ q4 y5 R; v% t7 O
然后我把双核通信的初始化屏蔽掉,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
2 w1 _" T* R9 I/ r+ ]5 j/ z3 b# Fsyslink 的初始化是否成功,notify 通信是否正常了?

$ f" f' k7 w' C双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
# N: Z( {* N% e  e% G$ gsyslink 的初始化是否成功,notify 通信是否正常了?

1 E" t4 n' T) X; a5 t/ 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:202 J' s) |0 R) J- a# o3 s+ M' k
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

2 ~0 I9 v& W! M1 K" S. C# r# a, S建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 09:43 , Processed in 0.048685 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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