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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
) D8 T' D: d4 G. v" H+ ~$ C我是在DSP初始化这不太明白。5 I3 w8 V3 q; `
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。* Y) [$ `/ p/ b. E$ e6 [

  Y: [) E/ A1 @7 ~; C! Z6 ~! c" M# G! L0 {# ~8 ^
首先        PSCInit();//UART0使能
5 z+ j1 S/ W) Q' s3 dvoid PSCInit(void), y8 x1 U( \1 p" S& d
{
5 L/ w( R& W; M        // 对相应外设模块的使能也可以在 BootLoader 中完成
' ]# m8 T) w6 N6 ?+ X    // 使能 UART0 模块: |9 Z% n0 J1 p2 _! J
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);, B# _9 A7 V" M& t
}- {! t# X% `1 J0 t
! y5 ^0 ~! j# d8 W; F$ L4 `0 T
- [. m) m# f: ?. }* J
然后是 双核通信的初始化           AppInit();
, C1 c5 w6 @9 G" jvoid AppInit(void)2 n5 j* a% a- t" A* }5 y$ i
{
! ]" d) x  m# y5 E    /* Structure to initialize IPC (see Ipc.h for definitions) */6 T) ?' }4 D9 @/ N- }
    struct IPC_cfg ipcCfg = {
4 m4 I  r8 @9 m; Q            IPC_DSP0,             /* local processor Id */
+ D6 R1 O) T" `* l* v            IPC_ARM_HOST,         /* remote processor Id */6 |, \4 J7 I2 U* y2 S
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
7 S5 L/ Q& F7 c. _            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
/ u' H" U4 t' ^5 G/ P# [            NUM_MAX_EVENT,        /* maximum number of events to be created */1 i$ @9 p9 E, W2 [9 p+ x& r
            &ipcPvMemDsp,         /* local side private IPC memory */
6 \6 Y7 M' s8 L            &ipcPvMemArm          /* remote side private IPC memory */9 k2 _7 P: v1 D) h% x. l
    };
