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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。/ Q: d! c1 ^2 [) e7 a/ r$ s/ g, n$ v
我是在DSP初始化这不太明白。
  i( F6 K3 Y* V4 S7 M初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
& Y# ~8 S- k: S0 ~7 x. \' @* i9 A9 `; ^  v  |# f9 L9 |

; n- }6 {1 D1 A0 _首先        PSCInit();//UART0使能3 c, K: }4 N! Z, z6 B
void PSCInit(void)
1 W1 b) l2 D6 @# _& _# J) v8 ^) b{
' N9 B& b6 K/ Q  ]        // 对相应外设模块的使能也可以在 BootLoader 中完成
+ W3 e( u9 r- e7 b    // 使能 UART0 模块
) F" q5 p! C# \/ z5 N: Q    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);) ]# H, j$ @$ m/ ?
}- u  B7 O" H1 d9 k; l# ]& `5 R" G, f
; G8 Q  E! c! |9 S

; {- B5 n; p' W" ]然后是 双核通信的初始化           AppInit();
5 S3 K" V  q. M7 e3 `' C% z+ {0 lvoid AppInit(void)
* V# [3 x  m. {8 z. t{
* q) Q7 w  w8 [    /* Structure to initialize IPC (see Ipc.h for definitions) */
0 ~7 {# ?$ Z0 {9 ]+ w    struct IPC_cfg ipcCfg = {! g! `# y8 m/ |3 S- E* ?
            IPC_DSP0,             /* local processor Id */
' a. L6 J/ i3 d            IPC_ARM_HOST,         /* remote processor Id */
" }0 O( V# L- o            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */1 D8 Y+ r1 q) j) ]$ x! {) Z0 @6 J
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
) h/ J- i9 @+ u6 b" s            NUM_MAX_EVENT,        /* maximum number of events to be created */
, M7 \& D, o( h% p: f1 M# f( t            &ipcPvMemDsp,         /* local side private IPC memory */
3 ?6 ?3 S' n" k5 Y5 ?& z            &ipcPvMemArm          /* remote side private IPC memory */
" P$ l3 J" b  d' O: f" r3 L# y    };4 \5 g) q( C/ w
    IntDSPINTCInit();
7 \2 G0 h2 e: K9 i- H7 U8 B1 {$ \    IPC_init(&ipcCfg);+ ?- M/ M, Y; _+ K+ U
    IPC_intRegister(C674X_MASK_INT5);
6 D6 U2 j+ I* x: ?( x- K( o    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
; V9 G- a( h: y+ ?1 G% {, D5 p
8 |/ z: i8 x( g# g) K* c; z7 [7 M    /*  Enabling interrupts for DSP C674x CPU */  {! H/ y  D2 @( \+ U5 _
    IntGlobalEnable();        /* Enable C674x global interrupt */5 f7 \( g4 |4 u# `: i
    iAssert (Notify_start()); /* This will enable IPC interrupt */
4 j  M6 X. q; \0 P# L}
0 R( j+ r- I9 o0 F) X% Z

( C/ o7 w3 k5 f$ J& e% }5 u+ D% n4 A2 ^& Z" I然后是  # R7 B' q6 d' j0 x/ x
            // UART 初始化0 ~! Z4 v5 i, j# M/ i& V, U
            UARTInit();
6 g' d: K+ B; @6 ?( B
7 ~- }* g( `- G, |  _" c' b            // UART 中断初始化0 a2 i* p+ g  _, }& b
            UARTInterruptInit();
  }" p/ b* |* M+ I* F

/ N3 @% p  h( N8 R, `! z0 @6 k8 V, c( O! f, X' p
void UARTInit(void)5 L- `, L" w2 d% N+ |
{
  h. r6 `  y$ B        // 配置 UART0 参数
+ f  u/ W1 d3 b        // 波特率 115200 数据位 8 停止位 1 无校验位
% E& E+ @/ C8 d    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,) @) j/ J+ [2 N! e) a% D; h' n) N
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
0 c. n  R5 U/ d& a8 F0 o        // 使能 UART0
5 e& Q# j+ a6 {- o, e- F        UARTEnable(SOC_UART_0_REGS);
' D# k$ u" B; n3 C5 b1 T* l; u8 ?/ j- [# F- a1 j9 c0 g
    // 使能接收 / 发送 FIFO9 x2 r# ?$ I5 d# u
//    UARTFIFOEnable(SOC_UART_0_REGS);
. g7 E, ~: v2 R3 J& |. N& R6 q" D  h1 N( |7 U
        UARTFIFODisable(SOC_UART_0_REGS);
6 |+ c# i* a+ T$ d! ~
% K- F' l- P5 }    // 设置 FIFO 级别     接收FIFO的级别
; Y3 _4 V" E( @0 E//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
4 s* E! M3 S0 H: z9 r+ u}4 {# e* m  Q6 I. [

" g  ^! M( V, z
" z, \. J8 r' |  g) f, s$ H  Fvoid UARTInterruptInit(void)
5 `# V/ w0 ]# G4 ~' \{) S# |) {; R  v, c% Q+ X
        IntRegister(C674X_MASK_INT4, UARTIsr);
1 k( }8 c5 `" X5 a        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
+ `3 z' W$ u' P* X# X3 w        IntEnable(C674X_MASK_INT4);
# }2 U! V8 Q( e1 L* |' f3 ~5 i/ H+ \* g
        // 使能中断- L3 \6 n5 B# J1 A" C: L, o
        unsigned int intFlags = 0;
1 N/ c4 R6 C% q6 f5 @    intFlags |= (UART_INT_LINE_STAT  |  \
6 e- J0 q; K0 I. E) X! x4 w                 UART_INT_TX_EMPTY |    \
3 z; Z5 [) P$ D* G                 UART_INT_RXDATA_CTI);& Q7 g. ?* l5 z) G. v
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
* M- c$ Q) m$ I' t4 t7 i}, m2 y+ O. g. n
% z9 W0 D2 Z% h; E
1 U8 h: V8 S7 T; |& W
void UARTIsr()- u4 |5 S5 [3 X( u0 A& X
{
1 [& o7 z& q' K  s1 j3 c- l    static unsigned int length = sizeof(txArray);
* W+ Q8 h* x3 s1 T6 L7 ?# H    static unsigned int count = 0;" t2 a0 u" [/ p  ^
    unsigned int int_id = 0;
3 Q+ l% m7 z% s
* r4 `; }+ P, S( U9 G* S
: k0 ~/ A! x7 e: g4 o& r, c9 a- r0 p# L' x/ ~5 e% c
    // 确定中断源
9 J- J$ e; Z8 o3 B2 x    int_id = UARTIntStatus(SOC_UART_0_REGS);
% b1 W4 v* V) U7 Z; B
( Y6 y/ ^' |! l- c5 T/ |    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。8 l6 \- H. x! M4 j1 d6 e4 B# ?

0 j* t2 Z+ }+ W7 `2 _1 l  d) T
: p3 y0 [9 a# A" W$ ~    // 清除 UART2 系统中断( ^3 t7 x; v' }/ \" U
    IntEventClear(SYS_INT_UART0_INT);; P# C5 L! n8 |
3 N: r8 Y. t% X0 x  s: f, \6 p! }
    // 发送中断) `+ E/ X2 F% y2 m
    if(UART_INTID_TX_EMPTY == int_id). T' Z; w! d# ?8 t" L. F
    {
4 W# K. _' v, b/ s* q5 h6 \        if(0 < length)7 o( ~1 ^; W: e; ]1 f3 N
        {' w/ p7 M7 c, G3 r
            // 写一个字节到 THR6 _( Y3 l4 h5 T& M: r) U
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);. b  a0 u- a5 B1 y
            length--;
, U8 @8 B: }* r' p+ ~4 b  b            count++;
- d' k  o  T* T  v6 O' d, d        }3 ^5 v$ H* N3 A
        if(0 == length)$ ^' R2 P4 A; }$ \4 ~: A
        {2 i" u6 ^: p, M& v9 X4 J$ a* s  w
            // 禁用发送中断; r' n/ f; |7 ]4 ?! f
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);% ]4 }8 c& ?% D: k7 K) m1 d3 @# L2 C- e
        }
0 O7 |2 C" k2 L8 w     }! [" }! V: v' ?9 y
/ z; D; X" E0 H& ^" c
    // 接收中断
* u6 o4 s4 B) z7 C$ q+ k) l    if(UART_INTID_RX_DATA == int_id)% u0 o- z" e7 L! j/ w8 z' J2 w/ ^
    {  @4 m1 e6 ^( D" C
        if(status_a0==0)
+ `& x2 M2 M% C        {
3 X4 T7 Z( b. X* B* r6 a                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);0 H$ o  E9 }' V! k' c- O
                if(a[0]=='#')' b% K$ s2 S: ~$ a2 N
                {7 z1 O6 Q1 `7 n+ o# W/ d- e% }. i1 z
                        status_a0=0x01;, m9 \* T# ?# ?- S" X
                        status_a1=0x01;
# `+ l+ H! l- I3 q/ c  E2 S                }
. U7 G4 r. Q) Y" f! b8 d" R# B        }& L6 J9 P7 M5 @8 L
        if(status_a1==0x01)& \' m( E8 b; P+ u
        {
) E' E/ z) |" m$ z/ D/ h& Z8 s                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);. k& ^3 B% U1 ]9 M
                if(a[1]=='R'): X! O) S( w# {) w
                {
2 {& e) [, D5 [+ u5 C. I                        status_a1=0;
: d2 F+ \8 h8 ^. X. O                        status_a2=0x01;
2 r6 T& ?/ v% d" F                }/ r8 W- s+ c" z
        }2 x1 u8 x9 I6 {1 u% O
        if(status_a2==0x01)7 i2 n0 N) f% `- c
        {
' [: R& A8 b8 P                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);, J$ u9 _( W1 n! S0 A7 ~! z
                if(a[2]=='A')1 O# s$ m' l3 P5 ^+ D
                {$ \4 @7 k$ N3 s  k6 ?. x* A
                        status_a2=0;
$ @$ S$ w' a1 T$ n% X                        status_a3=0x01;! n7 [2 g; T" Y- v* {7 a6 m
                }
! R. c- c4 l7 s0 Z% ?; Y- }8 g0 x7 E) n        }
- {6 q% k7 t8 T" w4 \/ w        if(status_a3==0x01)
9 V8 }! [4 [. z$ {* {        {
3 [3 j1 w2 C/ ^5 {                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
2 x* q5 L4 Y" r" Y                if(a[3]=='N')' y' l% `. E& Q( q$ I; T$ }( `1 B+ L
                {* F2 S3 W* Q9 Z/ _4 i- R
                        status_a3=0;
! a' V1 p& N4 b, ^9 u                        status_a4=0x01;' S+ F- p- u! L+ u& C
                }
: r8 f. m, z) Q6 F' R        }
7 x' o3 s7 `( C  a1 |, `        if(status_a4==0x01)4 c& Z1 l& R) }! ~$ v% d
        {
  F  @% I2 r" _! W                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; g  r9 g  o& q+ @- f7 J
                if(a[4]=='G')$ B$ o, F1 c. r: h0 R# X% u7 }
                {5 ]' a/ |( z' T! P
                        status_a4=0;) p5 _1 [- G: ~/ g
                        status_a5=0x01;2 s, I3 r. N4 H  H/ c* b: \5 K
                }
, q: }  X6 q! z) ^        }
3 L" X1 x9 b0 A; y  \  d        if(status_a5==0x01)
9 G0 ]# F. m# y        {$ @' C( @: U9 K6 j( e0 W/ p; \1 T
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
" Q2 @( [8 ^1 i7 W  `3 x                if(a[5]=='E')  b% V- B" h/ B
                {* v& r1 `5 x' q3 s
                        status_a5=0;  S2 i  S9 U3 J6 q+ c1 Y/ p! V9 L
                        status_OK=0x01;) w6 `6 R& D, o2 O1 G8 w  z) n
                }
3 s- t; p# r4 F# C. a7 K        }8 J1 f& O" n2 _% R7 g
            if(status_OK==0x01)+ B! l1 G# h! U9 }& s: P
        {, H6 p3 O* E5 B; x4 M
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 Z2 A- E( O  Q1 @  y6 T                        lengthrx++;
- L3 d' c1 U) l, n                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值); c. F& O% C$ k  H" \, a" }
                        {- ~  P5 e& D0 n' ~6 H6 C& b
                                RecState=0x01;
* \7 y8 y2 |/ `' b  l" _                        }6 l- t/ K  T2 j
         }
6 X; J- @8 I' ~/ t! J5 [) v
2 r! d+ s) h6 z* O8 g; S     }
, L/ M$ v" F( ^
) _# D1 p+ j+ a: j# n' W8 B" V    // 接收错误
/ N% L, n( d: g, k' T2 L4 p    if(UART_INTID_RX_LINE_STAT == int_id)
4 \/ _; k0 f5 U7 }+ X    {
9 H+ @, h1 O9 |' m! a* D1 Y        while(UARTRxErrorGet(SOC_UART_0_REGS))5 K, W/ e4 S) m5 y
        {' Y! D, I/ h: T  ]
            // 从 RBR 读一个字节1 t& C4 O* K! }" Y
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
; U" @4 n  D+ s. z! {: g' M  `        }
  i9 x" P2 ?0 d/ T7 g3 P* v6 L    }. L; k8 |0 H# e# n4 e8 ~! L/ L) |
- f6 y8 @& ^, {+ @4 r* w% j. m4 }2 I
    return;
) v7 A/ O. x3 i}
  P* @# n; S+ ^1 W
0 G# D3 `' J* M' k0 O( m

) F" k9 v+ b9 c( P8 Z& p, A: s: ~: M7 d4 Z' @0 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2101

积分

创龙

Rank: 8Rank: 8

积分
2101
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,5 H% C8 S6 z8 Y& h- a; u

" ^+ f$ F3 n- B3 B, w$ c2 D! e5 |UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
( [. E$ v5 k1 a" M3 K7 ^2 n2 M9 a: c! _  |5 J$ P
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13( j+ X0 b! a' c7 e- Z* g. I
hi,
% y: E- \4 e! j
+ M' h# s$ ^. n* A1 g- F2 E- i) wUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

2 c  d) [" Z- V( cvoid main (void)
9 C8 m, S( H- r2 P3 z{
9 P7 T/ b1 z6 H/ I$ A( d! Q        int i,j;
0 ^5 k1 L4 S' f( t    char *str_buf;6 Z7 t; D" [3 T% x' X
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];4 ~% b0 \. b4 g" f! }! Y
        double est_L_b_=0;0 P2 N( B6 A! G' N" c. B
        double est_lambda_b_=0;3 S! ]5 @0 Y% O  ^: {' G7 k7 m3 z
        double eul_[3][1]={0};
1 o" b/ U' j: S7 y        double est_v_eb_e_[3][1]={0};
$ ]1 _8 w4 e9 R        double est_C_b_e_[3][3]={0};: E2 G9 l: h  W6 n9 B
    char *qm;' x$ a  |# O  L+ p, S$ e9 w0 T
    char rec[70];
: @# @- s  j: q+ o) i+ [        double L_b=0;
& j, f7 ~5 t' m* n        double lambda_b=0;/ J. N! `) m. a
        double h_b=0;( e+ n1 f' ]7 l5 P' S5 y6 Z& v3 w, M" G
        double rate;
6 n/ W0 Z3 `% \9 m$ F1 p4 A! C4 V3 ~! |' k* r, R4 k$ g; p

0 Z/ I  T  B! w3 M; I4 M        // 外设使能配置
+ {, p! D7 D8 |% W% J$ \* l; s        PSCInit();
0 N( V( ~. u& I% o/ ?3 b5 F% v6 F2 o+ A3 U% d* M: f1 k& o
        AppInit();" T+ L0 U' T" n+ p7 F6 \4 ?4 @$ g
, C$ }5 I. N  |; [& i9 Z+ ]
        // UART 初始化, U# v7 {% ^$ Q- t( @2 v
        UARTInit();
. a. Z* ^$ W; O
  v( x& T- o3 h% \: g' }        // UART 中断初始化/ u2 Y1 `9 y0 L& ?6 h& |
        UARTInterruptInit();' e7 O0 h* r, Y: [5 z$ L+ ?

( y. H; N) m; c) h6 B1 T& G    evtRcvd = 0;# k7 u- q# w. A
    RecState=0;
$ y: _9 H3 q4 D& P" H! O) Q    /* Initialize */7 e+ ^" E+ L8 g! g5 j
+ ~8 {6 u! H+ {6 r: |5 b! a4 Z
    printf("DSP subsystem ready\n");3 y4 ^) C# B+ R" |
9 A; M) S6 K6 d5 u1 H' R6 W
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
8 {+ R/ ~& a7 f; P2 s5 C. S9 ~
* X6 R$ e8 T1 ]* s' hfor(;;)  m/ B5 C) Y6 o) e) s: \+ b- _) I
{
( _* b0 D4 g! A. U5 X3 P        if((RecState&0x01)!=0)* M$ V7 X5 ?- u1 `9 W9 [
        {7 w# a# B2 O& P
                printf("liuzhenxing\n");' v6 r! J. u" |
        }
4 g9 m6 l7 q7 P. o2 ]        else# I6 ~& C0 s4 \6 Y) c4 C
        {
  f/ W- I: p6 W       wait_event();. H2 t7 j7 t# m7 n+ s7 d7 r0 I
5 K2 ~4 ]/ u+ x/ |; R/ u) a: U
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针, R* v, f: L4 B; S
5 q5 o# [$ y+ x$ P! J5 k
           for(i=0;i<60;i++). j! \4 D) D4 d! b% t5 _; U
           {; [% Y) T9 y0 c# s: e
                    rec=*qm;5 [" Z4 X2 W) @3 a9 U' S  r
                    qm++;
* Y5 @+ R$ q- s7 f7 k: q0 J' o           }8 S( U* X* r* u3 G
; ^* H+ e& j& N- D1 |9 J. N
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
, o+ u8 ?, O0 v9 }$ B& c. V6 a- X& @7 j4 a/ H& h3 {
           L_b=L_b_receive_double;
, @# ?+ {% d, Y, i) \           lambda_b=lambda_b_receive_double;# i0 s- S5 [6 h7 H
           h_b=h_b_receive_double;
8 V. R' E4 ^2 q8 N, Q# D4 e           for(i=0;i<3;i++)
2 ~. _* @4 c2 c! M* H                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];, q5 e5 X4 x- ^7 z. Y$ {0 t
           for(i=0;i<3;i++)4 ]* E4 O8 `/ I3 B# `, v
                    for(j=0;j<3;j++)+ F7 g7 T! P% v
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
8 K8 {, y, P) m) [" h( H4 H4 S3 F6 b4 b$ q
                printf("L=%lf\n",L_b);
& t5 ]( G1 l% o. r1 U. h                printf("lambda=%lf\n",lambda_b);
* [& Y* G: K0 K- ^/ M7 _                printf("h=%lf\n",h_b);$ d. O" Q( z! R  ]
7 e, R6 f+ K+ ?  a( v* j& y
                for (i=0;i<3;i++)
* q$ E# N0 f1 g6 w5 O6 m                        printf("%lf\n",est_v_eb_e_[0]);. S+ k. I0 Y: m* p. o' S
                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]);# M6 ]- q$ z3 T
                printf("rate=%lf\n",rate);1 d, ^7 h- `7 T
0 y3 a8 X5 C5 L
                CTM_to_Euler(est_C_b_e_,eul_);
% `- @! [& q# i" z/ v' U                for (i=0;i<3;i++)
5 O+ e' L0 {" N3 r6 T- g' U) p* l                        printf("%lf\n",eul_[0]);0 a7 o- h9 E1 E* M9 a" Z$ t* J
                printf("end************************\n\n\n");: `' i2 h- d. C9 H
) Q  M0 A. W) ?8 p- |; y
                /**********************************************************************/! R0 P+ \8 r- w$ z- ]9 X3 f

- X. r9 @2 }+ U            char flag[4];
2 @) W( ?- d, P( L
* e) x! N9 c) H            flag[3]=0x00;
* V; `7 U7 b3 s/ @9 A) D3 ]: O% O            flag[2]=0x00;; m( E  L- |! @: O
            flag[1]=0x00;
( B6 t& v4 L: j, _! g7 z& S            flag[0]=0x01;
: D+ ?! x6 d  G9 D! d# F+ ?+ @2 T) {6 e( E
    /* Allocate I/O buffer and init with string */% k, ?4 ]& W8 Y* I- a5 m: P# H
    str_buf = (char *) malloc(80);
4 r0 w; L9 W# y2 ]+ y1 i5 b5 m    str_buf =flag;0 ]8 X; d2 d, m# M
/ g5 Q1 q% k& [* _  j' Z
    /* Send buffer to remote CPU */( o9 L  V3 _( \- }  }% a; V& D7 y
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
9 ]7 `  n0 \8 h
  d. H* r5 i2 Y    printf((char *) myPayload);
2 m7 j& o8 W* A& M7 Q7 R        }4 W( y- w/ i0 ~5 a8 L
}
6 A, t! [* r6 u" H% L8 G3 q: F6 Z; i) t
    WAIT_HERE;
7 g+ z7 Y3 Y, x, M}8 P& x+ M# t; |; m* d. _8 D: ^
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
2 t) U) d  f! l0 q7 d2 D我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。  h) ?$ }# Q1 ~6 t! T
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2101

积分

创龙

Rank: 8Rank: 8

积分
2101
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 N) N3 V4 o# N- v8 A4 H' \$ r8 k6 ysyslink 的初始化是否成功,notify 通信是否正常了?

' ^4 c$ w0 Q# e# V双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
( j2 Z0 C+ H1 Q& c# S  Y* Bsyslink 的初始化是否成功,notify 通信是否正常了?
" |# }! N: C7 R4 Q. i
我用的是裸机开发的双核通信,用的是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: c( N- H" [  z1 R+ d! J, V( H
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

/ F  w% \2 [& `1 o建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 03:01 , Processed in 0.048441 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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