双核通信的同时需要DSP核通过UART接口读数据 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。4 ]; f8 I/ a  W$ p1 t
我是在DSP初始化这不太明白。
' ?5 |1 M6 Z; \! f* u' B; D. Y初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
2 b. V" N! m/ }. E) U/ ~1 s6 w8 X  H* n1 q% m, z
; F5 i0 k3 P8 ]0 K- E& N
首先        PSCInit();//UART0使能$ ?6 j5 D5 N7 l8 Y5 I- x- Y
void PSCInit(void): c8 c4 {5 o1 S% ?
{
6 \/ F& A$ F7 j/ V2 H9 a        // 对相应外设模块的使能也可以在 BootLoader 中完成2 l8 S5 q# ^* {  _7 ^3 o: `
    // 使能 UART0 模块
% g: J% r- G" v1 z    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
! R. z, h2 T8 f4 v& K7 s; f, s$ k}8 E7 G4 n, B8 T7 A

1 Z! |& ]8 d' x& w' b. w, k7 U, G7 C9 x
然后是 双核通信的初始化           AppInit();
( Z/ x5 a1 w2 P. F1 y9 A2 jvoid AppInit(void)
1 @/ F$ J, `4 ~' I) t* p, c3 W- X{; w  J2 c5 o8 G, o9 K8 E
    /* Structure to initialize IPC (see Ipc.h for definitions) */7 ~$ Z' \0 g" V  E% A; S) n# S
    struct IPC_cfg ipcCfg = {  P$ f' J1 a- {# y3 d+ V
            IPC_DSP0,             /* local processor Id */
/ l# H+ {4 z4 D( e8 ]; E$ H            IPC_ARM_HOST,         /* remote processor Id */
8 @* i' I, r. E. G: a1 J            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
& A( _; w* n7 C5 e1 K" F5 x            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */) Q) |: S8 F9 U  i
            NUM_MAX_EVENT,        /* maximum number of events to be created */* N$ H# O, b$ g# ?! Q
            &ipcPvMemDsp,         /* local side private IPC memory */
5 o. [. n6 y% s' K  k            &ipcPvMemArm          /* remote side private IPC memory *// e. F4 X' `6 K; f  C# T; q
    };3 Z8 G/ V9 U# ^; L' |
    IntDSPINTCInit();2 S$ P$ ~. v1 r& G
    IPC_init(&ipcCfg);2 r/ o% ~# o+ n( d
    IPC_intRegister(C674X_MASK_INT5);
1 |8 P& w! T& C5 A, h' k- R8 j    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));) v2 r5 @2 k) t1 F% K4 J& v$ A
/ I5 Z! O/ _, _9 V9 B$ t
    /*  Enabling interrupts for DSP C674x CPU */
- d- X, U6 Y# D1 P: F" E6 ^9 I' Y( x: U    IntGlobalEnable();        /* Enable C674x global interrupt */3 l" j" C6 R4 w2 d4 B" U4 A, `6 \
    iAssert (Notify_start()); /* This will enable IPC interrupt */
* u3 Y  s5 G3 g1 I; J}
7 T% ^5 G- ^/ e+ B; W
" J$ F3 Y2 M, T7 {1 e# n
然后是  
" k5 M6 }! f" g9 f: c            // UART 初始化! q5 m! l8 o/ s5 |
            UARTInit();
& S' b2 f' Z  n% v% K- Q8 L9 p9 e% M% [
            // UART 中断初始化
5 Z; A3 K7 ]( q, T! A) i1 k0 w; C! R            UARTInterruptInit();* V6 m, g8 s5 T2 r

  }. `( C  r3 s- k/ K) W( n( c2 _( z1 j
void UARTInit(void)/ |: H# q# f  f2 C5 t/ \) z: w
{; }! [" o  ^; c8 {
        // 配置 UART0 参数- t& Y1 F6 Y/ u% ?) \* F: u9 x7 F* V
        // 波特率 115200 数据位 8 停止位 1 无校验位
4 X/ Z* Z  x: y$ I0 X( Y    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,' `8 G) w! T' C3 g) ^
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);* f( g/ `' g& @/ I% U
        // 使能 UART0; T3 K4 d( k* N: O! q
        UARTEnable(SOC_UART_0_REGS);( ^' P1 C3 J: ?& M% G

2 w+ T2 ~  y2 t% n    // 使能接收 / 发送 FIFO
4 @$ y# g5 @( _+ }! V8 `% m//    UARTFIFOEnable(SOC_UART_0_REGS);
, ?! h6 C; H' }. E- V$ M  [6 z
2 K8 D7 Q! ^* G        UARTFIFODisable(SOC_UART_0_REGS);
; F# u+ {5 I/ t
9 {8 ]- @' _& `1 L# F4 q    // 设置 FIFO 级别     接收FIFO的级别; w" m/ W3 Z8 w5 l& h/ D2 ^
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);  u& e' q5 n6 Q0 @
}
" j' f( K& l) v4 e0 L4 P; z" }

