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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
* ^% x  y: L; v0 C# D; z我是在DSP初始化这不太明白。% O2 u8 f( ^% u
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
( T5 f. w  q& j% N9 f: {$ L7 B. A; M2 {, ]" i5 j

5 e* g/ L6 K; Y5 N首先        PSCInit();//UART0使能7 o) A0 `: _$ M& ^
void PSCInit(void)2 j5 I0 h+ Y0 x5 R; c* r6 N
{. g/ o: W( F: Z* q" T
        // 对相应外设模块的使能也可以在 BootLoader 中完成
% P# [0 _& {: L& n$ k; l; T    // 使能 UART0 模块4 Z9 B" p' X5 R# _
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);$ c) Y( t7 r8 y5 Y6 S: Z
}0 L9 Z3 r+ U- s) ]2 o% g

1 I( o4 Q9 K: B9 L% B* F% ^$ @3 O, B$ \: ?
然后是 双核通信的初始化           AppInit();
) }' B+ ^/ R. X7 A- g6 W' Rvoid AppInit(void)
! G. i# {1 j1 Y. }: L: [. Y{
  \: p- S+ h; g& T9 o6 a9 e' k2 E5 X    /* Structure to initialize IPC (see Ipc.h for definitions) */
/ {$ R% v; j9 o7 V5 l    struct IPC_cfg ipcCfg = {) X# O1 I2 E7 a8 m) `* E' s
            IPC_DSP0,             /* local processor Id */4 a0 }  H. Z( W- J- P1 q
            IPC_ARM_HOST,         /* remote processor Id */( l! g5 V7 @) l/ {, D
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
$ n) W0 T. M7 g( H7 ~& ?. q- b0 E            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
/ ?, O* w. b/ b+ X6 }            NUM_MAX_EVENT,        /* maximum number of events to be created */2 ~1 k* s; r8 J6 @! ~8 e0 a3 ~
            &ipcPvMemDsp,         /* local side private IPC memory */6 \. l1 m- E; x7 _( N
            &ipcPvMemArm          /* remote side private IPC memory */6 z- N$ e* {% E( u1 }' g3 }+ i
    };
; n. C0 s1 V! ]- R; i5 Q    IntDSPINTCInit();
7 Q4 V' O0 P. Z3 |: g    IPC_init(&ipcCfg);
" W  k9 [+ a9 g6 a' h    IPC_intRegister(C674X_MASK_INT5);
9 d6 u8 `! Y: N% j) t0 |: P    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));" Y5 P  A5 f) s" I$ [! y* c

7 L6 g3 P9 M6 p    /*  Enabling interrupts for DSP C674x CPU */. _, ~; V/ S6 N1 ~% `) Q
    IntGlobalEnable();        /* Enable C674x global interrupt */
/ N& F" z% D1 D0 S' F- [# G    iAssert (Notify_start()); /* This will enable IPC interrupt */. m7 ?6 c! C. Y6 W
}
& T2 K* E; n/ i/ ?

" C: m$ J5 t( E* ^$ I2 S然后是  
7 G0 E1 n% X! A  R4 f3 f9 C            // UART 初始化
; c) D3 g3 u: P0 i            UARTInit();1 E/ j0 E' C, x2 N( A# N

4 c% z5 E6 Z$ d4 u            // UART 中断初始化
9 B. q. }# r, I( D* Y4 J8 o            UARTInterruptInit();7 D1 D( i. n" X* Y" x+ W7 \' ~
* ?. s3 Y3 C% j. N1 `! c
6 k4 b5 I$ b0 C' c& A: [
void UARTInit(void): o: M1 r1 _) X) k
{$ f, {9 `2 U$ `1 M+ @% Q
        // 配置 UART0 参数
6 }' j) E" O1 A3 B- J& \        // 波特率 115200 数据位 8 停止位 1 无校验位. Y4 ~( W5 B' ?4 D' Y1 [8 Y, M5 N
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,9 X  D' q: j$ D. C! ]( ?4 r% y% C. @
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
5 k) R3 q' o2 D* s! N+ _0 t        // 使能 UART09 y! ~1 u5 B9 H! r0 s/ P
        UARTEnable(SOC_UART_0_REGS);
5 {/ n0 }" C: Q  c0 V/ D6 C- s
    // 使能接收 / 发送 FIFO: V, S- @, }7 N' c. L: p0 y
//    UARTFIFOEnable(SOC_UART_0_REGS);" b$ ^  S- L0 X' p! P" E

. m" g" r4 w9 ]% q4 i" ]! I( E        UARTFIFODisable(SOC_UART_0_REGS);3 z2 J/ v) }. n6 y6 B

/ |3 b8 p* k+ {2 B. c    // 设置 FIFO 级别     接收FIFO的级别
/ l9 s, t0 _+ L- {, A//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);9 q5 P3 w, d6 Z
}
) T3 {' p3 b. D, g

; C: g% A- I+ c) t" ~/ w# ]& f% z% G& _/ R7 O
void UARTInterruptInit(void)
% A1 q' h0 E- o2 a% S8 Z% v- I{
$ i5 d1 v( A% S- i        IntRegister(C674X_MASK_INT4, UARTIsr);
; L. X% X4 y2 w: B; V. O        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
# `$ r7 F+ ~3 B1 P2 i        IntEnable(C674X_MASK_INT4);9 A8 U9 }3 ~7 D& i. M0 `

9 w5 h  k1 y* a        // 使能中断/ ?8 w  Z) ]) h6 `+ x
        unsigned int intFlags = 0;
