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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。" V; P- E% a& q% k: ~% A- h& N/ l
我是在DSP初始化这不太明白。
; U% _" s4 V# O1 v5 r- u( O初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。6 c: v  H4 R+ b5 H
0 a3 C0 h. ^2 b
1 C4 F4 F% ~3 s
首先        PSCInit();//UART0使能
' D- P) U0 z+ j8 Cvoid PSCInit(void). |+ O6 {; k% I( U8 @& s$ ]
{# ^" t# ^. q5 x( W, a0 \3 q2 y
        // 对相应外设模块的使能也可以在 BootLoader 中完成: l/ A7 @; Z: a. i3 z
    // 使能 UART0 模块
7 l; F/ X) U+ b5 H8 T( G3 q6 b    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);$ E; q; A7 V9 {% n  t: E6 ^
}
9 R& l& s. z; C7 Q7 J$ C

, z+ A8 l, S# c
9 s: ~! X7 A3 ?4 c然后是 双核通信的初始化           AppInit();5 s" U+ E7 X# t! t3 S' |
void AppInit(void). ]' Z3 x6 k+ S* p% n% `
{8 q, E5 S* `" w$ Y
    /* Structure to initialize IPC (see Ipc.h for definitions) */- Q4 V+ Q' t. I4 {4 y: |
    struct IPC_cfg ipcCfg = {5 T& Y0 M. a; z" r- N" T
            IPC_DSP0,             /* local processor Id */
$ B! P( C# _& L" K3 p            IPC_ARM_HOST,         /* remote processor Id */2 Z& |3 s) u+ e
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */9 X4 h0 ~7 h2 s! r4 O) l* D
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */9 L6 b+ t$ s9 k0 i+ E) V
            NUM_MAX_EVENT,        /* maximum number of events to be created */
# K# T$ h% z4 T* B% R2 F# G            &ipcPvMemDsp,         /* local side private IPC memory */
) j; S& v4 B$ P* W            &ipcPvMemArm          /* remote side private IPC memory */
+ r* F2 n3 C# N. c& e9 d' l* L    };
# o! |, p; f# y8 {    IntDSPINTCInit();
. O! r* _3 w  w    IPC_init(&ipcCfg);
( C: z: X( S3 W& K    IPC_intRegister(C674X_MASK_INT5);
; R' L* l; G: E- N4 O0 J0 W" i    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));' R4 M- k" v  |" d) _3 p1 C
5 K! k2 P1 _9 s/ z) C
    /*  Enabling interrupts for DSP C674x CPU */" z0 t0 n% l) X/ @2 Y
    IntGlobalEnable();        /* Enable C674x global interrupt */" v$ M6 H  n" x5 a; T
    iAssert (Notify_start()); /* This will enable IPC interrupt */; a) o2 z8 B$ K) p
}; x. W* ^' x4 Q# K! D$ f+ G' j
0 B2 c; v. U! T$ A. |
然后是  ! {: p2 o# I' m7 M$ G
            // UART 初始化
, _  }) j1 V* h            UARTInit();
% g2 d* b2 l+ M* P( F
- ~8 S& b  p: u+ r# T            // UART 中断初始化
" D1 ~/ w+ t; Y6 t/ J            UARTInterruptInit();
! v: n  T- r# B1 `. m3 Z
! ^1 d6 n8 m$ [- I1 o7 L

% T$ r% s$ J. d, S6 M8 z8 Pvoid UARTInit(void)4 l! ^9 F0 Y. v
{3 u8 ]& E8 v* A6 U' I$ f$ D, L3 c$ _
        // 配置 UART0 参数
- S: u! m" ~5 }' ?        // 波特率 115200 数据位 8 停止位 1 无校验位. f# }4 b. a" v# l. T  n# Z6 g5 I
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,, z( B  |2 U; z# L5 ?$ ~
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);# ~  V' f1 O* N  {0 ~( N
        // 使能 UART0
( Y1 E- n! u: \6 h, d        UARTEnable(SOC_UART_0_REGS);6 S3 ^* q8 z; {! l- F+ ^9 P/ Q

7 [$ p0 |1 S9 m$ w    // 使能接收 / 发送 FIFO
0 w2 F$ x* M) a+ S//    UARTFIFOEnable(SOC_UART_0_REGS);
& e. j2 ]" X2 m/ n  C( W5 d3 E5 {# v" P
        UARTFIFODisable(SOC_UART_0_REGS);) p8 T# K- _/ p; W5 m& D0 ]' K
* e& r% A1 T0 {
    // 设置 FIFO 级别     接收FIFO的级别. @" \8 o, b: c; x  g1 M5 L+ e7 x2 V
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
9 v, O" c2 a2 D1 V% W}5 Y; L" ]$ A: ~
. n. d" \$ t+ n5 D2 S
2 E- j* v8 U6 Z0 R1 m, f; Q: D. b" M
void UARTInterruptInit(void)
' ^: B9 T5 Q7 [  u( z{  E" [( I& _, [" I
        IntRegister(C674X_MASK_INT4, UARTIsr);
) h4 A; @, ?- y# ?) A        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);; ?) r9 a9 b2 G( d2 l2 c
        IntEnable(C674X_MASK_INT4);
+ ]6 T3 @  ^" X/ h! |
% Z) F/ a" A1 t6 X, f2 J        // 使能中断
6 e4 D4 ?+ u8 o0 }# C        unsigned int intFlags = 0;. H/ L0 C. ?7 X( X7 }" K4 }! M
    intFlags |= (UART_INT_LINE_STAT  |  \
5 m1 s! ^" E8 }7 {% i. J3 X! _                 UART_INT_TX_EMPTY |    \
; C/ W9 X4 M1 I+ g! l                 UART_INT_RXDATA_CTI);
( n9 K( A2 z7 D7 H* s' q5 Q0 b    UARTIntEnable(SOC_UART_0_REGS, intFlags);; H: E, f  p* V" N" f: w+ V! B
}% D5 h( i' b6 S

) ~. f$ A; W: ~( s& N, X/ a  _% I4 K; a5 l0 G
void UARTIsr()1 R  z% f* s# ]
{
& r  v# l" o2 p/ {9 z' c! P$ l    static unsigned int length = sizeof(txArray);
" ~! \) n7 d; t  X4 R) \    static unsigned int count = 0;3 e% g: }! N# L& u- r
    unsigned int int_id = 0;: _) y5 e* y, X$ J
$ ^" t/ F  W5 p6 w4 O

7 L' T% A( x0 F! ?% ~  Z; x. F
  r' ?: A7 @$ e4 G! l# Z! J* ]$ l    // 确定中断源# Y4 a7 @0 j7 B9 ^
    int_id = UARTIntStatus(SOC_UART_0_REGS);7 J. [' ^: x  l% w# E
. }- |; p' V1 {) M0 p
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
4 Z) T/ t6 z. J: r* N
6 i& ?# P0 [& F+ v: a1 e0 D7 k
  Y/ A& o8 G7 U, s+ ?    // 清除 UART2 系统中断! f; y; U  S5 i' E) I& C/ r
    IntEventClear(SYS_INT_UART0_INT);: u( ]' o! H0 H
; ]. A9 d( y3 [" R
    // 发送中断  W0 V/ W6 R2 c- g
    if(UART_INTID_TX_EMPTY == int_id)- E# t; I0 m& O* y6 S. M
    {
) }" k1 T% S/ d3 c        if(0 < length)
" O6 S0 e/ s2 c! }0 A- e        {1 G  |# i8 _2 }3 w( p; f
            // 写一个字节到 THR. o, n- u5 k- a' H& K9 W% X3 Z
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
" e* e- K) N+ T2 g; Q4 y* g            length--;
; ^+ [7 G% Z( [6 n1 ^+ V( R' ^            count++;
+ p+ J% j' d8 F. g. e        }+ j7 |, f8 `  A
        if(0 == length)  }+ n8 w1 ?3 @5 A8 u7 j
        {
  {" b: i: w4 S$ V' u' q4 q) m- e            // 禁用发送中断
( j9 e1 E% ~- y            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
0 U, \% ]: Q. n3 N5 H- u2 Q0 u        }
! A; w% W7 U& h( P+ K! K2 {8 k) N     }
! _* |3 z+ t; j4 h5 d% d7 R- }  [0 i7 a- L( d# ?
    // 接收中断! Y3 r* U( X2 e, `0 o% s
    if(UART_INTID_RX_DATA == int_id)
- I8 g! q! f" w: Y, y, [  c/ A    {
* ]( \7 ^. l6 X1 [  u% F        if(status_a0==0)$ G) ^8 P9 O# d6 [
        {
; S5 E% N7 A: I+ [2 k                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. X8 S6 I- s: Q1 N0 \* y( w8 h                if(a[0]=='#')
( W& a, i1 \3 s2 Z                {6 D- H  @5 F1 P0 F9 i1 n5 i/ B
                        status_a0=0x01;- x: a5 O" ]* ^6 ]! w- Z
                        status_a1=0x01;
# S* @9 j" Y4 n* A                }  e# {8 ~( W& J9 Z4 h# J
        }& W. S5 g0 x. \* y/ S, g. U
        if(status_a1==0x01)
0 m" m2 ^3 l( w$ F/ y        {
7 B! y( R8 {; B# i( D                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
# S( v5 @/ Q- {( s3 P9 u                if(a[1]=='R')- b8 h; M  M' @
                {6 Y" s: p6 Q2 a/ T0 q
                        status_a1=0;) j# l0 I: S! `
                        status_a2=0x01;$ d8 S# q; [, Y) T1 |
                }. b' Z; K; A. V% j
        }
- z! h- m7 f" ]! F        if(status_a2==0x01)' i% S. [5 S: ?; H8 u1 c* N) _
        {8 n% |7 G- N# Y6 O: }
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 J4 V4 @, H9 E$ N
                if(a[2]=='A')3 `& V4 ^7 M- z# |  t% |% h
                {
% l* p/ g# A% n' s1 s) g4 g                        status_a2=0;
; U, J3 X! I- z/ u+ p- @( V- X                        status_a3=0x01;
# b/ J0 {7 f. N7 c+ B                }
+ ~0 E/ y+ E5 U# ?. q; G, U  ^) a+ T        }) m' S2 c3 h. S! u# H
        if(status_a3==0x01)
% d  y) h- c3 x: h. n) i# q        {
( L8 M  M! E& j" `                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
( Z# X  Z' @8 W                if(a[3]=='N')6 L- s1 Z0 T8 `5 `, x
                {& ]# x  K( f  K. {) {' d; M& \+ H
                        status_a3=0;
( n1 y" P" @4 ?& i                        status_a4=0x01;
1 F  h4 |# f# f" o/ N                }
3 p/ [8 e* f1 @# [  |        }2 g& w$ z) Z3 m1 `  y
        if(status_a4==0x01)5 E( d. Z  I9 c- t# [/ w
        {
/ r7 [4 b" [5 v* i0 z" S0 Y- U; o* I4 Y                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
5 H( ^) R1 Z3 ~7 y( b                if(a[4]=='G')
9 P! ~  n/ n1 j! v. I                {
4 s3 Z/ ^& H) L5 j  I' b                        status_a4=0;9 A/ _" Z. }* _7 ?6 D2 p) O
                        status_a5=0x01;9 p% L, z$ o3 L! m( P" S) w! L
                }4 Y: O2 a% `6 f$ ?; m* _( S( b. {
        }
5 Q/ I6 z6 F5 c6 ~1 r% E        if(status_a5==0x01)/ Y) H( s% i) D6 E: k! b0 h5 b: F2 Z
        {
4 X2 i7 x4 @0 C. y                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
0 n! I/ x2 p7 C0 [                if(a[5]=='E')7 E3 Q* t* ]+ W8 v3 x! T% H
                {
* y  }: d" q1 f, Z4 |* Y                        status_a5=0;5 l7 [6 Z" @9 H1 T8 y, l! P
                        status_OK=0x01;
4 ~9 y: t* Z9 i2 n+ u                }
' G* T  w3 a0 T$ R: I2 ]9 D        }% F% X% m" y% \3 I0 J
            if(status_OK==0x01)
. f5 N6 t' K) s' f8 d        {
+ O! y, u4 T: R: s! f1 D7 U                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);4 c5 r; l  d. B5 s
                        lengthrx++;
- f- R" c- i# W& ~* u' |% r                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)7 X0 m/ j* F$ @- T! Q, M! E
                        {' |  K3 c- k) v" _
                                RecState=0x01;
  w1 v' y/ Z7 Q% U* q% w( s& j3 U                        }
  j! d1 G6 A3 J) g: E& c+ X; K: n. ^         }
- \: t+ D: W1 B7 _8 s3 }
$ q+ x* y4 t6 T- e9 [( O     }+ P) B* T3 _# P
- X6 e7 v2 }$ k0 ?/ C3 _4 H9 E# k$ p
    // 接收错误
  m' f8 m& }" `) [    if(UART_INTID_RX_LINE_STAT == int_id)
" l  V: v8 x1 e* [' M) O    {0 }7 T7 l. C$ o. S3 W- \. _, E
        while(UARTRxErrorGet(SOC_UART_0_REGS))
9 K% @/ ?$ U% p9 B/ ^        {1 n7 J  I; _( }( _2 V) B* W
            // 从 RBR 读一个字节
5 }2 J. f" b& X+ o1 C$ G  P! ~            UARTCharGetNonBlocking(SOC_UART_0_REGS);- X9 I0 Z, s' h, i
        }' f1 Y0 G% ~' l5 j* [  O9 C
    }
% N4 {* D9 z6 C2 L' W, D% `; D! y8 B, m' N* E
    return;
# v* r3 {: y" r6 [}
- a1 f; F3 p) Q( I- ], T" C. E& e6 P$ i! j

' F! u( F, [5 v0 u' `" U
; Y/ b2 k; ~2 G/ r8 b3 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
1 F. U7 o* u5 |3 ?7 h
6 w9 U% J. |" xUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
7 @  o) u5 U5 g& Z/ z
  |8 w" T6 I: L2 f+ o! U" [/ M要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:130 E% {& L* u0 C9 d
hi,3 u' m3 K$ g! u/ L' d
8 D/ G' c3 t3 w
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
. `% b$ ~2 R9 G+ z- o& P8 |- N1 o
void main (void)
( U' l. U) D" Y  i, ?{
: _# z' P* L2 C2 r7 o; D        int i,j;
& ~/ o, S0 f. C, c    char *str_buf;
, \6 p4 I# p# m    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];% h: K( G7 Y4 t7 x+ s3 P/ s
        double est_L_b_=0;
' K! ^, B# I- S5 d6 T& G' V        double est_lambda_b_=0;2 Y: e5 a  S6 k) }8 W$ U  U% F
        double eul_[3][1]={0};
2 H0 o7 j/ }$ {0 J4 q        double est_v_eb_e_[3][1]={0};
8 q/ C$ K, H7 T/ j! f        double est_C_b_e_[3][3]={0};
. x" v, O' ^+ U. y. O, |& f( I) V& e    char *qm;
* c8 ^  C% a" Q1 ?# H0 u; n3 W    char rec[70];3 \" v/ s+ e( g9 A9 l3 l4 Y! U
        double L_b=0;
7 o7 R/ h9 n2 ~5 j        double lambda_b=0;& ^  a1 U# w4 N, `: l; B* Q
        double h_b=0;$ t0 ]1 ]+ A  k$ d' }$ ]8 t
        double rate;  ]% x0 p- U/ q' s$ m7 {: J% v$ y
0 J$ j( D4 W! t: f# T

+ d9 t5 f9 Y5 ~! N& F        // 外设使能配置2 b: P: v4 d) x2 }/ S2 h5 W
        PSCInit();
1 L7 x$ k* A9 ?0 m( ]/ i$ `; U8 H( o+ p, z8 K; h' _7 Z
        AppInit();
9 X/ h; c4 B, s  R8 X: t$ O: k8 c( M7 r# V9 Q1 G7 z
        // UART 初始化9 y9 g3 E8 j. [6 v
        UARTInit();# b( U% v8 @6 x

' o  {& {6 U8 P- U- m        // UART 中断初始化
& T) K" F! l5 M        UARTInterruptInit();9 ^1 {2 [4 ^, q
, p9 _' ~& d; w2 o% l3 R: I
    evtRcvd = 0;# ?; G' c. T" t" M, o& L
    RecState=0;9 c8 p) L* k/ i1 `+ y) |5 Z
    /* Initialize */
9 c/ ?1 u  Y8 o2 k' x5 V
; ?( @3 I6 I+ P3 P    printf("DSP subsystem ready\n");1 d- H8 w1 _+ I: H' y4 w( h8 A6 n

- K9 }5 P# x- A: R    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));- \9 a% e0 w# f
! o5 J, g0 p1 V6 Z) w# [
for(;;)) U- a! s  q( a) s4 X+ p" b' b
{1 j$ \# X; M! A/ J# {# h% L
        if((RecState&0x01)!=0)8 k4 I3 n! I" W+ J# i4 F
        {) c) e2 c2 K4 j, `: s. x& D* h5 ]4 I
                printf("liuzhenxing\n");  r. p8 t+ ]$ z" Y
        }
# j$ L- \5 f) @6 q0 w8 X        else
# h1 ^" Z* {( d        {
( }# r+ c8 S- k! P) T       wait_event();% T* Z! x$ o' V7 k

) s+ ?1 T0 {! B2 [2 w7 J5 q6 j% [           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针: }' o. W* [9 H( M3 t$ L- y
9 n2 I3 K' s: v. R. K: \! q/ G4 f, l
           for(i=0;i<60;i++)
2 c& t4 O$ n" `, ~3 @, Q8 P! X5 B           {- j9 l9 D- M) M8 l$ ^" Z
                    rec=*qm;
9 W& L( ~# [2 p* E* z                    qm++;
! A6 m" K' s2 ?           }
: @4 {3 M9 ]8 h3 P  \. b
0 \  I! U: ]& x! ~- N           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);- S  Q$ h( `* J( y

& {$ t$ L3 Q3 p/ `* ^7 j1 _7 e2 y           L_b=L_b_receive_double;/ w# A3 [" |1 N. i( Y9 B
           lambda_b=lambda_b_receive_double;( P3 I6 P5 {" b( n+ J( z5 f+ W) n
           h_b=h_b_receive_double;4 @& s  f3 M" }5 _& f3 h( K6 c, g: q9 z
           for(i=0;i<3;i++)% a) e) W6 z3 |+ A! n% z! Z
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];2 N/ p6 x  D9 Y" s
           for(i=0;i<3;i++)
$ O+ G2 X4 k; Y3 Z                    for(j=0;j<3;j++)9 N1 h' d- P; A' ~
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];; q" o1 n! x+ o; d+ I
1 t2 R' \" i/ e6 w9 l2 Y
                printf("L=%lf\n",L_b);
2 c8 ^% H; F; c9 ], }                printf("lambda=%lf\n",lambda_b);( G( J6 i1 j5 r' a
                printf("h=%lf\n",h_b);
. y# Y( P7 i0 v8 h2 Y- h7 ?1 m5 I4 I. P) ^# V+ O$ B6 X
                for (i=0;i<3;i++)
! D: _( a7 }8 y! Q, f                        printf("%lf\n",est_v_eb_e_[0]);
0 A. ^1 n& B1 e. `                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]);
4 N7 }2 A) D0 m* }& ]                printf("rate=%lf\n",rate);9 L9 L1 V) {& b: {8 l3 J7 k

  |' r1 o9 t4 G                CTM_to_Euler(est_C_b_e_,eul_);7 R+ T2 M8 ?6 G% ~5 q3 H$ {
                for (i=0;i<3;i++)/ D0 c  Y& v' n4 ]' h7 {
                        printf("%lf\n",eul_[0]);
5 r5 j! D6 c9 b! g3 G0 J' P                printf("end************************\n\n\n");7 U+ K5 J9 S& B0 s, a/ F  s& ^% N0 G

/ k8 ~1 `3 {# B# f, F! g                /**********************************************************************/# L; q# L: I5 }4 }9 s$ J+ m$ s
3 h" E/ \5 i! _4 e1 T+ I$ b
            char flag[4];
" Z  J' T0 Z( [8 r( h# F7 n* l9 K$ k( @# o5 R
            flag[3]=0x00;
2 G3 f9 a7 c. T            flag[2]=0x00;
3 ?5 Z8 q# @( A6 q) Z& Y            flag[1]=0x00;4 ]) e3 ^# x# m
            flag[0]=0x01;
% @  V9 S# \0 |( l: |
0 T  q+ |( |, s3 N" x    /* Allocate I/O buffer and init with string */
9 B3 g; P& N4 M    str_buf = (char *) malloc(80);
& P( H% ~- O" d% k    str_buf =flag;
) b$ I( e0 u& y  ~5 H
* c$ C2 Z+ V/ Z0 G$ Q    /* Send buffer to remote CPU */2 d- q* q' d+ P4 w
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));+ G' B5 l. P1 O) {' V, |
; _+ c. d" C' s8 y) Q
    printf((char *) myPayload);
0 q4 G6 |) h. I: W$ k( P        }) \7 t% s- [; S, w7 {7 N
}& K2 B4 Q6 B0 N; a. [! \( A

; M9 M% n) G; U2 \. B    WAIT_HERE;
! G3 K3 D: i6 C6 N: J# V* n}
) h, l0 d8 ?& P3 m( K
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
: t6 C; G8 S; v2 T7 w4 e我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
- x# R/ y+ ?" }然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
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/ V% d+ h7 J0 F! Y/ r1 ^
syslink 的初始化是否成功,notify 通信是否正常了?
* p  R( Q: R2 k7 f
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
$ ^! W. a* x/ ?3 p6 D* c% V& fsyslink 的初始化是否成功,notify 通信是否正常了?

8 E' @4 O" I# D' R我用的是裸机开发的双核通信,用的是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+ g/ p, W6 f3 q6 v+ ~4 `7 N( N- C
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

' m5 b3 @3 `" u- ?( H9 [建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 12:38 , Processed in 0.053935 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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