, @2 |. J. U3 [, v, I. E$ h0 r- r4 T) B* S, k: I
void UARTInterruptInit(void): b0 q: ~9 k+ _( M6 S2 [  r
{) r0 \% {, d5 o9 t& {7 D% W
        IntRegister(C674X_MASK_INT4, UARTIsr);
) C& n2 [/ Z# A0 n& z7 F        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
$ ~7 Q! b  K; d' D# X" o2 ?        IntEnable(C674X_MASK_INT4);# F, T. I) C2 k! x6 R
9 |! f, d, Z* q! v: i3 B: ^
        // 使能中断( R' E& y) Y" U  S* C# R* V& b% h
        unsigned int intFlags = 0;" D7 _, q. m8 X) u
    intFlags |= (UART_INT_LINE_STAT  |  \
9 n# S6 L# x6 r7 S5 I0 r2 I; {                 UART_INT_TX_EMPTY |    \
, f* k  X4 q% ?: t0 c/ v                 UART_INT_RXDATA_CTI);# s9 o" R0 h1 V/ g, V
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
; e1 E# \, f# I8 S+ b+ P/ a}
# x9 J; d  f5 F7 ?, J  E; ?1 g
( @. H* \4 L7 a9 j- s6 |

* K: X/ s" i* h' F( Ovoid UARTIsr()
5 j5 l* ^" ~6 |, ]: Z: u& Z7 |{" T$ S% a( W" k6 u6 P. F
    static unsigned int length = sizeof(txArray);
# r5 m+ {* j: G0 Z% s    static unsigned int count = 0;$ n. ^4 p( j7 j( w! j1 i
    unsigned int int_id = 0;
) [5 ~3 N# i5 g5 G$ H" Y( ~4 e6 s7 D. {& D, B

1 I2 s( f$ c! {+ T$ f4 U! g
: w# I0 `+ i& S2 I4 P9 j    // 确定中断源
* k0 h, W- W6 c: E. w    int_id = UARTIntStatus(SOC_UART_0_REGS);
" u4 i* i% e* \5 I
+ N8 q8 _5 ~# N( i    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
, [5 q* I' }9 b& [3 {# K. ]8 L  r+ s6 j% Z

- Z6 R* Z2 n( z- G; g1 v( }    // 清除 UART2 系统中断
! a7 N# o9 T7 Y; M    IntEventClear(SYS_INT_UART0_INT);
8 [2 A, g5 D4 t
: I1 C* t& }2 H9 ~) w( ]    // 发送中断
4 S' B5 w( Y  |    if(UART_INTID_TX_EMPTY == int_id)  ~$ A3 B5 T7 z# ?6 B
    {, I8 B1 B7 Q7 @% J  M; h4 [
        if(0 < length); J" l: e3 `5 m
        {
, D# ?! x# ?1 I+ _$ ~            // 写一个字节到 THR6 L5 b* C( A$ i- w6 }* D' w& c
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);: n' e: o( Q4 M6 _
            length--;
5 d; {! n1 V, W- d3 r            count++;) u6 s9 f0 R, Z$ x: O, h2 H  V) _1 O
        }
+ k9 E# {3 r1 u( A! ?6 g        if(0 == length)' \9 U$ H* d+ H7 Q! F/ E/ s
        {% q4 Y) j8 b. H- ^
            // 禁用发送中断
, B& R& n1 v0 z6 Y. Y            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);3 J/ Q+ C6 v' P& C. S5 P) f
        }; D& @, D# A6 }8 v5 Y
     }: `8 D$ v" f0 _+ W( M

3 |& J; ^& a4 M# o! E$ Q    // 接收中断
/ l$ T; s( N! P2 Y! J. t- c1 h    if(UART_INTID_RX_DATA == int_id)! [1 |$ V) z7 @3 o' Y9 u0 B
    {9 R1 e4 f/ [% M: D! g' Y" D; N
        if(status_a0==0)
5 ]$ n2 s, y! S  }. D0 r        {: D& x5 S7 D7 ~2 t% _
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ u1 ?& D  z: M  \( a- m                if(a[0]=='#')
7 O. W. Z2 B, Z1 Q% H- W+ [                {
8 @; ~8 v( r+ w7 C. q3 a                        status_a0=0x01;
) u* ]/ T% S1 A% b  b0 N1 [                        status_a1=0x01;: ?) i# K& b; }% h  @5 b
                }
, q4 g+ V: t# h/ m* t# I; q        }
+ f3 B! a: H6 X- {" [        if(status_a1==0x01)
& x  L1 g' @0 B8 _# i        {
1 p9 X; Q; P7 ~9 g; a, i" Y                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
& ~1 a. y, U* P: o% K                if(a[1]=='R')
/ j" _: D/ Z% _9 W# T; {                {& N" J4 z( F$ a, u$ g6 P+ J+ o
                        status_a1=0;
) @) J+ v" `* Q8 p6 o) z                        status_a2=0x01;
% ?; o7 @. t, x( ?. E. w& e                }) d. A/ ~- G( U' f/ e1 L2 F
        }; }% S0 X1 G6 g2 M0 Y
        if(status_a2==0x01)
# K+ p; ?" ?7 d. P        {
# O( t  Y/ m$ i& f                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);: M$ q! N$ `" s% c1 Z
                if(a[2]=='A')+ d" ?6 w% N# U5 Z, R% _7 c
                {6 z# W( n6 W; U2 A# D
                        status_a2=0;; M+ ]& Z4 l1 b. M: g- P
                        status_a3=0x01;' o, \7 H! D: j: W) i1 p
                }
9 e* t( B5 M% r/ }; u% Q, f6 x        }2 j! T" S: W$ l. \( O
        if(status_a3==0x01); ~) A$ w# [5 `" c* E- k
        {
0 q0 s2 ~% r/ y( t  e! H+ _                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
! p0 q$ G% A  A; t1 q: q) v0 P. Z                if(a[3]=='N')
( x, L6 _9 G! _% ~                {5 ~. R2 H+ W! D5 t+ ?% ~
                        status_a3=0;
; V0 E. I& O# e2 u! u6 A" Z2 {" d                        status_a4=0x01;) W+ L- b- C5 C! S
                }
- N* R1 z" c5 z$ u' j        }& Z2 z$ k8 N3 H8 D8 Z
        if(status_a4==0x01)$ `  h5 M0 p# y  E3 B( @
        {- O! P, O1 D7 C$ e  S' S
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
! B( Q# b2 Q: Q4 u                if(a[4]=='G')+ y7 F7 P2 z" s% L) A: a
                {+ R: E6 w- V, k  z9 `
                        status_a4=0;
! V9 j, b) r# Q. F' f                        status_a5=0x01;
- _9 ]0 a0 A6 D& A& s, T$ Y  }' n' r                }
5 O9 G* ^3 P" W" V. q( ^% Q        }
( X& ]6 f' x; F; s* x( M- j& f        if(status_a5==0x01)% q7 G. ~" [  c8 N; k0 V
        {
  B  L+ [* K# C& x                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" H+ W" I7 j* h3 g6 J& Q$ X9 s. V% u
                if(a[5]=='E')6 r( U3 S3 K% X# i, @7 X* d
                {
" Z( G, X3 E  g5 Z5 m                        status_a5=0;  r9 b& u  \$ p. \9 K- T
                        status_OK=0x01;
( C' `' M8 s6 a! v% a! Y% _                }
; n1 y5 f0 L6 \6 ?- m! A- w% U7 E: N        }
3 l5 o% {# Q6 u' r. h            if(status_OK==0x01)+ d& U/ H! p% f, E( \: G7 C
        {3 ~, L/ X5 u* J
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
- S$ ?( U' a- c                        lengthrx++;( i4 m; U+ v/ ]) g
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)/ C" A: _2 w; N- H
                        {
9 X" {/ t7 u3 d  b                                RecState=0x01;$ @8 V$ W" r$ T8 ^
                        }
. y! E) c$ z) Q         }7 A* D/ |5 ?7 B

& x6 r: q* S6 Q( m     }
# k9 W$ _  E! l0 ^3 q
% v; A* V/ d  B2 d$ l6 c7 M    // 接收错误, \6 U5 c: _' B6 p  |- Q% w
    if(UART_INTID_RX_LINE_STAT == int_id)
2 F0 }  v: e2 W0 D8 [    {
" q) y* h( x, b/ C/ U        while(UARTRxErrorGet(SOC_UART_0_REGS))" W6 }" M0 Z& b5 N$ q" L1 A
        {- w; `* S7 }7 U4 y* B
            // 从 RBR 读一个字节
9 ~' t& f# R5 ~            UARTCharGetNonBlocking(SOC_UART_0_REGS);) }, v" P* r+ N9 E
        }$ n" h* D  q; [! ^
    }
  K; `6 t& G. s. C( g; e6 w- K: m. `3 @& w6 B
    return;5 m" m2 N* {; ^
}
2 y* f7 b' @5 \/ o4 i$ L  N6 {2 ]5 Q  T

/ R% J8 E! _& Z5 F# s, X
$ w: e2 a& l: `# m5 {. J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,# S$ d) Z+ h0 ?) q; a4 z

6 A" I- Y" r6 a. oUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
7 k/ c: L! b7 s( k+ M
: u/ b! ^) M$ J. h/ @要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:138 _7 K+ D: w, `2 T0 U$ M; Y7 i
hi,
$ |/ \. b- o7 Z$ w& w' L$ H1 a; e8 S( w, {; e
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
. d3 |2 `3 D0 r4 a5 }8 u' ~; S
void main (void)3 w1 I' t7 d: I3 `
{: q, f  _( q' r: V; w0 S
        int i,j;
- f; Z7 H1 X5 _; `    char *str_buf;- q! g! U% V( e% o
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];& @. R2 g$ F! t) [8 G1 P
        double est_L_b_=0;7 t' Z* i) y9 a5 z" `  @  P
        double est_lambda_b_=0;
1 \! P8 b: M* @! N7 H# }7 q        double eul_[3][1]={0};
5 y- u9 G0 f  v: A        double est_v_eb_e_[3][1]={0};
# @1 G" }: i" ?# o9 |) k        double est_C_b_e_[3][3]={0};$ I3 d( ]* d5 V/ c: {
    char *qm;) k  b# h) F( }! {$ ^
    char rec[70];! U* ?; E5 i- |1 A
        double L_b=0;# w. j7 B' [5 J4 O* A0 q, A. U* O
        double lambda_b=0;8 v/ m3 k( r; \& c3 Y% i
        double h_b=0;! R, P. j/ S% f3 v
        double rate;
. M4 B! O( y+ S
, {3 u+ c8 |$ ]9 M" c
$ H$ f; ~6 d& Q2 B        // 外设使能配置
6 K9 d/ Z( Q$ M% l9 q9 _9 \        PSCInit();4 M. E# ]% }- I& `! u5 N( G
, W* Y) v) d9 k/ |, k" B
        AppInit();& @4 u( k7 a1 ^0 t2 m. c
) f$ R8 {1 ?3 z
        // UART 初始化" k+ [8 c- j- ?) P
        UARTInit();; H+ T- F# h( y' S
8 _- C7 J2 x4 _' }& O
        // UART 中断初始化
/ ?6 Z4 n% L& Q$ i: e& h' I/ p        UARTInterruptInit();
. h/ }) Q4 V7 Q9 X; u
# J: j5 q! w; g$ B3 y( M& ^    evtRcvd = 0;
. Y9 Y/ ~% w# ^# Q6 Q% m( d; f    RecState=0;# D, u0 U' H& V
    /* Initialize */
3 o% q* [; T4 x9 C3 S5 D5 S5 V! `9 i: E
    printf("DSP subsystem ready\n");) B: C7 J, X7 ?7 @" M9 t, M- c

  ?* O5 u- S& s; z    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
% p3 n6 `" \4 m! Q. G$ ^3 m7 H; `4 H* v4 k5 G1 P
for(;;)* H9 e. H+ |! P1 v
{
1 R9 s( z) n/ t7 N6 W6 N' ^        if((RecState&0x01)!=0), S  K- |3 X) c1 `; s
        {
! R- f7 Q; E5 L6 C8 i" }# z9 _                printf("liuzhenxing\n");  o2 u) W' n. G& e( J) Z* J
        }+ N1 }! m/ N! ^  m9 }; Y
        else5 e. x. Z; E& |+ @  O5 R
        {
5 X" T1 J) T) k$ F       wait_event();1 k+ F5 x% }" i: L  a
5 H$ r$ o) O1 d9 N$ W8 p" P
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针1 b% a& D% m8 D" Z: V
: }$ g6 Y4 O' S9 u+ z
           for(i=0;i<60;i++)
9 |& \8 }9 P: j' S8 W8 J2 t           {2 }6 V( L2 A5 `0 P4 c6 P1 y
                    rec=*qm;
5 ]0 y. x6 x" j2 I4 P                    qm++;
- H: M, Q" \* E# v! D/ u           }
& \0 \' }) o' s+ j9 j5 [
1 T: E( z8 Z, x# J$ k           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
, @" i/ ^, l% y
4 B+ R$ B! q) w) }: W" d           L_b=L_b_receive_double;
8 ~" f, s7 J- |; K           lambda_b=lambda_b_receive_double;' L& d8 J/ Q7 S  x. d( ^& R
           h_b=h_b_receive_double;: W; Q+ P3 _2 Y/ l2 m
           for(i=0;i<3;i++)
