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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。- q- i/ L2 {7 R" I' Z- K: Q
我是在DSP初始化这不太明白。
7 ]2 v) d- d/ [8 }) J! e* P# }初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
! h! x+ o8 q# n
5 v/ |  ?3 B( }- [) _$ E) ?. V: G3 I( g9 W
首先        PSCInit();//UART0使能% _, j0 X' N9 S
void PSCInit(void)- \3 V, ]) r5 J# O
{: y" ^, Y% \+ F
        // 对相应外设模块的使能也可以在 BootLoader 中完成
( s( _+ V3 S' E7 f1 t! \+ |. y    // 使能 UART0 模块: M) l1 g+ w# f7 R  `$ _  r
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);0 M( F3 W( Q5 S, N# P& F
}8 }/ {" c6 O  q2 }3 x7 T. Q

( w* ]1 n( Q% K2 y1 N
/ u$ K; z  ], R+ T9 ~* x然后是 双核通信的初始化           AppInit();* \# q0 O$ p7 t; S' t( c- _
void AppInit(void)
1 a  B2 ^! ]8 j{9 G6 O7 P2 y2 o$ m( e# \; p
    /* Structure to initialize IPC (see Ipc.h for definitions) */* J( i4 Y& a! i! D' @' @4 d
    struct IPC_cfg ipcCfg = {
0 v3 v( |% p2 l- z            IPC_DSP0,             /* local processor Id */
- X9 Y# I5 L$ o, t2 Q! t            IPC_ARM_HOST,         /* remote processor Id */
2 x+ S$ k7 K- [8 A" V% a            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */8 A7 k4 Z2 @6 B  k
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
; o4 ^" I/ |0 Y) ^- @2 |# k. {$ S            NUM_MAX_EVENT,        /* maximum number of events to be created */
/ N2 F2 V9 W3 d. ^* o+ n( z            &ipcPvMemDsp,         /* local side private IPC memory */+ u  D  j0 v  `+ I
            &ipcPvMemArm          /* remote side private IPC memory */
4 K4 W$ i% D; ^( g4 V" b    };; {0 C4 q4 u& @
    IntDSPINTCInit();: z, @2 i% P& C6 G& U1 C9 M
    IPC_init(&ipcCfg);
7 @" d; p  G/ ]    IPC_intRegister(C674X_MASK_INT5);3 r8 S% X* f0 ]( C( F: M) w" s
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
: Y( E4 b, R' m( ~1 V) D4 w5 X4 _8 D
    /*  Enabling interrupts for DSP C674x CPU */
( `8 A" J" d+ N3 }# B  t5 r    IntGlobalEnable();        /* Enable C674x global interrupt */
/ z& f7 }3 ]" t" e( q( j8 h8 Z6 y: F    iAssert (Notify_start()); /* This will enable IPC interrupt */
* z3 I. f' m4 k$ s}4 W3 I5 M# f% v  ^; @; u1 z6 I

% q# g* F( p; w# b" C! E然后是  ) }0 A: U* Q. x( \; l
            // UART 初始化& h. i8 h' G9 \# d* {
            UARTInit();3 Z2 ?& C* E; B* ^" n0 l

! q- H8 Y% L! j- w3 r            // UART 中断初始化0 j" O/ Q* i( F/ p4 p. @0 L# v# V
            UARTInterruptInit();! G( h" w8 v. K& \. G. O5 f$ y( e, l
+ P( v. ^, s$ y" }

* p! Y- o# T2 m# {1 \' l( zvoid UARTInit(void)
/ A* p$ C* }- N* C* Y/ D. F# b0 o{
. k$ u7 V' F$ F. a3 U/ Q: ?; A        // 配置 UART0 参数: y+ G0 u, O; I4 B
        // 波特率 115200 数据位 8 停止位 1 无校验位# F  J) R# B9 A( R' q* ]; N
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
5 k1 Z# {3 n! J1 k$ Q* \2 P. K                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);+ o; \+ m/ E9 i
        // 使能 UART0
5 t: F; M6 i3 P7 ]  b        UARTEnable(SOC_UART_0_REGS);; w8 G5 R% H3 Y' K8 \
8 @! q( r8 c( a* k7 m
    // 使能接收 / 发送 FIFO( r2 o% a* h+ g9 ^. ~
//    UARTFIFOEnable(SOC_UART_0_REGS);
  N# B7 V2 b3 q  [5 {! S! w0 F+ F/ m1 L1 A2 G( x* \
        UARTFIFODisable(SOC_UART_0_REGS);
. m9 X# `  x1 \1 Q! u1 ~9 d4 o* w! v3 ]
    // 设置 FIFO 级别     接收FIFO的级别6 J3 g. G1 j7 [
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);2 |  `6 j% v9 e; k  G6 y7 x
}
& ^! f: z' G# a+ z( A

& z8 w# i2 t& d9 Y
: j! k) O: K" Svoid UARTInterruptInit(void); U6 I4 H% s% W+ i2 B+ J2 U
{
9 X! b4 R' g6 R2 L" [  v7 |" o        IntRegister(C674X_MASK_INT4, UARTIsr);
2 q3 L/ w6 p1 w+ K9 z        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);2 [$ |) P+ {; r* U7 K/ r
        IntEnable(C674X_MASK_INT4);
. R/ E* [) _9 G
3 A# k8 ^4 |* N7 e/ q        // 使能中断' ]# ^' w. `) G/ W( i; N3 r
        unsigned int intFlags = 0;2 X- y* O; d- @. f/ f
    intFlags |= (UART_INT_LINE_STAT  |  \1 `+ G4 f6 T9 j" ^! B
                 UART_INT_TX_EMPTY |    \8 Y# B/ }  y; Q0 W
                 UART_INT_RXDATA_CTI);( c2 d  I! h+ g  j' \
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
7 D2 E9 ]: b5 F2 h2 `# `}
; j6 x. w" G: @) r7 W

7 U, \0 ^6 Z( W. d( s3 s% I
8 p" K3 L! d/ P/ V7 w, V" Ovoid UARTIsr()
9 |, G4 P6 t2 h8 c2 W4 l{
/ y4 F; j. m4 n# Y2 P6 ~$ N    static unsigned int length = sizeof(txArray);
1 r( ?8 p% I- S7 J0 u. m    static unsigned int count = 0;
5 C/ |6 f' ^1 I/ {* s- P    unsigned int int_id = 0;
, L- c; {1 o3 Q8 I$ r
3 g- |2 f  G7 q" y
  ]6 F- R$ R+ u  k5 n6 {8 y% c; Z) D# \
" F, @. R% ?& T& @; s! V5 V    // 确定中断源/ L- Z3 C7 g7 I1 ~2 p
    int_id = UARTIntStatus(SOC_UART_0_REGS);; o( u+ z: j1 [$ k

2 G" v( g! \. `, v$ H$ q1 w# b/ }    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。/ `7 b# `9 l6 c& S7 O& J
7 {! n; ?  d, F5 i8 c/ a/ |
8 e  z9 |; E8 w- k7 q+ ?5 a
    // 清除 UART2 系统中断
2 f: r1 j, S) u8 Z    IntEventClear(SYS_INT_UART0_INT);/ t2 e' _' f" H3 c" R) e
7 j1 b9 [  g4 w  o, e
    // 发送中断
. P: W% v0 c% ^7 a+ i% ]    if(UART_INTID_TX_EMPTY == int_id)5 s1 g' c* |/ B* P) b
    {, A7 a( C* ~) D2 h; d5 }0 K  ~
        if(0 < length)
$ l( E2 z& Q) ^        {6 g% t: V( C$ N
            // 写一个字节到 THR$ W: ^% @* y# O
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
" s2 a) @" @4 o, S- ^, {            length--;
# y/ C8 D, ?0 S  S# A            count++;
  i9 l1 t# B% \' u        }
8 y: s2 k8 u$ h, H+ W; S% {        if(0 == length)/ {6 u) M! P3 j& o3 V6 P
        {; D* d8 {; h1 k8 ^
            // 禁用发送中断
- W$ L# o- A) f+ a: x% P            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
1 V. e+ a5 n0 W! L# |        }
0 l: Q9 Z9 |, g6 q     }0 j2 C& B. J* Y

7 X4 t/ e7 z/ ]" ]7 W    // 接收中断" h* \7 J* ~- }# A" f$ s- G
    if(UART_INTID_RX_DATA == int_id). l" m; |) P- _! ]$ G) S  L2 o' R
    {
$ ~  P! ?7 H0 ~        if(status_a0==0)6 u" H; `, ^! {0 q( |. n8 ]
        {
3 O4 {! _5 o/ o" i: X4 t  C                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 L" ^0 x$ D# v0 j2 n. q
                if(a[0]=='#')
; [$ d/ w  x3 \                {
' V2 q1 }) f" h1 w                        status_a0=0x01;& R. }, C! h" c6 g( H2 G8 Q
                        status_a1=0x01;
2 b, H5 E( u/ t' s; U                }
2 ]6 @$ E. C8 p) Z0 p2 D        }
! w3 I+ N2 x4 B- V9 z8 B        if(status_a1==0x01). ~; p) v, I$ p6 M  c/ B
        {2 J% L" t9 }" X6 `9 `( |6 e& R9 o
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# c$ W& F* x1 h: b( @
                if(a[1]=='R')! N5 n+ a& n/ e2 w" l& X
                {
+ z) _: c9 N- ]/ j, s9 M, t                        status_a1=0;
% ^2 t5 p8 @( X  v                        status_a2=0x01;
$ ~! W  _4 [; K+ B                }
, K; g8 @+ O4 I# N8 v        }- l8 ?8 k7 n4 Z$ U
        if(status_a2==0x01)  S( U& v5 D" ]. H
        {( v0 ^( c! G% K: l% w
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% s% U0 ~1 s5 l: M: i9 [) t) _                if(a[2]=='A')
4 _  k* A, f5 t! Z5 N, k, O' d                {8 v7 b- {  D1 t' k- T0 C
                        status_a2=0;3 f1 E" E) f% I2 ~8 w0 K( o# X2 e
                        status_a3=0x01;
# f% L1 o5 Z1 u8 [" p% z                }& {  I, X% h' L% b& r2 t; O" c1 [
        }) q9 I% S6 a- X" V
        if(status_a3==0x01)
8 L2 K  X, b9 z. I        {/ j; g0 P! o$ ^+ a
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
5 g6 e% Q( W1 D                if(a[3]=='N')
9 a# A; V- Y4 ?+ h                {
/ s( F7 b- i: b( m9 d- v                        status_a3=0;1 u: @8 {, N2 ^2 x
                        status_a4=0x01;
/ r3 a4 ?9 R0 g% f% b                }$ o* h" M( V! S( i- C2 S8 ^
        }
/ c5 d& U" e5 A& {+ L        if(status_a4==0x01)/ K) P$ s3 {: n- A1 b# a
        {
% ^( @5 w/ r( ]. k                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
* v/ [. P' N) f  M4 o! S                if(a[4]=='G')9 `" j+ u# n/ C7 \, l. N
                {
" l# L. ^- F' R# C& S                        status_a4=0;
( E% F" G3 q! u! ?                        status_a5=0x01;
& o6 N, [! X' Y* |9 _9 I                }/ D, A. m9 q, b- ]; o7 M' M
        }
7 e  D1 o+ W$ j4 i7 w/ p5 g        if(status_a5==0x01)
5 d5 f+ `$ y0 p& P        {
6 Y4 Y" E6 P+ Y& [; M' ~% H3 r                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 f2 k, f& _% n' P1 \7 l
                if(a[5]=='E')
8 @2 [/ o+ f1 P2 v- q                {
- @" _) B4 B3 U3 c& A/ I. O                        status_a5=0;
0 a: r. Y: T7 j6 n4 E                        status_OK=0x01;* @; F2 Q, p; v/ v* ], ^
                }: J' n/ e/ m) z! b9 \6 m- ^* `2 L1 F
        }
9 B8 i4 q, E1 J5 |            if(status_OK==0x01)6 ^% C7 ?9 O, t9 u$ `2 @
        {$ J+ l" S0 {. d" Z. d( h9 \0 _
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);  _5 p  G0 e  ]! ?9 V
                        lengthrx++;
1 `5 `  _4 {* P                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
1 \# A7 ~3 B/ Z" s& K                        {
7 Q0 k" D( X% `/ X7 _. r( p                                RecState=0x01;
2 H! [( u$ S" {  P4 X7 {4 H                        }
8 @' G; ?& Q2 b9 t' \, Y         }9 N+ [6 K; [  X: X: j8 ^, h
- d6 z; h4 Q! o' l- n+ Z& B- v# {
     }
2 O( ~& E- k: {+ |9 ?
$ G" X. L2 k  [( R0 I% c    // 接收错误! w6 H+ D* m+ U: W; C* y
    if(UART_INTID_RX_LINE_STAT == int_id)! z6 u) f; ?8 `9 E
    {% c/ C. m1 r2 e9 E
        while(UARTRxErrorGet(SOC_UART_0_REGS))
8 \+ T" |0 i4 h" U        {
& r7 @" k4 Q5 @7 n) }7 Q            // 从 RBR 读一个字节
& \6 W% [; H; a. m6 }" _5 j            UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 q' ?% a. ^; i1 U  A4 n        }: r; [/ W1 @) M( S
    }
* R$ b% `; U7 K3 r$ F0 C* w# b4 [. H, Z/ F# l
    return;
8 E- E4 T2 H! M" `/ i0 t}- I- b1 q7 u( d' Z$ G8 j4 u! b
$ n) [- Y4 j7 U9 `& |- {+ V

& X4 I$ _8 S' P5 K- D
7 b; r, [4 E! ^- W3 c/ b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2025

积分

创龙

Rank: 8Rank: 8

积分
2025
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,9 J5 M7 ?- [, h7 m, _  n

, F7 W0 F" m: P4 vUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。" S& ^3 ^# ~- U% ~8 `; U3 N+ ]5 Q
- K5 Y5 q5 g+ q  t( n0 z
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:136 V1 q3 F& t# t" S- v  o
hi,
, i1 W3 _" ~8 i" V/ K. I- J# w' i) ~9 T1 h* z
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
) ]# d# {, U/ \, y( I
void main (void)
1 \& y% t& a" v% k{
& l+ _6 N5 Y, [# T% F        int i,j;* |) d+ W% B- b4 X
    char *str_buf;7 x  R2 ?) y, D
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];4 J3 u$ m4 _9 Y' T) d% a' m! H* O5 L
        double est_L_b_=0;* I1 q# u1 Y3 @" k3 `3 }+ [
        double est_lambda_b_=0;
9 s# b) F, Z  [& o, z        double eul_[3][1]={0};0 o! W8 H% A' p, r
        double est_v_eb_e_[3][1]={0};
7 K" w# C9 y! `# d. [- e2 h        double est_C_b_e_[3][3]={0};& h2 ?, E- J$ E9 i1 ]& [+ {
    char *qm;
; W5 t3 g1 ?7 g* T+ K! d) `' w3 h    char rec[70];
! ~: t* m1 ]- t& T! j        double L_b=0;
! e) w# F! v9 x& v$ Z; D- o9 g        double lambda_b=0;
* u4 \9 G6 v1 U1 _- X: d; Q5 ^        double h_b=0;
6 m+ S7 O& [3 p        double rate;% ?# o  B9 R. Z" ~4 X2 q# I  w' l

! c9 _9 F6 D( T7 h( n% `2 h; E2 @) T
( V* S) ^! v  d+ _- w% K( ?, a1 E0 _        // 外设使能配置1 R2 R7 E8 I& W
        PSCInit();5 u% ]3 r9 V1 p5 I; [
* N, I0 j- {5 i" E, {5 |
        AppInit();3 H1 m: {- |. X& E7 F
; P6 N+ m" P+ \) P. t
        // UART 初始化
* v9 c9 |1 H3 h( ~# P        UARTInit();
' H3 ]' |/ s! w. L& ?8 N  {" G$ u6 H( W
        // UART 中断初始化1 L3 b+ j8 F( N8 N( |9 N$ P% k
        UARTInterruptInit();) T4 j* b+ ?. r8 u3 {6 a
: l5 i! g9 V$ Y2 L1 Y) z
    evtRcvd = 0;
1 R$ e4 b4 {6 k5 u6 n' S    RecState=0;
! q) m, w, n+ v: t  f    /* Initialize */! a* x3 c  d$ \" @* ?! \+ v( _

- C# }! m" o( O( ~. Z  T! p% t    printf("DSP subsystem ready\n");5 L1 w2 T7 U, q8 N" w
$ J1 i, k$ d0 Q3 q
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
, h$ s: T: X2 N: i1 C2 s2 ~" r9 a; Y
for(;;)1 M# D" X7 b  M' m; I2 E8 n
{% S' {- ?' M8 t8 Y0 U, }
        if((RecState&0x01)!=0), U6 Q% _2 L; g8 r2 M) L
        {1 h: E& p: \" ]8 U+ Q
                printf("liuzhenxing\n");
; m+ j; c% A! @  n  K        }
9 o8 o4 W7 }1 `, t' o( t1 _        else2 n* O4 u' a9 N. t9 s& _  o
        {
0 |3 Q- K& T' Q9 V2 ]5 U/ I) s       wait_event();
# d3 h( @2 L- r7 r3 q( P6 i3 Q7 _$ S8 H" p: Q
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针) G3 x9 n6 }- Z# F

5 C, ]1 k4 o6 B6 u. N7 v/ p  O           for(i=0;i<60;i++)3 U$ p' c: E( J5 h; ], O% i
           {9 }* ^& f% V& u; f8 }* w+ ^
                    rec=*qm;5 O" r3 o% X( H/ R0 u! L' k$ G3 x* ~
                    qm++;
. {" r& ]# @) n0 n9 C9 D: V           }
) D9 l! _' l# T& e! @; f
" w& s# |5 f$ M: ]  [7 u9 e$ p           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
6 q- Q1 C! I  ?! u
+ N. w3 w9 t7 W" v$ W           L_b=L_b_receive_double;
. J6 {$ K& D, H; U           lambda_b=lambda_b_receive_double;( Z$ L$ S3 T% s% j- G
           h_b=h_b_receive_double;/ b& U! A+ Q3 p  Q8 T
           for(i=0;i<3;i++)' n" Y- u- ^9 p
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];$ x- e6 Z6 O; c
           for(i=0;i<3;i++)
- \  G: D/ o2 \6 Y- L$ A# A+ [  w                    for(j=0;j<3;j++)/ X( E5 P2 ?0 }1 B/ `
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];- x. T1 b4 A3 q/ o2 Z
1 y3 d8 y) p" a( @+ ]
                printf("L=%lf\n",L_b);# H: X) F& D% W0 M3 o( s
                printf("lambda=%lf\n",lambda_b);! U' E& I- t  O$ a4 D8 F
                printf("h=%lf\n",h_b);; O( C/ l1 i7 A; o: z% K

6 {0 A: P6 x" t4 [- J- \# x; _                for (i=0;i<3;i++)( [3 n6 W& Y. `$ U; R" k4 p# e
                        printf("%lf\n",est_v_eb_e_[0]);% F- P1 f# B0 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]);. k) Q7 h3 ?3 b% J# g
                printf("rate=%lf\n",rate);0 {/ y4 Y# ]" [

1 g! S# V/ c/ k, h/ c7 j1 V: V                CTM_to_Euler(est_C_b_e_,eul_);
) p, G6 V2 c/ Q- T0 b                for (i=0;i<3;i++)
3 Q2 D" b" k2 w2 R7 t6 Q                        printf("%lf\n",eul_[0]);% |5 l& s. w) @& G9 C' Q
                printf("end************************\n\n\n");
! t9 Q, J  s6 |) U+ |7 m- ~( }7 H3 W6 {  B0 [
                /**********************************************************************/
% T# n7 Z. x1 \+ N! u( |, o3 s; M! B% }( S4 J* c0 h
            char flag[4];2 a% Y0 \: n( F

& u$ k7 ~* I0 c% @            flag[3]=0x00;1 e! A8 ~; n, \# v
            flag[2]=0x00;
2 e( D; e& s0 H: w- w            flag[1]=0x00;) E- J( _, D& n8 x* }+ ]0 X
            flag[0]=0x01;. j, P& _/ c5 j1 G; u# s( B

% y2 P3 j6 J: |5 e  U, J' m1 z    /* Allocate I/O buffer and init with string */: V( q5 F9 p4 |2 }" y
    str_buf = (char *) malloc(80);9 q0 b2 @& m3 S5 J" P# B7 |% ~
    str_buf =flag;) o! Q0 V  j1 B9 J, C4 U

2 F$ d+ O) i) t, g    /* Send buffer to remote CPU */: O3 m# G% G. n9 l
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
6 X4 b; v- a' |+ U1 r6 s" h) F! ], V' F& z: O( g' N
    printf((char *) myPayload);
' u+ {; i  I8 @        }2 h8 a" Q/ `& k+ k2 B: r
}3 c+ ~1 g: ^  J5 ]2 h

1 i; o$ [8 I% K5 ~4 h$ R    WAIT_HERE;
' P1 m8 l/ p8 {4 V6 {! [}
) a* ^  f6 L3 |5 m: Y. L, y9 g
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
% F8 o/ ^  D* ?: G! `, e我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。& c' w8 _4 G! _, m% K
然后我把双核通信的初始化屏蔽掉,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
5 x! ]# y- L; _, h, P' @3 w3 q4 T) csyslink 的初始化是否成功,notify 通信是否正常了?
7 }+ I* L; i- ]6 P; z! _5 v; u; }
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
# P2 k6 ^7 H& e0 w6 z, `* bsyslink 的初始化是否成功,notify 通信是否正常了?
' W1 _* ~+ q9 |9 _, N: x
我用的是裸机开发的双核通信,用的是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+ B5 W1 c4 V) |! V9 ?8 l' u- g8 K
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
! b: R3 Q2 m5 ~9 r5 E
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 08:06 , Processed in 0.047873 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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