9 j' K  \" _6 P) E2 [) Q; I' `- F    IntDSPINTCInit();  z2 y+ ^; N1 {+ X3 Q# L0 l) _
    IPC_init(&ipcCfg);/ |: J. Y# l+ N+ G% Z$ L
    IPC_intRegister(C674X_MASK_INT5);1 \# D2 d, g, G3 @
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
5 x4 p$ M! }: U0 b  @. p6 U* U! f( z# [$ R5 v! p! p
    /*  Enabling interrupts for DSP C674x CPU */7 p5 f0 l* m5 B4 j
    IntGlobalEnable();        /* Enable C674x global interrupt */
- v! L# N7 \  V, V    iAssert (Notify_start()); /* This will enable IPC interrupt */
4 }8 X# _! z. A) ?4 J}
  a1 ?4 ^; p% P/ z3 r* f6 [. Q
( Y+ p) j, q* g( p: B
然后是  / u6 f& y  N: B) y
            // UART 初始化' {5 s5 w8 D2 M0 @
            UARTInit();
. f) E( g% X! A4 S# P9 b  c; W2 c7 [/ e0 Z% V) E
            // UART 中断初始化8 K; X+ s) s9 Z: ~! y8 G  j( v, T
            UARTInterruptInit();) {3 P6 b3 ~1 A  H: k8 Y

8 D& X2 S: I! @+ ?$ Q9 u
. L/ S2 g: @4 C+ N% d/ W) Qvoid UARTInit(void)
9 k/ ~6 @1 ?8 }1 {; S* f0 Y7 e  f8 F{
( L: R; `  e# ?9 F" @8 M* {        // 配置 UART0 参数
% V2 s+ \8 T$ N( ]+ n        // 波特率 115200 数据位 8 停止位 1 无校验位' ]# C3 r8 y" y0 E3 g
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,( p& o+ A2 T( b
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);- n9 t3 ^8 [0 P) e5 h( w
        // 使能 UART0
. I5 U6 G& |% o( a& ?, l- q        UARTEnable(SOC_UART_0_REGS);$ Q7 X* Y5 z: Z: G4 d( l$ h

, I; i3 E  t" x3 x8 u    // 使能接收 / 发送 FIFO- h! c: M" C: J( q
//    UARTFIFOEnable(SOC_UART_0_REGS);
2 v* _3 E' x: ^) U+ {5 x* G
' D$ i% J! m2 i: u6 M& W" A- V+ z6 Y        UARTFIFODisable(SOC_UART_0_REGS);
1 [( I/ H2 W0 R& ^8 I) n6 a! c% B
    // 设置 FIFO 级别     接收FIFO的级别
; U+ G- d; K" Q4 g' m) c  p4 ]//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);  L2 T/ V! \. z" P3 Y( b" ~! K; ]
}
" G, q6 A& a/ `5 n

9 D' b  O: E7 q+ b1 J9 g; \" d% B
void UARTInterruptInit(void)( A* O; ^0 j4 K! Y. L( n$ X! D( q7 N% i
{
; z6 W+ w6 a: h- n* f& F' x( T  T        IntRegister(C674X_MASK_INT4, UARTIsr);$ J* Q  v/ O$ P, n
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
0 `# L, @+ A) E. L& @0 \        IntEnable(C674X_MASK_INT4);
1 `1 k" c* l% k4 y1 D# ?
) R7 B* s' [0 H' M6 a* s$ u7 [        // 使能中断+ ?3 _3 U( Q0 T
        unsigned int intFlags = 0;
1 M- K  r0 [3 N# H9 K# s* R    intFlags |= (UART_INT_LINE_STAT  |  \
2 ]8 W; F1 M* i( r. ^, j! ?                 UART_INT_TX_EMPTY |    \+ J" n0 \- N: B& A
                 UART_INT_RXDATA_CTI);
! ^- T& a2 z5 D, ]    UARTIntEnable(SOC_UART_0_REGS, intFlags);
7 B: A3 `2 M7 [2 V}
2 x1 }. f$ ~( s: ?

3 z* w& O# d' Q, _+ I
1 \* A- p8 Q1 J, F/ xvoid UARTIsr()
& A7 x) }8 g5 \/ V: }{
2 h$ D  b6 J1 e6 A: J  D    static unsigned int length = sizeof(txArray);
8 o3 w& n4 j, F' f# P1 Q1 Z    static unsigned int count = 0;
6 i" ?  W7 a8 D2 T/ h  T    unsigned int int_id = 0;
- Z& B# t2 ?5 ~8 r3 t$ f! r2 P: J% S' Z) s. f$ z, c) v
0 B: H! I3 V( Q  N; O

+ [3 h3 V$ e. `. \; a! L, d1 x    // 确定中断源
/ I0 j: R  v% p3 T$ q9 C3 \    int_id = UARTIntStatus(SOC_UART_0_REGS);) M6 d8 W* N( _+ Q2 D, b2 G: ~

2 h% `* F; y; s; I8 R3 j    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
% X2 E4 u: a5 c( h; Z! d+ s: p! P9 T. R; ^( s, {5 Y

0 r- N& U# a* s! ^    // 清除 UART2 系统中断- [) x. m9 I8 S0 O2 H# @4 @) Z
    IntEventClear(SYS_INT_UART0_INT);) x1 g+ H+ J' P; l

5 {! p; T3 a, v% `& L    // 发送中断
% ]1 M1 D/ w$ _1 y' z3 @9 o    if(UART_INTID_TX_EMPTY == int_id)
* Z' ], P* i# F: v: n& q/ H* D    {2 W' Q9 Z* ?9 O( }  U% z
        if(0 < length)
( Z9 z9 x/ I! m  P9 V        {3 S2 n- }9 p+ w4 Z2 \0 Y
            // 写一个字节到 THR
1 W- c/ q, [; {; F1 _" l            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);% T& P  O; h2 I$ t
            length--;
( _* V- ~: o7 G* V% h' O            count++;
9 i3 @% T. v1 N        }7 @2 t# v* ^- c& S
        if(0 == length)! E8 c# e0 P+ f( i
        {) s. D! v0 r7 r. }& N/ D8 P  m1 [
            // 禁用发送中断
  V' c$ E0 o3 H. i( f% q% k- U# j            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);2 c( d, y: g1 s* j% i
        }
5 m: k/ e5 B% [# y3 T     }
- z% `9 V/ A, C1 h7 r
' d6 s0 z0 z  J( D, h3 F    // 接收中断# ~- [* [7 b+ M: Q6 t" q' ]
    if(UART_INTID_RX_DATA == int_id)
- y8 l8 N$ C2 R' v8 L4 c/ C    {& U) z1 c: S7 j( c4 A$ T* r
        if(status_a0==0)9 O, Z% v% I, w4 t
        {
% ?  w6 b) W0 a( v& X- [* }                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 Y6 [. A" k$ C1 A% w
                if(a[0]=='#')( h- _! F1 g3 U0 S
                {: K- w8 L1 M* p' U/ i$ y
                        status_a0=0x01;
7 S; w& `: a/ E7 ^( H& X# y. F# k                        status_a1=0x01;5 i: h& s! W/ i4 G6 f
                }" _9 m& ^' L5 |2 E1 {, n
        }' U0 Q$ k8 y# T& Y3 g$ [
        if(status_a1==0x01)9 ?0 S' L7 D. x3 a/ N8 C  |
        {7 R! g, a! @4 z9 L" n$ V
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);: V( y! M. a" ]+ I
                if(a[1]=='R')# c! C8 A" A/ |  B# t
                {
4 X# w/ v: p, P# z" r" H. F. i: c" l                        status_a1=0;8 e. V0 D$ R5 |/ j/ v
                        status_a2=0x01;. H" g2 z# L9 z+ M# w
                }
6 O- C+ k, [! k$ N: \        }
/ P+ S" a! f6 X        if(status_a2==0x01)
8 @% g7 D' t6 y' E: @# \' C        {
$ ~' L! d6 b# W" j/ F( j                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
5 g9 j( n! Q, @* K1 x1 c                if(a[2]=='A'): G' b( j+ [0 w% Z8 \
                {
9 h# d9 u+ [/ s5 l! x                        status_a2=0;. \2 h0 u5 G5 Z  H1 \( r1 D" \
                        status_a3=0x01;9 P- X# H6 Q) W: }6 C, \. K
                }
! Q6 v+ Y3 G* j/ R" B1 p% K        }
+ t0 w( ^1 K1 Y) \2 u& u: R        if(status_a3==0x01)+ n# X& o5 S/ U: r0 |
        {! g1 [* v( h2 M( p, w
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
; n2 [, U9 p$ ^2 q: x  x2 W) T                if(a[3]=='N')3 m% f5 ^; X- V1 R% n
                {' M$ M. Q0 a" B* Z
                        status_a3=0;
8 w9 ?! B. m' F, {; W4 M                        status_a4=0x01;
' d6 w1 p3 E) {8 m                }
, r4 [7 p) j" R& H        }+ o7 \; }6 h  g; n6 X+ W& j
        if(status_a4==0x01)
' l6 b/ A9 r- [7 N        {
0 ^2 Z5 Q: h; ?" q                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
- M6 U; D  z- H  R% t                if(a[4]=='G')8 n- c7 Z6 A. {5 Y0 \% E8 z
                {
# p# r; e" m% S& K' [1 \! b* q+ B                        status_a4=0;" q0 P; X' G* e) k  ~+ B4 O" o' f
                        status_a5=0x01;
% Q# I7 E2 i/ i. |: a4 n0 S                }
) E4 ^5 }9 [. I% c8 l$ u* Q        }
- r7 P1 v, ^  C2 a( a' _. e' G        if(status_a5==0x01)  D! \2 r9 W% t8 K5 x
        {7 f( s* _* K6 |4 N. D: y9 x9 C
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);( w, t  \& t7 k+ t, i* H* h3 v
                if(a[5]=='E')# ^: O4 o$ ^7 k2 K4 d2 V
                {! y7 C5 q' A  g" f; h+ Q
                        status_a5=0;2 J4 X6 r$ Z" f4 \2 C! A1 Z" t
                        status_OK=0x01;& q" R7 Q# O  U4 N) [8 p
                }6 H& S% @% ^1 `3 R7 c) G4 m- n+ C
        }
- x* H! T( p9 W: ]4 J            if(status_OK==0x01)
& g1 h: H/ J' w  r        {
3 }* S/ Y2 ^+ y2 m7 w& Q$ p9 h$ i) {                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 u: G8 z8 }+ h7 m: N1 s                        lengthrx++;6 E- J6 x8 b; q8 |
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
  o! Q1 a$ G$ ?7 V2 I& g' n8 p                        {" z% b: W4 _) U
                                RecState=0x01;* w+ L* R$ V9 c& f* y! D& N! _
                        }( ^! v: C& @* b; g9 v* s# L
         }' u/ Y5 ?4 L8 X2 a: m& f2 j
" ^& W3 n7 x6 ?$ j
     }
' B& E6 A7 b; l# ^1 E- A. I0 f6 F4 ~2 V( H0 o* A
    // 接收错误
% x3 @3 u+ e/ v4 b0 s2 `    if(UART_INTID_RX_LINE_STAT == int_id)
6 I% ~3 {+ v' w7 p2 @! J% e    {
& u6 \6 h( P  J+ x4 b        while(UARTRxErrorGet(SOC_UART_0_REGS))
3 ~, }5 m) y: Q        {( n# o5 a6 ^& x# U3 }
            // 从 RBR 读一个字节
# ^8 I* @. ~6 [5 W4 U            UARTCharGetNonBlocking(SOC_UART_0_REGS);
' A% n8 M$ v) y) O, w        }
& r6 G. S! g& c' B; ^% c5 _( H    }
/ ]$ h% D: X) M9 U# g+ y
# K' B0 O# \+ V2 \' a2 X; v    return;
5 k& z& ?7 a) J- E! U/ P: Q}
) k) k7 s2 q; p* S# }" E; p0 {; x9 Q9 S2 K

9 [+ ~, Y! v$ H3 C
6 G) M9 `$ ~. C! [/ [; Y& }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2138

积分

创龙

Rank: 8Rank: 8

积分
2138
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
4 y% C& g& k5 [
( J! {9 T3 w0 y% eUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
, `/ y; U) {8 ^, L
0 _9 P' i: |2 k1 U  \$ F要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:131 N, x$ i# S4 I" u. e
hi,: `$ W0 d: f# i: z) x

: h: V' X2 Y% Z: NUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
; E) h* D1 I7 X! ^
void main (void)
" h3 h2 j/ {# G8 s' A{
3 K$ I( f$ i# t  g+ c- M3 a" g$ w        int i,j;, g+ |! t2 P  k  T' F
    char *str_buf;
5 S( R, b& v; J' j& B6 x; c1 `    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];) A' P2 U4 ?8 O5 Z" n+ V
        double est_L_b_=0;
' i. D! c1 @) m) P4 L        double est_lambda_b_=0;
( B0 l2 T- c+ L% n        double eul_[3][1]={0};
* l! b* o7 }/ t0 m/ a4 G& ~) q; `, \        double est_v_eb_e_[3][1]={0};) d# E5 {" x- M  l2 W  ~) k: _
        double est_C_b_e_[3][3]={0};
* ]& M5 i/ {8 V/ t- z. D    char *qm;  _# Z& |; X. a. R
    char rec[70];& v% @; e0 |$ y# j
        double L_b=0;
2 ^  R$ p1 ]- }7 r. |0 T. a7 w        double lambda_b=0;
; ?2 @( g% d, V2 q) c& g        double h_b=0;. A6 N( [& L( y& [
        double rate;
  H3 {% ^3 f' G- G- U
  z6 n) C* r% g, o- |! l
$ U9 ^" {) b6 l( U. e        // 外设使能配置
; K; z! B; H4 A2 x7 Y        PSCInit();9 u1 _6 m, \2 D4 e/ J
2 b+ W( R% ~7 v" M7 ~1 q( K
        AppInit();4 v  {, a( {# }6 \. j( n

! D8 k6 L! E9 q$ O9 R4 s        // UART 初始化* L( Z6 C& O6 w8 @& @$ Z+ h
        UARTInit();
' g; G& b* o* \1 G* {! L: a; A
. g) _; t* n* ~        // UART 中断初始化
: ~1 l2 C; ^" U) S* w- X        UARTInterruptInit();. I$ p  z( R& x: |/ F& w  a/ @* y- y$ x

3 t/ ]$ V  o. |) B- G* s$ z0 K: l    evtRcvd = 0;
6 \  h) u& Z/ r    RecState=0;, R1 z6 r  L3 Z" h8 D5 L1 f
    /* Initialize */. y- ^: {7 Z, h! w( e- G4 J

: v; I' W6 N9 c    printf("DSP subsystem ready\n");
, a# o2 D2 H1 Y: I- J
' a1 h5 p; ]7 d: h    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));$ i9 ]. d1 @/ n* J$ E) W# P8 ^
5 {; V9 x; F" d8 p' I
for(;;)8 l3 C4 I/ m( ~1 A, g' h8 t4 V0 F! e
{
+ L1 ^+ {, ~3 l$ g$ U/ C4 j        if((RecState&0x01)!=0)
# C0 m* X% W% E  I1 H6 p        {8 x5 j( K$ Z$ c" x( u7 y
                printf("liuzhenxing\n");5 S4 X  e& x! b" n
        }
8 m' X3 {$ i& {4 D3 F        else
/ [/ Z/ A. w3 |+ b5 t        {/ D* V, t0 w, a" [3 r: F# Q: z" `
       wait_event();3 l6 M$ B1 x) H2 w$ o* s& C5 o

3 ?1 K( @7 ^5 Q# j# }! V/ i* q0 n4 A2 f           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针: }; x% ?% L, ^+ D8 P& y' P: b

, w$ K: b' L$ h           for(i=0;i<60;i++)' L9 e) d0 U  U
           {
8 j7 H9 b- v) b. r9 Q+ G* E                    rec=*qm;* \) B1 d$ |( S, F# e7 Q8 @
                    qm++;
, Y1 T+ H7 n, {5 u( ~3 m# K1 u           }, L9 k# N0 l( t2 G4 d. C( l6 A
5 N) `" r7 G+ u& u' E5 v2 g
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
' Q* ^2 r) N0 ?" W5 @6 Q! f0 g: I; C8 W2 J  j1 c( |
           L_b=L_b_receive_double;3 ?; \6 E. e% Y$ g) Z" V4 S2 w
           lambda_b=lambda_b_receive_double;
. g6 z8 L) C- @4 E& V           h_b=h_b_receive_double;
! @) c# l1 Z7 x- b# A, |1 L) t- W           for(i=0;i<3;i++)7 q& |/ s) h& O
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];( @( K: D3 O3 T) {( Q0 |2 z$ E1 K
           for(i=0;i<3;i++)# W: [8 ~! P2 ]0 r) N. A3 u
                    for(j=0;j<3;j++)
  F1 U- z& G2 ]; u                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
0 X2 n! T% g6 z1 Q
8 a/ o9 \, |' a2 ^6 J! C: T- w' V: {                printf("L=%lf\n",L_b);# W3 S$ I' w# H
                printf("lambda=%lf\n",lambda_b);
9 F6 o" A2 E8 S# }% H' m8 Z                printf("h=%lf\n",h_b);
5 E9 a- }5 `- |; t2 O6 e: s9 \( ?' K/ m! F2 u
                for (i=0;i<3;i++)2 Y/ `: L. R6 s' N1 l' h
                        printf("%lf\n",est_v_eb_e_[0]);- m: r5 h9 r- }2 f, P. T
                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]);
/ `: J, x9 D0 L8 s( \% ]8 y4 L" _                printf("rate=%lf\n",rate);
- Z9 i: X* p& m7 v8 f. Z) I& I! k& U2 X  O
                CTM_to_Euler(est_C_b_e_,eul_);7 t8 Q( s0 H: G+ ~/ D& P+ R
                for (i=0;i<3;i++)
1 j0 C% ?& C7 h" Z  B1 d" i8 O                        printf("%lf\n",eul_[0]);
% A0 ]* g/ B: @) H  z                printf("end************************\n\n\n");# l4 `' t2 C2 H/ @4 ]1 ~/ T. o; G
$ B5 y7 Z; v3 N% s3 S7 I" }; o6 r; @
                /**********************************************************************/
; \$ w+ T. u+ e4 E" I" {, [
2 w# k7 n- q) a, _7 |            char flag[4];! ?) h* a# F: g, H
3 Y( r; x% X6 s* Q: U/ u3 [
            flag[3]=0x00;' E; v# ?; W* j+ y. o
            flag[2]=0x00;
/ f, b/ `) @& Z3 N! L            flag[1]=0x00;8 g3 \, _( B2 X  |
            flag[0]=0x01;
" }( Z: S0 @% N& i. F9 F
8 S0 o! x' q0 _  j+ t6 c5 e    /* Allocate I/O buffer and init with string */
( L, W$ H2 q% s' w/ w! u    str_buf = (char *) malloc(80);3 D4 N! X  r/ E) f4 e
    str_buf =flag;9 b0 v" j2 W% P& V" Z6 m( t: t

( v) B! Y$ P, ^    /* Send buffer to remote CPU */, s: Q6 s* K4 K9 S; W9 R  H
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));& `: O7 [3 C+ m* ^7 E3 x$ V
- O2 b; L5 M% o# ^
    printf((char *) myPayload);
  F. Z4 x' Z" E9 C! W# V( a        }+ g" A: k$ S3 J% U% q& `; h* B
}
+ a2 G7 g. X; _/ T0 V! m# b$ j9 R! P' M6 Q3 ]
    WAIT_HERE;3 _8 a* Y8 Y' n  E9 {( p
}: S( ]  c# ~' S+ A* 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 | 只看该作者
我说一下调试的情况:6 D6 o) J: X; n, X$ ]8 p
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。' [% E5 C' A+ ?
然后我把双核通信的初始化屏蔽掉,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
' \2 D; a) _: d. F* i' nsyslink 的初始化是否成功,notify 通信是否正常了?
9 A* S% G! r/ e! H8 p. o) Y
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54. D. v) C( @& g" [" n; |6 k9 a6 ^
syslink 的初始化是否成功,notify 通信是否正常了?
: P& k" v( B+ ^2 N( w9 C9 ^6 S% j
我用的是裸机开发的双核通信,用的是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, X8 E3 f8 R/ H" V) H$ }
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

, l  h) e+ Q# D$ x8 s6 @建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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