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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。- P3 [: _; c0 L
我是在DSP初始化这不太明白。
$ ?: ^4 I. K' P% C$ m' [. Y初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
' s4 Y$ R! O: G/ T' Q
# _3 f: e. |) ^6 G8 s  |  [+ j$ @# f5 _! X) s  f
首先        PSCInit();//UART0使能
! y; W8 @' }- v/ z4 _void PSCInit(void)
8 h6 ]9 H/ O; d3 c! g  D{
4 e3 o2 ?9 Y$ C' C2 ]        // 对相应外设模块的使能也可以在 BootLoader 中完成
; a/ v/ }8 ]1 c; q/ [4 F5 O4 E    // 使能 UART0 模块! o; m5 d/ z; [
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);- I5 B, p) v9 h9 F
}; l0 M7 J6 T2 R8 c7 R7 Q% U
* n& \1 H( l3 W* `* `

; ]2 V# X' W) H( ~1 I2 P然后是 双核通信的初始化           AppInit();# ^( ?& y) Y# n' Y. G9 E  p; m
void AppInit(void)# r# Q( R2 B4 \% [* e7 q6 R
{% N% k, W) j2 Y1 u  }8 }* n
    /* Structure to initialize IPC (see Ipc.h for definitions) */9 M4 s8 A" A' Z8 S  [
    struct IPC_cfg ipcCfg = {' w; @$ T' |9 U0 B. u6 {
            IPC_DSP0,             /* local processor Id */
7 {$ a- M! Y  X- Y            IPC_ARM_HOST,         /* remote processor Id */
# Q. c) j3 O* W3 ]" ]            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
* M, _0 {$ t  m  o$ l            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
( e- S: q2 E. W' v2 W$ P/ D            NUM_MAX_EVENT,        /* maximum number of events to be created */0 n, Z8 R" r/ B3 {
            &ipcPvMemDsp,         /* local side private IPC memory */
: ^8 |+ ^& j4 @            &ipcPvMemArm          /* remote side private IPC memory */
' {( R. v  \0 X8 K9 V    };
1 Z0 ^8 U, T) z% w/ z" v: C3 b    IntDSPINTCInit();
+ W8 g, z' X- S: b- Z* t: @    IPC_init(&ipcCfg);
8 T9 O, E, E+ E+ q, d9 S    IPC_intRegister(C674X_MASK_INT5);" m/ V5 D6 {: u, h, A
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
# S* [& n2 A* G1 t# _3 h5 G
4 E: ]* s9 Z* h6 Z% K" x. P# v! T$ N    /*  Enabling interrupts for DSP C674x CPU */. l2 y' s, x/ _0 E; ]
    IntGlobalEnable();        /* Enable C674x global interrupt */
; k" l: w  c' E( p: t. @% q    iAssert (Notify_start()); /* This will enable IPC interrupt */1 y3 I# S. \2 b8 ]9 g
}
/ z7 c  \/ W4 V
1 e7 G3 R* A* A0 S! B; c
然后是  
, J  R+ t$ V& a0 c            // UART 初始化) C+ d9 E! Z+ ^! ]+ v5 ?
            UARTInit();
7 H% ~3 `) g( v; A3 O
! h' _2 n( b/ w! V4 ?* N( z            // UART 中断初始化  B: Z4 t# Y# {8 ~9 i7 t
            UARTInterruptInit();1 f9 H( M) i# d4 C

: Q# C9 b" U6 C  J- Y
7 I! y' ~/ s8 Y" ?+ Q0 c# m* nvoid UARTInit(void)
2 Q& D" r) c, y- P1 ~/ ?. D{
, u" c: X6 x4 }$ A3 I        // 配置 UART0 参数* _7 F8 \+ a5 s( O2 W$ v* B
        // 波特率 115200 数据位 8 停止位 1 无校验位6 w+ W4 V- s) C( B
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,, S& t# G' Z0 B, k0 w8 x
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);7 `0 D) Z; z0 a; @# P( z7 T
        // 使能 UART0
3 N5 r7 ?" f* I5 ?* S$ j        UARTEnable(SOC_UART_0_REGS);
( j/ c( _1 a5 C! f3 W2 E- C; T7 N- }! x5 k* w
    // 使能接收 / 发送 FIFO5 ^# L3 H( S2 Y& ]  D/ ~
//    UARTFIFOEnable(SOC_UART_0_REGS);
) W  X9 q; t- n2 X5 d, O
% p; M! E4 \) s8 \, }$ i, e  b        UARTFIFODisable(SOC_UART_0_REGS);0 U' N  _4 K+ ~5 ^/ J
' |7 L) I* ~8 K! b7 ]7 U
    // 设置 FIFO 级别     接收FIFO的级别
