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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
; Y: P& U' g, ~- l我是在DSP初始化这不太明白。9 D  R/ h1 `3 F% i! ~0 Y
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
% r3 O! k# Y1 n2 ~; B3 U) y5 ]) b( d# e; H  E3 [9 c
. Q* s: W! [: q9 t8 D0 \2 N
首先        PSCInit();//UART0使能
) c: q/ G/ J, |  i$ [void PSCInit(void)
' {9 V; C2 f0 Y- U' A% o8 X8 P{
* C0 o, q4 m+ `1 Q0 H$ A        // 对相应外设模块的使能也可以在 BootLoader 中完成, `7 S( T! g2 C
    // 使能 UART0 模块, L% Q4 ~$ j2 D" b& G
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);) F/ o& _7 C; z7 A: B
}0 S* Y! G8 ~+ b) _

1 L# l0 A4 r2 v7 S- b% V' R, R4 I4 ^( }
然后是 双核通信的初始化           AppInit();
6 _' v, p- S0 h( m$ dvoid AppInit(void). c& _0 V/ W2 P3 e4 C) W+ M+ w
{- v* |5 P7 Y4 F# ?7 n5 j
    /* Structure to initialize IPC (see Ipc.h for definitions) */% T) S0 ?# M- o9 ?0 K6 x0 r+ J4 W
    struct IPC_cfg ipcCfg = {
  A0 c, D7 b2 C& Z/ E1 R3 o            IPC_DSP0,             /* local processor Id */
- n; A' i% U( W8 r6 \8 p- }            IPC_ARM_HOST,         /* remote processor Id */$ [. i9 P' S1 E8 \
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */" k: t1 [; p9 ]0 F8 r& C
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */1 y& h0 l; B" `! L" I
            NUM_MAX_EVENT,        /* maximum number of events to be created */, _5 P$ N2 ~& A1 F! P5 P
            &ipcPvMemDsp,         /* local side private IPC memory */
5 A1 W2 y8 R2 z" M% O' U/ L( K            &ipcPvMemArm          /* remote side private IPC memory */
7 p& f2 |& c$ i1 B/ S7 |% f8 d    };5 U" v3 F9 e4 E% m6 o" {( K" \
    IntDSPINTCInit();
. M$ |! s+ H9 \+ A* x    IPC_init(&ipcCfg);+ S/ W! O" q1 w9 P
    IPC_intRegister(C674X_MASK_INT5);, |& V7 U$ _6 A4 v1 y* H9 T
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));9 w  Y* t1 z/ i3 a6 Z: F