" q! W% c9 A' ?                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];$ j! O5 c4 o! k" `( N: ^1 v; s
           for(i=0;i<3;i++)2 I0 W9 I" r4 Q
                    for(j=0;j<3;j++)- D2 X2 o& H: O1 B2 m
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];3 Q5 Q- Y5 n, d4 [+ C
6 }+ q( _* J3 W7 O( N% P  g/ _
                printf("L=%lf\n",L_b);
% j8 f6 Q+ d3 Q9 h6 C/ W                printf("lambda=%lf\n",lambda_b);
5 h! f$ b! N: a0 \                printf("h=%lf\n",h_b);& C3 j( \! H) C; M. J

9 s  G: n& h' u6 e& Q  m                for (i=0;i<3;i++)
1 X8 c0 b. p! V# u                        printf("%lf\n",est_v_eb_e_[0]);
! w( c( s- g" Y! _6 L4 n                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]);
! n" o0 X* q1 r                printf("rate=%lf\n",rate);
7 Q. ~4 I. B8 n: q+ k9 A! A' N
% p! f, ^9 S3 [/ ~" v                CTM_to_Euler(est_C_b_e_,eul_);$ \1 |; D- d; p8 }: a1 ^9 G
                for (i=0;i<3;i++)2 x3 b5 t) x( H* L/ k& I8 _+ O
                        printf("%lf\n",eul_[0]);
5 e$ K9 D6 }) T* I' E9 k5 k' ]                printf("end************************\n\n\n");' M7 k" @1 x' m2 Z- W
" k  `, I3 H0 v- R& h( K; l  U) W  U
                /**********************************************************************/