% H% o  i6 D8 B    intFlags |= (UART_INT_LINE_STAT  |  \
  K7 g9 E/ q# p* [$ ?5 m2 u/ O8 S5 i                 UART_INT_TX_EMPTY |    \
) B% f3 m# a7 o) t8 _                 UART_INT_RXDATA_CTI);5 `2 I1 b4 @3 ^  o4 _+ Q
    UARTIntEnable(SOC_UART_0_REGS, intFlags);; H' U% F! Q) V( o- i3 }
}
7 o& ?0 Q5 o) s8 y

" _* Y9 {/ _* A
# b8 }' C+ y4 S+ s; Uvoid UARTIsr()
0 z+ F% J) l! t! P) L( b4 O/ J# l{
$ u( U. P- G( {: c- n. x    static unsigned int length = sizeof(txArray);. n( {- |7 ]4 R9 B2 e  f1 i
    static unsigned int count = 0;
0 ]6 R( U( b9 q+ l' L6 n, I. v. a    unsigned int int_id = 0;9 \) m/ G( O# o8 ^  y; W

  k: v- B5 N! K
# N( P2 ~7 J2 {+ k7 d$ g: S: A
* f7 c2 k; }8 m$ D- h    // 确定中断源
2 k9 l( H7 o; D    int_id = UARTIntStatus(SOC_UART_0_REGS);
. U+ ~% _4 ~: [! O) r! R, I, L( E; ^
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
! f: S- F8 a( l8 d+ k- c4 K! T; g. P  C1 s/ L
7 a+ v+ k4 v" O3 g
    // 清除 UART2 系统中断
; K" v* ?* @  U& S    IntEventClear(SYS_INT_UART0_INT);
8 w. x) H/ U, d5 w, s! ~" ]' @* d; q1 j9 w! W. o0 Y
    // 发送中断
9 J' `; t3 \3 K2 g0 ?/ F    if(UART_INTID_TX_EMPTY == int_id)
$ a; p& W5 y% V8 w9 I    {
5 F. u& B; h% K9 ]/ }  k/ M        if(0 < length)2 B; `9 m3 ]- [0 c
        {
6 L& D4 M, J; A( t5 Z) n            // 写一个字节到 THR
, Q  g& w' S& |3 \( ?            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);4 A* P' F1 a# N5 x" N( b) j7 Z( T
            length--;
/ x% C/ u1 i' d1 U% F+ s" g; O            count++;, Z, T, A- w, d( f4 R
        }
1 A3 O; Z: N7 @        if(0 == length)
: n6 M' r# t% U+ p/ I# D        {
4 w1 a( G  t" s5 F6 G, s            // 禁用发送中断
: q  V( x, v9 l, M) }* g8 h3 K            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);7 t( c3 J1 y- w6 n7 g0 b* [, [
        }7 E; n1 t9 |4 G9 s) H! {2 g! j
     }& w. P- b/ X7 p6 Z" R5 v
- q6 h6 h5 r6 k  b7 i9 C1 L
    // 接收中断
& s7 y2 E7 G  @8 @    if(UART_INTID_RX_DATA == int_id); p- l5 k* X9 t! z+ ^2 \
    {, T/ h4 l# R+ A8 F
        if(status_a0==0)
: F( }2 Q; n, F) E. f! ^6 s! ~2 {        {! `  ^+ w. P% y4 P. a: X" m  u/ O( E
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);5 n) K3 Z: o8 Z1 T+ J
                if(a[0]=='#')/ T* k$ {- ~; d3 N
                {
& X8 ~  p% @6 d- d# }+ q2 d# r3 j                        status_a0=0x01;
4 A/ K5 }3 G, ]+ V8 N' o- |8 I8 o                        status_a1=0x01;3 _/ r/ i' G) _) C1 C
                }
% U/ F9 i! J/ W8 i4 {        }
3 u7 ~' z4 L: A+ G# C        if(status_a1==0x01)! K1 l% y) ]; _# l" M: B
        {: @( _9 H+ ~  ^
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
) F2 A/ q3 Q2 i' E; G1 R                if(a[1]=='R')
, T' `' R8 e2 s" L- q6 Q                {, R. m9 t4 @$ E7 m. B' K
                        status_a1=0;
$ t# a+ p' `( N" W: c& E  ^                        status_a2=0x01;3 n- ^0 @; z, D) O9 p; C
                }
/ ^. b# O# B4 }: n- }2 K        }# g( @  B& V' H0 k$ {+ T# B- {: H
        if(status_a2==0x01)6 I) z2 A+ O2 }% Q: l5 m& A" ~
        {
, N+ E7 k# [5 {) ?. ]6 A. Y5 @' q                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);8 [/ d) a6 C: k
                if(a[2]=='A'). W, c& |/ \% I, {
                {; I' \7 c+ W9 y. |- R  g
                        status_a2=0;
2 W! [2 C$ b, H5 K4 z                        status_a3=0x01;
8 G1 a9 i5 U' s  H                }
" n) Q) w0 q+ _5 R        }6 g0 R- {; ~/ A& m, U
        if(status_a3==0x01)
, r. P7 ^, Y9 E1 }        {
. y( @/ s' f. ~0 _. h/ L* P                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);( c7 f/ N2 \% y1 E
                if(a[3]=='N')4 P1 w( q4 h$ P
                {
% ~7 M2 D  D; p. _9 A' E                        status_a3=0;
' [( d+ W* K2 b6 X$ z+ C                        status_a4=0x01;
" l& Z8 b1 G5 R+ q" Q5 x6 v! i                }: R% [9 t& a. q
        }" z, y' b7 u2 J3 S
        if(status_a4==0x01)7 ]) Z7 K. {9 ^3 Z$ p# u$ w
        {
* m6 s! A3 F) }0 |8 x9 [                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
& w2 W1 H2 L$ q2 |! v+ ?                if(a[4]=='G')
; w3 J6 A" H) E& s- w9 M                {
! Y2 x; _) f: v! X                        status_a4=0;
% r; n( i# I9 x: J8 \                        status_a5=0x01;! X" P3 X. F3 i, `; t7 r# c
                }
/ ?9 Z; M/ M0 q7 m* K- l% z        }
+ F- [5 _* R  Q4 ]        if(status_a5==0x01)) ~) D- N1 f) O9 p0 o
        {# l4 d  U  k  S- }2 T* D
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' h" D# l' C, C: T9 s6 U
                if(a[5]=='E')
! G6 d. X5 O1 x% r5 _# s+ M  O                {
; i8 x7 m$ o1 N; x1 |  Q5 R# ?                        status_a5=0;
& a9 {8 F' h1 t: I: P) \                        status_OK=0x01;! M$ t2 V  {3 W& U
                }- U9 F- q) }: v* L6 p# o6 M- l
        }3 r. I9 P5 X* N( x( g
            if(status_OK==0x01)7 b) p4 a# L4 F" n( N3 I8 c2 I
        {
. W+ J& [6 Q8 n+ n* _2 b" p+ x                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 M6 M2 ]8 I/ s2 N! h. _) B* k6 k
                        lengthrx++;
0 j" S; O! e7 o7 _; P- f                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
( a$ z+ k9 a  W% C7 Q. h                        {  A, P8 O* L- A9 v1 ?
                                RecState=0x01;
. }: Y2 s/ g2 O( i- t5 I- l                        }
! m0 R! s6 G( {  `% q         }. E( W8 D  U, J
) {* J/ H) T2 E. n7 d
     }
% v) J0 M3 S$ |4 |4 k
* v6 N. u3 S  e    // 接收错误
& }3 H7 u5 }- ^; v9 a# Q9 F    if(UART_INTID_RX_LINE_STAT == int_id)) l- s8 [% y$ O5 `& J" k. a
    {
' Q2 l, ?0 ?5 U/ S7 L/ ]1 h        while(UARTRxErrorGet(SOC_UART_0_REGS))
( A3 O* r, w* v0 x1 }- O% l        {
- Y) l( R2 X: m. q6 u1 {7 T            // 从 RBR 读一个字节" p9 t0 [. t2 ~9 n* b; i
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
1 b; i! J4 M0 J1 b5 {5 \' T% N        }
. M% u" G, m7 {$ `6 C* }    }& |7 `5 R9 i; ~& S2 \5 ?5 }

" U8 V' e& K6 d- j- g' d0 O( r    return;
/ |1 i- u7 S  e& a9 c9 z}& d' F3 P7 t; F8 i1 r# R2 v

  |0 b9 Z8 w3 H) f
+ T9 p; {( G. q# w5 U

; T' @' O+ h- w' L5 h# V# P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

积分
2121
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,) _5 a% j+ O8 G4 M2 c5 I

3 S& e" ?2 ~+ i4 @5 QUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
  w& o2 A" o7 L& y5 u* Q
- J) p' @- b1 i" K* U要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
. J( v. ^! T8 R+ K$ b0 F6 s/ ohi,
6 r, M% o+ ^0 D: M" m* g: j) Q( Y# l! C# e
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

- }. ]  f0 O% j0 Cvoid main (void)6 Q6 Y5 X* _5 V* H5 `
{
" g- U. W: \8 B3 S" K8 ~! v        int i,j;4 @6 `) f5 C* k5 B, \/ p$ Z
    char *str_buf;
! T- T0 z1 w# x+ p. @" N( V5 ~6 x    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
5 W  l0 t: Q/ Q) {" R) {        double est_L_b_=0;, j( k/ H$ A# g9 T* `
        double est_lambda_b_=0;; \2 O9 j! t# V+ U+ ?' X, \5 U) T
        double eul_[3][1]={0};' E! \  k4 `, \; L5 }1 V- I) H
        double est_v_eb_e_[3][1]={0};, z/ M& j( D! j- s( N# ~
        double est_C_b_e_[3][3]={0};
/ U# g% [* _$ _6 K2 A2 i" ~    char *qm;9 Y" I4 z* x/ C  U! o) A
    char rec[70];# M2 g5 v! M/ ^: |* u. j
        double L_b=0;) S* ~& D+ C, Z
        double lambda_b=0;
2 ?* [8 {6 C. @; v! i, J, L        double h_b=0;5 L, m# f4 W. b# u, A9 I3 y0 L
        double rate;1 @; ~. w0 v1 r6 G( t$ `5 u

; F5 X4 h$ r( e3 M" T2 V6 S) X2 }6 Q! `
        // 外设使能配置: f0 S$ `6 i! t! ]% y. F3 w
        PSCInit();
4 _7 d# @  f: t. q+ \6 A" T  L$ A2 D: e. `
        AppInit();
2 g# b, j) `8 i4 B2 J: O9 T: P% H
        // UART 初始化
0 D4 `( d% ]/ C) a7 ^8 |        UARTInit();* r- H$ z; V0 t' }4 u  B6 g8 h
& \; w  D+ V/ U! q' H; ^
        // UART 中断初始化& n5 q8 b+ D6 [! e# ?4 @
        UARTInterruptInit();
4 F# e3 C+ z9 x' @; p; v4 e- o5 M! y& g7 g* x9 H* Y/ H
    evtRcvd = 0;
1 t! W9 \9 R4 A3 O* y/ V    RecState=0;
; p4 K0 C7 Z* s- n    /* Initialize */( U2 w/ s! s- X  f! S  r8 A

" }$ R5 h. V$ }3 |( C" V; x    printf("DSP subsystem ready\n");. g2 k% U4 ]+ D  P( _0 n0 N! ^: n

6 I4 c6 J$ v4 [! {. c' X    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
5 E" M' Z, O8 B. X) I7 p1 {- d! ~, E9 k) `
for(;;)
1 n/ d+ C' p9 k) h( v% j{" i( n( E0 H# f! Y( O& {
        if((RecState&0x01)!=0)
6 X# A2 H2 P1 A: \# e- n. t5 r! }        {/ y3 t8 H; B! e7 m. s* t, b
                printf("liuzhenxing\n");4 \! @5 }5 ~, q, n2 g! t
        }$ v3 ~, ?, i! T/ F- U2 W
        else
% ^5 S+ F, t5 e) T0 o- p        {7 w3 n# ~, O; G$ P0 S" I
       wait_event();% T: `' o% B8 X  c! i: `! W, F
% w! l! ^/ j, _$ F/ {
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
/ d/ \3 z; F: M5 v) m9 z) ]* w4 m
4 Q! g8 H: E- o4 @4 L, v           for(i=0;i<60;i++)0 P8 Y! e. ?! k0 h" S7 V
           {
7 i- [: o% P+ A  W/ b! G( _, r                    rec=*qm;8 d4 O' X; |3 V# }
                    qm++;
- f( |5 v$ p; Q8 H; m/ j* w3 F; A" I           }
" u$ V" z8 g2 ]. M6 i8 n% i5 P) _' U  o5 u) \" U, @
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
& T" @" `# V. t7 j! y) |) B5 G
# \8 c' T% A& a8 t: _; u" A           L_b=L_b_receive_double;7 W# w8 z$ Y) l6 j+ k3 k
           lambda_b=lambda_b_receive_double;
* \! n0 c- D+ `           h_b=h_b_receive_double;
! t* Y* s8 U- _7 U. t           for(i=0;i<3;i++)
* }, P, l: F. o6 o4 C3 `: _; k                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];1 \" D% z* S) r* r0 \
           for(i=0;i<3;i++)
* b. l% C( I* G0 U8 Q                    for(j=0;j<3;j++)6 G/ U7 v0 x: V8 ?, @2 h
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
; a: H  P4 k3 {' A$ h1 G" w
$ e5 z( [8 F7 d5 n! q; g- [: K                printf("L=%lf\n",L_b);# E1 R8 T7 w" [/ @7 f
                printf("lambda=%lf\n",lambda_b);
9 K' X& G2 k, g- \! t9 H6 B1 c5 w                printf("h=%lf\n",h_b);2 `6 e- {! |5 f+ @# E

: R. H! Q* u  D) X' p- O5 M# z% ?                for (i=0;i<3;i++)
5 j0 u" R' P: b! K4 j# h                        printf("%lf\n",est_v_eb_e_[0]);
. [# o! b$ O# v2 t: L. n; l                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]);; y* t! O* a7 p* \6 f! e2 d! W
                printf("rate=%lf\n",rate);$ o8 i7 r) O$ N* V$ U
/ _3 h( ~1 d" l
                CTM_to_Euler(est_C_b_e_,eul_);
8 |% v1 w, c3 C4 m  ^                for (i=0;i<3;i++)
' H0 r" p8 c, n' T                        printf("%lf\n",eul_[0]);
( a  @/ q# s1 k9 ^0 K, `                printf("end************************\n\n\n");
3 H9 Q% ]1 |6 U! A2 a+ A7 [& j/ Z7 P0 }
                /**********************************************************************/' @6 D% B1 x; m/ z& u: \0 v

" D* I4 b" E  r6 D% `            char flag[4];1 ^5 `# X. T6 C9 x
+ H% K$ @& a* i8 n( i
            flag[3]=0x00;6 B, O. r' x2 O
            flag[2]=0x00;2 `5 O+ O0 k8 J
            flag[1]=0x00;+ R5 v5 d/ j" L& W
            flag[0]=0x01;& \" a! y& `9 L& m( w. R/ T

$ N$ A$ X0 z& \3 `/ H/ U    /* Allocate I/O buffer and init with string */
$ W% z6 k- S" ]2 [    str_buf = (char *) malloc(80);# j# w, ~2 z5 `
    str_buf =flag;1 f; R$ L/ j+ W+ b7 C- }$ d, W1 \8 ?' J1 k
2 L! d9 k" b( D% P: I
    /* Send buffer to remote CPU */
* M+ ]1 _2 l3 ^9 G* X    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));) \, O8 {+ i2 \& P7 E

/ s! }8 I' P( f& ^  I4 h! b    printf((char *) myPayload);5 _( c/ c- m& q5 C
        }4 Y7 O1 U- Q, f/ F# m
}
$ B2 p4 S4 y# |/ y2 L# {9 Q% s4 p( ]6 D9 ~
    WAIT_HERE;! C) W, _" B+ z* `' H
}
2 J) w7 j/ o0 \& i0 l2 P" ]
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
# [" b( q4 P9 N我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。1 @, k! ~, R* [9 B2 s
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

积分
2121
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 {3 a; a. G. ~syslink 的初始化是否成功,notify 通信是否正常了?
* _- l2 o. E+ q* S- `; ]
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54" @, Q7 f* b" L  i  s
syslink 的初始化是否成功,notify 通信是否正常了?

  s1 V' M, {0 F! \6 O我用的是裸机开发的双核通信,用的是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
% i" e$ l9 ^0 j0 Y- [4 M- i我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

. w* Q7 K$ b0 z2 z# X% P* |+ e; Y建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 14:44 , Processed in 0.050247 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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