2 e% [4 N9 P  ]; ^% j7 K8 \    /*  Enabling interrupts for DSP C674x CPU */
9 c- }0 H% O9 t: x1 O0 d% Y  A- ?    IntGlobalEnable();        /* Enable C674x global interrupt */
/ s/ l/ S5 g: d5 E/ @/ I1 {    iAssert (Notify_start()); /* This will enable IPC interrupt */
( \: B* ~4 z# w- b) I( L}4 e+ `& g+ K0 O: k  h
0 m* w6 L+ K5 r, P# |$ u
然后是  1 \4 b" U3 g* A! L6 V$ ?
            // UART 初始化; ^: w, ^  C/ c* R  B' m4 o
            UARTInit();  r1 z, o  L' q5 e( o3 V
4 T% z) {4 N% E
            // UART 中断初始化0 U& ~4 g+ h; `5 j! N
            UARTInterruptInit();5 R# |9 R3 n* ?, c
. L+ J1 K/ d, a* `" L
" Y5 Z* ]3 ~+ u! |0 N: V
void UARTInit(void)
, @6 r5 d. u$ L, z, h{
: \2 j+ H- f/ L# w" z9 k        // 配置 UART0 参数
+ d+ w, S4 \2 ^. p& D# w) d        // 波特率 115200 数据位 8 停止位 1 无校验位
% P( r# h0 n$ I8 M    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,% t+ j" `% f  y! M5 G* e
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);9 j6 a7 Q: O( [, n
        // 使能 UART0
; p% g% ^$ V# ^6 F        UARTEnable(SOC_UART_0_REGS);
: Z$ `/ e- ?9 S
- T* a  S" g- @2 y4 s- l9 s: y" _% v" a  c    // 使能接收 / 发送 FIFO( g* {9 W! ]& z4 U$ ^( y
//    UARTFIFOEnable(SOC_UART_0_REGS);( Y2 t4 T) D# D. \7 u. p( x: P1 K0 ]
+ |( K' j1 h/ I9 E, v7 ?5 ]
        UARTFIFODisable(SOC_UART_0_REGS);
0 G8 H" \; V" a% E# \0 [$ g  D- z, W. G+ C# f
    // 设置 FIFO 级别     接收FIFO的级别
: u/ m( |7 N& S1 C4 P//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
* j8 j9 `9 e! v}
) \: B+ S  O- c0 h5 e

& S5 r1 H$ O" I3 y0 B- Z0 X
1 d; |8 r& l, D* ?9 P( Fvoid UARTInterruptInit(void)
' e) h2 w- N' Q1 U{8 }0 Z# Q* L+ M" |6 P, K
        IntRegister(C674X_MASK_INT4, UARTIsr);
7 C0 \. E, V9 S+ K        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
  L0 S7 N" J2 B5 O3 w. l: w        IntEnable(C674X_MASK_INT4);
( P* C5 l9 q; N! V& u& c6 u$ v  {1 ]* ~$ y3 I; x3 w2 R
        // 使能中断
/ Q$ N2 K/ j5 |, b, J        unsigned int intFlags = 0;/ t3 j' i4 w: v. |* J# z- i  `5 x
    intFlags |= (UART_INT_LINE_STAT  |  \* M( D0 Z" r. D8 W1 A( o% C
                 UART_INT_TX_EMPTY |    \) p! `) h# n% K, b# Z' n3 E. c
                 UART_INT_RXDATA_CTI);
' C0 t( T+ I. Z8 `9 p. D0 |2 Q    UARTIntEnable(SOC_UART_0_REGS, intFlags);2 Q  ~% D7 U/ r% a/ m. c1 W
}+ t/ s( I( D, S# M% \! ~1 w

# q$ H! O  f# D- n5 s: Q
. C# J7 F$ N2 lvoid UARTIsr()) Z! l, X1 L: A: g- M+ Z7 U$ h2 y2 d
{
8 }6 q5 u4 C- [) f' e, [6 ?    static unsigned int length = sizeof(txArray);
; A5 j0 @2 O2 J, M    static unsigned int count = 0;
9 U1 P& b# R+ Q) N8 p    unsigned int int_id = 0;
8 ?; l" L. \6 N+ h7 c
, l' `! a, ?# h4 i) j
1 \: I: G. P) j' z0 |1 i6 q8 k# t8 E* L9 [9 m6 Y5 ]5 I
    // 确定中断源1 ~9 ~. b9 e7 `2 |
    int_id = UARTIntStatus(SOC_UART_0_REGS);+ X2 A/ M  `$ }7 \2 K& C2 {

* I  _+ F4 t+ U& S" ]5 c3 w2 z( V, T    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。) C1 \; v/ M5 j( [
1 G2 a8 ^; _& A9 e, V; E* g  Z
; q8 g% {+ f; t2 [/ Q* L0 i! d
    // 清除 UART2 系统中断& x/ Y' [' o$ i
    IntEventClear(SYS_INT_UART0_INT);
' e- u# {- d! I3 s" ]6 ^6 }8 b. D9 n3 B
    // 发送中断
' i' V8 c5 d1 x    if(UART_INTID_TX_EMPTY == int_id)
" D- K  u, o" L, ]- ~; u% `2 S    {
0 M7 A$ S$ [% F+ r8 ?+ G- L0 D/ n        if(0 < length)( I1 b7 ~3 x0 z
        {1 W- i* j9 |7 ^
            // 写一个字节到 THR5 R+ e, N: U2 Q6 q, d' _) N
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
# q' c! J" q+ H% R) B0 O. b            length--;
8 z) n+ z7 Y+ a6 s! |. y            count++;; i, Y+ Q+ C4 a- _3 {
        }
, J. w9 P" O: Z        if(0 == length)8 G1 m% t0 G$ N  u
        {
, Y3 J. u1 E3 ]5 \/ d            // 禁用发送中断7 n& j2 S+ @7 \7 T- V
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);3 U/ h6 x9 U- k6 H
        }! j6 T; |. c6 M+ l+ e! ]
     }
2 \+ R  l  _. h5 e. M# @
7 l6 x! z; {# Y! S% e5 a5 _    // 接收中断# [4 i) `/ O0 k5 a2 [# `
    if(UART_INTID_RX_DATA == int_id)6 j9 Z# E6 h8 d8 t- K
    {; R" E) W- C3 B3 `
        if(status_a0==0)
  p! q+ C& Y8 `7 ~+ k+ M4 [! D0 ?        {
( B" A/ w' U, k$ }1 f                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
( h; P! D# r* q) u) Z                if(a[0]=='#')
. S% t2 I+ {- R3 M$ O                {
; c+ R( H$ Y5 E, \! s9 j                        status_a0=0x01;
; x' d) q" f/ }( E                        status_a1=0x01;
" s3 o2 J, }) |: @) G8 K! V                }: \# v9 U. b7 X  _; c- @0 w: p6 s" u
        }  P! Y, U9 |& J* `  E
        if(status_a1==0x01); {/ B8 }+ U* v
        {
1 b3 [7 x' R: {2 r5 g                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);) {1 J7 a/ F! h+ R- }6 \  y' f
                if(a[1]=='R')( y! t/ t7 ?0 W& G4 A
                {
& B: J7 F2 S" C' P$ }" N" r) }& g                        status_a1=0;
1 Q4 \+ Z2 `; q% Y! \                        status_a2=0x01;3 x) H, L4 Y) X2 R  r& i  e
                }
0 O" A0 ~  N5 K# y% e& o5 W8 d  z/ _" q        }+ X6 [% y# U3 u* C
        if(status_a2==0x01)+ F( N. `* `, W1 f$ i
        {
( L9 T: P( v' e2 a: Z0 v& Z) o                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ z( f9 k) D0 w) c# d& o" {                if(a[2]=='A')
; `1 m7 i# U1 C                {- T- K! Z/ G9 F" C' p6 z, d% O! I
                        status_a2=0;
& }) M6 f4 J) M; J- t9 R                        status_a3=0x01;# e, |! J' Y4 `9 p2 p
                }5 p0 q9 I' F1 R! s1 A7 |
        }
8 c* s; a. W; M( _: E) V  D) y' q9 S        if(status_a3==0x01)
( ]9 T; o* z/ a# `" X7 B        {& @/ G- X  L! v5 c
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
( {, h1 m( m! u# c: M                if(a[3]=='N')( g6 t# }" ^; R5 q! H
                {
( l1 T( y: l7 \4 {# @1 `6 m; o4 ?                        status_a3=0;1 [8 q( O" d: G# ^4 k* j) Q
                        status_a4=0x01;
6 b/ Q/ }3 L* [0 e7 j- r                }
* Z: _3 _( Z2 K3 Y& O. O" }        }8 \& O8 {/ U' n- W* s4 X6 K. W
        if(status_a4==0x01)
) }" o: t$ f, j) N- ?  q        {' ?# q) W& _9 ^" ^, s$ s/ Z8 b
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
3 z7 Z, ]$ W+ N: [/ l                if(a[4]=='G')
( q5 i! s% P+ O7 I  B9 W. V                {
, a. Q: D9 f$ D, z+ |                        status_a4=0;
) g3 X2 }- m9 v- q2 g( ?) O6 s                        status_a5=0x01;
/ ^9 ~6 G" ~! V  P% u! O2 v; c! |: l                }
- ]- {( }1 V, n+ A( `( U        }
- m/ ^3 j+ K- O8 }; T3 V: B  \        if(status_a5==0x01)
* `2 Y" H6 m  J% x( F% }& i3 ^        {
4 p% B5 z* a6 d8 P- w                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);5 o3 c4 D# {( Q7 ]3 S4 O
                if(a[5]=='E')! ]8 g- j& B7 k  i
                {
2 s+ `0 o' p! F1 A4 M- C                        status_a5=0;& S$ y7 D2 i" A) G# o
                        status_OK=0x01;% p! G5 H0 W2 f" F7 _! X% T
                }$ R, O4 ^& j5 _
        }
; c! V6 q" i2 J5 M+ k            if(status_OK==0x01)( C/ E' s; I$ V8 W" r, i
        {" L& M+ S+ w7 t8 S
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
  Z5 L. b3 b4 @  `: `$ U6 h& z                        lengthrx++;
. j+ z+ y: _, ^8 `' n! q  k5 R                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
# s6 b, A! s+ \! j/ E" c! l& Y% [                        {( v3 M" j( I  ~. g; p7 F6 q) _
                                RecState=0x01;& e( v% E% q/ H. k4 C" r
                        }: \. M7 o7 i) t' i: c6 i) @+ H
         }
1 B- e0 M, z$ B2 G" s( m4 [  Q! J
6 d0 j- h) z5 M5 S6 n4 [     }; w! r6 `& G. o; P/ u: V/ M/ c5 s
) O5 m6 q! z& j; q, `+ \
    // 接收错误% i' T9 G- x) e7 G0 b
    if(UART_INTID_RX_LINE_STAT == int_id)
4 P: p, X/ ^% w1 |' U: x" l# v    {/ Y4 A0 u4 n" w  n+ ?6 \
        while(UARTRxErrorGet(SOC_UART_0_REGS))
7 s& H& O/ \0 C, S! E        {
' H8 w, m) w5 {. `; ?            // 从 RBR 读一个字节
7 O. L( e; f0 c% ~/ \% k            UARTCharGetNonBlocking(SOC_UART_0_REGS);7 T* c8 ]" K5 b' I( M
        }2 b! |3 Y: y- u* b: z
    }
1 |" E$ d! H5 z9 h% ~, o$ S5 ~! \. y6 v& w8 n# N2 x( U: r
    return;
0 W/ ~* g# H8 i! y* ^}; W2 A; b6 ^& r
# f1 E) Y& k! M$ Z2 L
  B  Q; }$ T- L! x1 k

& w6 J" F. S0 u; Q2 q  d) Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2102

积分

创龙

Rank: 8Rank: 8

积分
2102
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,* y& w) h* w0 N" r2 T% v

" o  l  }% R8 e' {! l. BUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
2 V2 P* R8 U% ?  i% y7 s  ?, o& N% U' @7 I8 J
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13( c/ @3 N. f; N- X3 c1 V
hi,7 u' F* \6 k% C- T5 ?. s
0 r; e8 p  {& l& d! v
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
  B# x, w0 l' G8 W
void main (void)0 k5 O$ x: F8 h+ `& X% I/ Y
{
8 \2 G) B# }: c  t        int i,j;
! V+ S! Z" e) h( c9 ~( _    char *str_buf;
2 ~8 a. S( j7 i    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
" _: R9 A- t6 A7 f' B        double est_L_b_=0;
$ l' b! R9 N% q  \/ N        double est_lambda_b_=0;& ^$ L* O, }. ]7 x/ m
        double eul_[3][1]={0};' Y) g3 s& z3 m, j
        double est_v_eb_e_[3][1]={0};
5 g8 P* D) r7 k  q. H. W& S2 H/ t        double est_C_b_e_[3][3]={0};
. `- o9 E$ w( b0 }    char *qm;6 N/ h3 {( {' H* H$ R
    char rec[70];+ h8 f2 i. z9 O& ]- c4 E
        double L_b=0;
+ R1 y# w3 T: `" m' x% Z        double lambda_b=0;% ?. d+ I* W( }2 p# H: e; f) M" p
        double h_b=0;0 g+ ]  q3 ]) ?9 Q) h
        double rate;( ]1 H8 F! L! Z

; H7 ?" f8 F  b  G7 h
" }( `9 j5 x* I" f7 w2 R1 H% q, V* }0 ?        // 外设使能配置  i2 O; E5 `: M8 p: B/ t  C1 b! U
        PSCInit();9 A$ M1 k- Z& P' D

% g! ]) c5 W' O" q6 K        AppInit();
9 X, e0 T/ J$ y: i; t5 y- h
9 [+ ^+ w" p. z( {2 V        // UART 初始化
$ n4 r3 `$ O( C% k        UARTInit();& u; G" c1 I4 J+ h+ V
' [' J7 P# a' ]3 P# M9 C
        // UART 中断初始化
0 C) k$ y" w; q        UARTInterruptInit();
, S+ s% j! W! @3 j$ Y
' o$ _8 o) T5 b( \# D% x% c2 v    evtRcvd = 0;
3 |% V, b8 f8 s, ^; D  q    RecState=0;
# }( @8 E- O& r' H$ ]  N    /* Initialize */
4 s% B. k& s5 N3 O5 s2 d4 j7 T% C$ Q. c. s5 N, ?
    printf("DSP subsystem ready\n");
" Y& k* D4 y/ e# n7 j1 S& O" P: h) j$ R1 i( g( I
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));3 B, l5 l. A) N9 m- J
# l# ~. ~9 o0 |: @1 D$ p( j
for(;;)
9 Y% u: r: F: b  a$ _{! C0 z- p  t* ^
        if((RecState&0x01)!=0)3 c9 R9 a5 P0 x0 p& N
        {
+ L* `% C) }; R# k0 X" l+ K: V                printf("liuzhenxing\n");4 ]) Z# c2 H& [8 p! I( D5 f- j
        }  W& I& H) h. l) Y. ?! ]) _5 T: S  `
        else
' O! ^, r' b; A; s* |2 F        {; c7 e$ V6 L, |" {& S9 _: w
       wait_event();; u, c  n6 D* H+ B9 b/ {
3 S+ H  X+ q6 R& `7 l
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针0 L. F9 w" n& f2 N8 Q5 M$ e