$ D2 i% m  e" C3 x, m6 Q4 o0 S% t
6 F. V* v+ t* Y1 O            char flag[4];
, q8 b3 J' s5 B( v2 X" W4 ]- A1 v' o; D1 S' p8 }, w# S* S& I
            flag[3]=0x00;- a' q! w3 E4 J4 S) m2 Z
            flag[2]=0x00;1 O5 e3 A, I7 ~& ?2 B7 J% S; ~
            flag[1]=0x00;$ |& R- n/ ^2 k& b  |( w! ]$ Z
            flag[0]=0x01;
2 ]8 r3 ]( a5 ]7 R
0 \6 c1 v! t# S    /* Allocate I/O buffer and init with string */
5 k7 `% [% L# p4 |# u4 D: i    str_buf = (char *) malloc(80);9 t# }8 k! d6 [* }; }" \
    str_buf =flag;! a% @9 D1 A4 e+ z

) E* }; [% p  g; O! a: J+ _- E    /* Send buffer to remote CPU */
5 V( _- z- {" q) \. ^  g" [7 s    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));$ F, }( K7 t+ r$ x

& C2 D, `$ ~0 j$ {" y    printf((char *) myPayload);& ]* e. z: T6 O- a" P0 c% \
        }; R( a: B5 C9 K
}- Q( N7 r8 u0 D9 Y& G
& y: Q% f. M! [9 ]% G
    WAIT_HERE;
% y7 Q7 m' [0 B: Q1 s4 s" K6 ?}2 N; A  @4 q; X
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
+ _, x& E9 m& K) ?% E我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
0 j# L$ a% b7 O: B然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
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
: S3 [' i+ D$ _- J) k. [3 Asyslink 的初始化是否成功,notify 通信是否正常了?

% S1 ^* }; T; j, B双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54, V5 p' V& b" O8 K0 x8 W9 V
syslink 的初始化是否成功,notify 通信是否正常了?
8 p6 p/ X2 [8 C5 ?1 d, [/ S' \
我用的是裸机开发的双核通信,用的是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* ]: A9 U5 m( p7 w4 v' \# V5 C
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

, U: r- U" L4 ^建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-31 16:48 , Processed in 0.056682 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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