( o) |+ f* j) r7 R//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
) k9 U' ^5 _% M* O9 J* V; Z# o}
  @0 f- p+ p3 {% {0 z6 x' ^; X2 g
) u) Y7 M. a4 u" q9 r- C
2 Z( m7 F: M( d9 ~; L
void UARTInterruptInit(void)) @( ^  n* i  U5 r# b
{
) v& ]  F. K  Q0 V        IntRegister(C674X_MASK_INT4, UARTIsr);
$ B- M6 A% I- x. V. L. s% ~# q        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
: P( Y2 `( l$ m% ]7 B        IntEnable(C674X_MASK_INT4);8 j4 z9 T% o) g) ]  o  M8 z

/ t/ k" a& ~0 W& X& l/ P        // 使能中断  s3 v5 _+ s" }& Y' S! ]  _
        unsigned int intFlags = 0;
8 w4 D6 d0 h; o    intFlags |= (UART_INT_LINE_STAT  |  \
( a% u" b( ^6 @* {, V' Q                 UART_INT_TX_EMPTY |    \
. ^% J5 z5 @2 I2 Q8 T* S! R* y                 UART_INT_RXDATA_CTI);- |$ p; Z( c# D; e  o
    UARTIntEnable(SOC_UART_0_REGS, intFlags);, W8 M2 n0 e! s7 Z% f
}: V/ B! E3 d5 p/ w

. k5 g/ T9 G" K! h" P2 m0 v3 C" g! U, V' C' C3 \5 |9 Z
void UARTIsr()
" S5 j* H/ x7 i* u{7 V1 u" B) l1 w9 f4 ]1 M
    static unsigned int length = sizeof(txArray);" ]: ~2 O0 z/ T4 S) j" |
    static unsigned int count = 0;6 ]% \+ p' j* A; N; H9 ?; X
    unsigned int int_id = 0;- G2 M+ `) B, R; ]1 C( G0 d, v  C
8 d9 @1 q( g8 q" `9 ^2 _/ f# {
* t+ S: C0 \) n
9 Y% k2 Q# b! j. s$ B5 v
    // 确定中断源5 p. @: [3 @3 t0 E5 o
    int_id = UARTIntStatus(SOC_UART_0_REGS);
8 e6 M' x4 ?, Q, g: L3 S6 u( R# V: Z1 E9 L/ z
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。- I! \! ^5 S' f0 ]( y+ Z
4 K( H+ N( L: Y4 B" l, _
1 w% l1 c) \5 z0 `, @4 ^8 l- k  ]
    // 清除 UART2 系统中断5 o* Z. i/ @. B' x$ q
    IntEventClear(SYS_INT_UART0_INT);  @5 S- W# r/ H3 j8 Y; w* G, r
0 O! C+ w! \0 N
    // 发送中断
5 y& N# C( n  ^- u    if(UART_INTID_TX_EMPTY == int_id)
: }8 p  ?! O+ A. }" N    {
8 [* L2 R" S# ?" N! O4 Z/ u9 A        if(0 < length)
, d" O+ f9 n: F3 T7 Y5 k& T        {
0 m  i! O$ o6 G+ _) F0 [. r+ S            // 写一个字节到 THR/ O$ O6 j4 X9 c, L( F* |
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);4 E% \: q1 K" F. j% H! q
            length--;
1 a2 F0 R* t0 \. C2 `            count++;
- k( ^* f: K) M4 L- L" r        }+ b- M" @: w. R1 u8 }
        if(0 == length)
! z0 u4 `2 N2 [- ~% Q        {5 W7 E1 Z% x# {, R
            // 禁用发送中断/ o$ n$ J) A4 ]( v
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
& u$ \) a- }+ S9 V        }
2 Q$ O: _6 q8 ?& R) r! o  a     }+ L. x- `; n* k, d2 I
) o3 n$ l! [0 J% Q  [  ?
    // 接收中断
* H# ]" ~, \, o9 |5 @    if(UART_INTID_RX_DATA == int_id)  Q$ z  N7 m# }+ W8 ?
    {
/ [6 F& K  C; K/ U  Y( X        if(status_a0==0)* z+ U1 p' j0 K4 w
        {
1 A' h( Y/ x' J9 ~* S. x                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
8 I0 B! |1 B% ~8 z/ q: r. a                if(a[0]=='#')
4 i  F/ N9 Z; m                {. y0 I8 O4 `. @4 m7 ~! C6 Y
                        status_a0=0x01;9 n' ]- B. ^( }$ F# F
                        status_a1=0x01;; Y8 E% }  l8 }7 x
                }' C3 e8 j8 S% u4 u
        }
5 |# T8 R3 U9 {7 s        if(status_a1==0x01)- e* n, G6 Z( E# H! W# A' z
        {& a; g2 z. _5 W( N2 O3 _
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 e* f1 `/ @0 F: }  I3 x! o                if(a[1]=='R')
* v7 e/ j$ w9 j: T$ u. c0 S+ }                {
$ h4 `$ v1 l$ x9 M  }0 b( t                        status_a1=0;1 P$ f# L1 R) {( Z
                        status_a2=0x01;& s6 s* `1 }! d; J6 r+ y% u
                }. T: \2 w9 _0 H. G8 R' {2 O
        }0 w' r9 S2 v- x  l* n, {
        if(status_a2==0x01): ~/ h7 q8 R) f' b
        {
3 [" Q! u" A1 \, q; Y' Q                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% h# a) I5 D; L) [+ T; G1 o# ?                if(a[2]=='A')
) Y$ ]% ]6 X; S                {: d' c  r! ]! r& l1 q
                        status_a2=0;
: l$ ^& l1 r/ M# w+ U3 k                        status_a3=0x01;
# }/ Q% z7 t# q/ m+ O                }: L8 |% U' @: I  q
        }
- @2 t& Z; _+ x: [' {. [        if(status_a3==0x01)
, x, M8 e$ k% U        {0 ]+ G% V  R1 C" G. R' n# I) `( ?
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);4 J4 r( r( ?% P- p" g
                if(a[3]=='N')
8 L( m: |2 c7 x& U                {
7 @/ j+ y+ k0 p0 B/ Y; q5 {2 t                        status_a3=0;7 t( S. R3 }3 r! x
                        status_a4=0x01;- ]/ C  T! O* p9 L: `0 A$ n9 n8 f
                }
* Q; N% K- k7 x0 O3 s" z0 Z$ H        }
/ C( p2 w% j' W6 V' d        if(status_a4==0x01)# R4 l8 Z$ O: H; w5 S% [
        {9 f/ g2 H7 L4 a& K
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);$ S2 a. s) d: v0 C; \# S2 S. n2 j# o
                if(a[4]=='G')4 h$ `/ d1 [- O6 S  Y, y& \
                {1 Z3 ^! W" ~" W$ d% [5 x% X$ i
                        status_a4=0;7 R+ w7 z3 P3 H+ }2 R3 l! ~3 s
                        status_a5=0x01;
0 v, Q8 Z7 s& ?: ~6 `                }% m! Y3 w' R) ?( S3 `4 l
        }
5 h  O; {1 ^$ S* B# }- e- o. j        if(status_a5==0x01)- M' n  ^1 o) d( f3 p
        {! c  |" T0 c1 i" }& m9 A, n
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
) I% y1 \* R3 n) K                if(a[5]=='E')4 ?0 U( Y' S( F. j  S
                {4 x  j! s5 B$ [$ J$ m& F$ R
                        status_a5=0;
& P0 a/ `. h; \" r" @5 L                        status_OK=0x01;
0 _9 m* r/ {- l1 M2 o9 {) ^                }( y! H: }# K" J6 f; d5 B' V3 u9 N
        }
  L- {) B, Z1 p, W, Z. P8 p            if(status_OK==0x01)
8 P8 i' M+ q0 K/ M; a2 I        {0 R' A3 o5 ?2 D' ^- C; F
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% W1 q0 N/ ]8 ~3 r. X8 O                        lengthrx++;
% _* |, ^7 ?4 X' q* p" W; j                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
! V4 N  g' }( p( \: u  N; y( ]                        {
# E8 m) G: h' H                                RecState=0x01;) V2 i  N# G; T6 o4 [! O% X
                        }% ]- v1 a8 Y3 z3 I% w; O! A' G0 z
         }/ t' ~- v4 s  x1 O1 g7 g1 v$ N
  U, T+ d  @0 [7 ~2 v
     }2 R/ W, [8 O: S7 L; S

+ L. a  h) r( \5 [6 w    // 接收错误
* @3 w- C# Z/ y$ V% P! L    if(UART_INTID_RX_LINE_STAT == int_id); |# `( \; |; d* \) N" a- L
    {
& h# m& A" c  l        while(UARTRxErrorGet(SOC_UART_0_REGS))* M9 z: V. S! ~
        {
! W  Q( p6 k0 k8 b/ L3 x8 ~8 \            // 从 RBR 读一个字节
! }1 H/ ^/ P% O( \/ P            UARTCharGetNonBlocking(SOC_UART_0_REGS);
2 T. [- ~" u: l6 G& a        }5 o& |0 {+ _8 I0 g) a* o
    }  G6 V! Y8 P6 f
9 o2 k6 A+ |8 @: H+ x
    return;- Q' d3 C5 {  F
}0 T$ ]$ a0 |) I7 K' p! G. \9 |
$ n8 X' `4 Z$ J( B, o9 {  N( E3 d
5 f5 R$ j' c" ?8 J* d

$ {3 }7 X9 v! M8 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
- ^, L5 o8 |# v9 W
( X" H7 t) \8 a0 X. [$ @UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。2 ?* p+ m* N! ]! W& Z3 k+ q7 p
% {0 X; ]. `( h# E7 Y* b7 F8 G+ s2 O
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
+ w# }" k5 l  m# v% w1 [, ahi,; V# p( M! x1 c. L0 \  {$ Q

$ y0 C, I1 a$ k/ U' tUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
. r' _0 \! T- n: k6 M3 a
void main (void). A* j' P& o) a) o5 L9 M, a
{
5 r1 u6 b8 x5 o" }        int i,j;; r/ A0 `- \# @% s
    char *str_buf;" x2 Z' R' u# J5 }5 K) G
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];, X1 H: B' z6 R$ B9 s
        double est_L_b_=0;* X7 n7 I& x) e1 m, T( l& v
        double est_lambda_b_=0;
+ s( R: i* E' Y% p        double eul_[3][1]={0};* K! d, k" @9 B) P' r9 v, V
        double est_v_eb_e_[3][1]={0};' Q  `: `$ f& `% p1 O2 {$ N
        double est_C_b_e_[3][3]={0};5 s3 G  ]0 g1 F
    char *qm;
  t6 C; e3 w/ x; T    char rec[70];' E/ A+ l& U& J
        double L_b=0;
, _5 o+ v% c' F* j        double lambda_b=0;
+ H; f4 Y4 I8 \2 X  o! [* ~        double h_b=0;
; S) d  |( T& R$ q: c8 j& B        double rate;
: y) \( K( ]7 h1 M
6 M# V5 ~, c. K# w& N" W' b9 l
; {% g: Q! M9 T0 c) G        // 外设使能配置( F) B0 N( L2 C
        PSCInit();
8 N' T- }7 j4 N8 ]/ |* p& T
8 O6 R! o( J: @4 O" s0 I        AppInit();
& J& d% f/ N* G' R0 m/ A, X4 \# M# y8 g% G
        // UART 初始化
1 z4 Z( j; C5 f  s# [9 m+ P: n        UARTInit();
/ Y3 c+ u  x" Y5 `. a  W& l$ g4 Y4 z% r) Y7 h" Y* r0 `
        // UART 中断初始化& r( h% T# [* d0 M! l
        UARTInterruptInit();% u6 Q" _8 ?5 v5 ~: J

' u# a* b* S8 }, x3 H4 i    evtRcvd = 0;
* h) S% A8 b0 i' `% ]- T* N    RecState=0;
2 w' a) y! z9 B# _    /* Initialize */
; D; c$ T) D7 o8 z6 F; y
/ `4 Y% D) B& \% ~" M0 H    printf("DSP subsystem ready\n");
$ q3 W  O2 j* U" `$ c0 k8 }0 H  {& D9 h0 P8 Y; H
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));" s) Z" r1 g8 z+ n; I2 p3 n
4 a2 l+ U/ G) k! L; i
for(;;)
$ v1 Z' M1 t" s3 j  m{
: t& m8 y" X' @% _        if((RecState&0x01)!=0)
1 T- P. e- F* m5 H  i, b        {; h' j' B  U; z) R! Y% }+ `
                printf("liuzhenxing\n");
; U# _9 K) \3 n6 b. d7 y0 x) ]        }
: @0 H! t* Z, ?4 O% Z        else! k3 u) v" ^! w7 Z: G0 h: Z% N  p2 s
        {
, U+ j% l% z0 L( w8 P       wait_event();$ l0 k  d' V, ^7 e! H" B  B& f" x9 G

/ f% n0 V  h$ Z           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针. w$ [. F. A0 w

3 s! ]+ q6 j8 r           for(i=0;i<60;i++)+ m) h- N" }  q, [. ^4 P
           {
. \. V, n% t, W2 ~1 o$ W) d                    rec=*qm;
& z. [6 J4 V4 T                    qm++;! W: M. o' A2 W: ]4 T
           }
$ Y+ H8 ?$ {' W7 n# f) {  ]" _; G
% E! G6 E) P- O9 ]5 ~3 t1 D) h' F8 B           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);" y& X1 F- \  }
0 Q. e/ ?9 s0 N7 c
           L_b=L_b_receive_double;" _7 \3 \. E; h' D2 \, k. Y6 G& H2 T
           lambda_b=lambda_b_receive_double;$ t* R1 X4 h; S% q# ]* c
           h_b=h_b_receive_double;
( q- H9 `! L! s) L- e           for(i=0;i<3;i++)' w* V9 d0 c) s) v( {% @6 ~& ]
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
# L8 B; x( g1 d% u5 }- H           for(i=0;i<3;i++)
( Q! U, l: Q+ r# ?                    for(j=0;j<3;j++)! |" [( m1 z% Y/ g8 C( F
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];( ?; D* l' V" }% T

4 H, `$ _+ l* g                printf("L=%lf\n",L_b);
7 C7 l' D# n* k( R6 G                printf("lambda=%lf\n",lambda_b);
' u& T2 P5 l7 B                printf("h=%lf\n",h_b);+ p; ?5 }: m% `
; b8 B! y; B1 ]5 p
                for (i=0;i<3;i++)) l- t$ [! m" e& o3 ~1 P' h
                        printf("%lf\n",est_v_eb_e_[0]);; ^# t" z  |9 o3 r* \1 {1 e; K
                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]);9 t/ E+ J# e, g4 ]
                printf("rate=%lf\n",rate);
( N: \0 X3 h0 k! x5 ^% T% d" P' \; b3 I$ Y: ?* F* r
                CTM_to_Euler(est_C_b_e_,eul_);8 [  s  Q3 Q9 k# F
                for (i=0;i<3;i++)  e! G+ v0 Q7 A7 j& [; r# M
                        printf("%lf\n",eul_[0]);
0 J" g# r2 Y. W" @                printf("end************************\n\n\n");
  e# v9 z2 Q) K5 i- n% p# x+ n- W9 b
                /**********************************************************************/6 P* V0 l3 g# G; s' [
" l2 _' E3 Q. I! n; Z
            char flag[4];
- Y+ A$ \. s- ^6 a3 m- _
4 u% T7 v  I2 ]" K            flag[3]=0x00;
: \) ^: P, a7 S8 c+ P            flag[2]=0x00;9 U' D8 Q. V1 a, U$ Y( ~* Q
            flag[1]=0x00;
1 b2 e( J0 l- ]1 R) [( c1 o9 X+ L            flag[0]=0x01;3 P4 B& k4 I% \: H- t; u1 ]& H
$ z4 C1 P: H2 n+ J* }8 i7 |9 b( C
    /* Allocate I/O buffer and init with string */
( ^1 g( ?9 E3 ^% v3 U5 ?: B    str_buf = (char *) malloc(80);+ E- @2 ]% v0 b
    str_buf =flag;
) b+ g, \( ~# g+ w
9 v% ?' A, i( ^2 e$ H7 N. A    /* Send buffer to remote CPU */# r0 b+ c8 D# F  F- o' P4 s
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));! g  h7 C6 ?: V. a+ G1 D! b" j
( f$ f) \- T" Z* m
    printf((char *) myPayload);4 i4 t3 I2 `/ [; Y/ X, E0 A
        }
+ r: e3 l( [* l) W}  e. c. G  D9 @" r6 `. c- l

& `5 y8 B+ w. Z    WAIT_HERE;+ M* A0 ^% U& c! e- G& G
}
" X' B: Q0 E) M( P# L
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:7 e, N" z( X1 i0 F3 g# B
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。0 u5 v4 [( a5 u& I
然后我把双核通信的初始化屏蔽掉,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:549 V" Z; S, X/ O0 v; y( q
syslink 的初始化是否成功,notify 通信是否正常了?
* b/ s( n$ b  \/ J
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
$ Y8 Q& A4 r+ h3 Hsyslink 的初始化是否成功,notify 通信是否正常了?
  V# D! a% o$ u; R" T
我用的是裸机开发的双核通信,用的是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
2 |9 C! x3 N% y3 t我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

" r* ~6 J- @1 E& ?/ H- k3 G2 |建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 20:09 , Processed in 0.049370 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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