" ~' f9 M  L7 l) @           for(i=0;i<60;i++)
9 {  n, O# J3 E4 x* K           {
4 s% g& K; R1 w" p5 m% G- y& O1 \                    rec=*qm;, u8 _- D" Q2 s# ^
                    qm++;- R" V. z0 R6 ?. R- z
           }
; A5 q. c; O/ }% G$ ]( g  w1 \3 J
6 g5 @$ C- U. ~9 G  D5 X           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
$ s5 r2 B! A1 W) E# A0 k; w" u7 A6 g7 K9 I0 {) I
           L_b=L_b_receive_double;, C# x: w" d$ v5 A4 r( |
           lambda_b=lambda_b_receive_double;  u/ X* H7 b7 _& u) A: u% z
           h_b=h_b_receive_double;
; X" P7 I1 U' T0 [5 B7 l           for(i=0;i<3;i++)5 G# Y: M7 E' v, B! j% A
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
8 \7 t5 x+ G# H5 g           for(i=0;i<3;i++)
, V4 V) d) a, J# s5 @                    for(j=0;j<3;j++)) T, z! q) R/ ?! H9 v
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
2 s$ }& y2 {% E, Z5 |
1 r& i2 ]8 Z6 S                printf("L=%lf\n",L_b);7 L, E* M8 k2 R6 B1 E. {4 ]
                printf("lambda=%lf\n",lambda_b);" Y% V7 l1 C0 {& s1 S& M
                printf("h=%lf\n",h_b);
3 U+ S6 q  B3 ~3 u  f8 r4 S2 o% r& ]) L
                for (i=0;i<3;i++)6 V6 S5 V# N4 a! p& B' r
                        printf("%lf\n",est_v_eb_e_[0]);4 O0 U3 o4 f' b- c! n6 O5 v9 o
                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]);
% F3 |4 b1 t! s% @' U" \  N                printf("rate=%lf\n",rate);7 v7 p) Q: \- H& B1 i' L) h

) M) R& |1 j! t$ d% H1 e- [                CTM_to_Euler(est_C_b_e_,eul_);1 p. C& Y) I& ]7 R- \' f$ F  {
                for (i=0;i<3;i++)) i5 W9 x0 C% x( G
                        printf("%lf\n",eul_[0]);  H% }  X+ T9 w; F2 ]/ ?2 |/ d
                printf("end************************\n\n\n");
, p1 D( H' J# d4 Y0 O0 G* i) D( d
% p; Y' ^& H9 j5 P( M" T                /**********************************************************************/
( e4 A# K, C) k+ ?7 Y1 K4 F8 I# ^& Y. z
            char flag[4];
  I* c1 F; ]* P; j3 s+ Z& w( K- j  F. R& A. h
            flag[3]=0x00;
- N8 b' k- A$ |/ M            flag[2]=0x00;- H+ y$ ^* b: Y5 |' Q$ E
            flag[1]=0x00;
+ O" d2 A. f; @% i            flag[0]=0x01;# i5 v& E! L+ z- G) X0 K1 t

# `. K3 A$ J3 o& E    /* Allocate I/O buffer and init with string */8 e8 d; c$ D0 l0 r! t% d; \) c( ~) t
    str_buf = (char *) malloc(80);" |( w1 M# c" _- E
    str_buf =flag;5 y2 O/ G/ i4 u' Q

$ S) c& R  H0 }2 U  u2 i% w2 e    /* Send buffer to remote CPU *// r( ~+ S7 x0 t' e
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));8 e4 r* ~) t+ C, Z

' b6 Z* H8 L; |, \# T    printf((char *) myPayload);5 D/ \3 R) S6 ~1 ]: z
        }+ e: n: M9 P4 ?: p# K9 T" G
}- f3 x8 @' X; _5 T
: k4 z" b  O5 @0 P2 Q' a2 G; y- h
    WAIT_HERE;
( I/ k- k$ O( z7 u: G}
# [4 ?- ^- u$ g7 G: ?+ 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 | 只看该作者
我说一下调试的情况:! k( w- P, X$ E* b  T
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。2 y! e, N$ c! G& B' i
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2102

积分

创龙

Rank: 8Rank: 8

积分
2102
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+ q7 S& ^9 Q8 d/ |0 G3 X
syslink 的初始化是否成功,notify 通信是否正常了?
5 ]) f  c; G5 Z7 C$ A
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54) f: x  p6 z$ y+ V: n6 u
syslink 的初始化是否成功,notify 通信是否正常了?

- Y& b6 T1 L8 \我用的是裸机开发的双核通信,用的是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:203 m$ G2 {) E3 A3 K; p
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

% Q' [5 A& Q. J) x" w' g建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 05:29 , Processed in 0.050465 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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