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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
$ ]/ X( h$ r, T, m! }9 Y我是在DSP初始化这不太明白。
. b3 r0 T+ w9 u/ S2 N初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
$ P( x* U- D1 v- X
! z$ Y7 R0 [6 J, u. a1 R/ \
7 Q' S3 R) i, Y首先        PSCInit();//UART0使能
9 e( h9 [2 B: a0 W; c( |2 A7 avoid PSCInit(void)8 {1 ]2 f% u* P9 j
{9 _! X. k& S1 e- p
        // 对相应外设模块的使能也可以在 BootLoader 中完成! _4 W5 ?& C/ K
    // 使能 UART0 模块, ?$ q! i4 v- d2 N2 N* O8 w
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
) i3 Y* Y5 V6 k" r& M6 W. n' E7 \# D}/ E3 x+ K) E3 [) \
$ U: C6 b* G5 U+ a6 G* U* F

( [- W, e2 T: r, y3 K; o, D; O然后是 双核通信的初始化           AppInit();. L1 w8 R/ f1 V4 Q9 v) V
void AppInit(void)8 z, ?- f# ?* R
{' w: f5 B, f% A
    /* Structure to initialize IPC (see Ipc.h for definitions) */
8 J3 x! l6 w/ r) K    struct IPC_cfg ipcCfg = {+ N& h0 [* k4 [9 Q% r
            IPC_DSP0,             /* local processor Id */
; _' K) O8 g  E; j* f            IPC_ARM_HOST,         /* remote processor Id */
2 G0 ~) e: t7 I" @! i            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
7 L. j/ P' W% T- z/ ]9 a8 L0 @            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */3 B3 p2 c* h/ E4 ~1 T- R
            NUM_MAX_EVENT,        /* maximum number of events to be created */: y) _6 X' k3 N
            &ipcPvMemDsp,         /* local side private IPC memory */
3 K, l( `1 g' E3 r            &ipcPvMemArm          /* remote side private IPC memory */
0 C6 l( `1 S9 U% U7 U    };( ?6 q$ `* m( Q; O3 f; ]" q
    IntDSPINTCInit();2 \$ _5 t3 X: m# R9 ~5 `& q# H
    IPC_init(&ipcCfg);
% e* O$ R% R: L9 e    IPC_intRegister(C674X_MASK_INT5);
+ W$ H$ o: f, I3 ]    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));* l- A, y$ l# G# P

0 H4 V% m: k4 s3 Z9 G" h/ {% a1 \% q    /*  Enabling interrupts for DSP C674x CPU */6 _( m/ `; D- i/ t1 O
    IntGlobalEnable();        /* Enable C674x global interrupt */
4 i; n9 p4 {. B. A" j1 A    iAssert (Notify_start()); /* This will enable IPC interrupt */% a) A, Q, X. H( I1 ]
}
7 H( u( {, t- C$ J1 l- a
, R1 f! U1 g& P- }! J8 r9 [
然后是  2 }: M$ W" |9 v+ B, B2 ^6 W! W
            // UART 初始化
  ]- i& j1 C2 l8 Y9 S            UARTInit();
! I3 Y' e8 C# H8 z) k+ r5 S  H  E& O5 y% ?) v
            // UART 中断初始化
8 S+ b4 i$ k4 @  h            UARTInterruptInit();
/ W3 s& Z9 {4 O! O/ l" i9 n

5 g' {9 _* X1 i9 q# B7 G, l! p
void UARTInit(void)+ _7 y, U, \/ g6 E' \/ S: F. x
{  ^$ U8 U# G% \; x: w3 B
        // 配置 UART0 参数+ ~! k( I7 \& ~$ m  E
        // 波特率 115200 数据位 8 停止位 1 无校验位
  D1 ]" b2 s$ x1 W    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
9 k( Z" S# Q& S* S; o                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);) I& K3 `8 O+ p/ x3 Q3 R
        // 使能 UART08 T; t) ?5 M! n) z# d5 e3 M2 \
        UARTEnable(SOC_UART_0_REGS);3 P7 M: h# m" z
6 d& D4 d- `0 a
    // 使能接收 / 发送 FIFO
  B7 E! S% r, B0 q% E( b0 Q: R//    UARTFIFOEnable(SOC_UART_0_REGS);
$ e/ q! a( r& t7 d
" ]) z( w' H! Y& ?$ V) N' I8 G        UARTFIFODisable(SOC_UART_0_REGS);& |9 L4 @+ |) t6 ~1 ~+ N
# e% T7 D, _7 B) t9 F  o2 a
    // 设置 FIFO 级别     接收FIFO的级别" G3 f) f! M- }, |& T: E. j* b
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
) E% V6 C7 f! L0 {' w}
6 I) c0 [: d1 {2 ?2 L6 t% W
4 U0 ~1 R. Z. K2 @" p9 }

" F6 Z- U' z# }# N/ n; c  nvoid UARTInterruptInit(void)" B" ~3 U  Z# {& l% q% @
{
, J& T" N* i' B" }; S1 m+ ^        IntRegister(C674X_MASK_INT4, UARTIsr);
- k3 c/ h6 d" X+ v5 `1 n        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);" H; K& H4 I) V8 |; \( f! z4 [
        IntEnable(C674X_MASK_INT4);
( W" _/ }1 z( r. e, L$ t
1 c* H- Y( L& B$ I" ^) l        // 使能中断, j. @; I: M, k* R( N
        unsigned int intFlags = 0;% C3 Y" n0 \1 e$ G
    intFlags |= (UART_INT_LINE_STAT  |  \# {: D$ L7 g: P! t; c- W6 W
                 UART_INT_TX_EMPTY |    \6 u. {! ^0 Z+ h5 ^5 ?6 @4 O4 r1 s
                 UART_INT_RXDATA_CTI);( \4 k: c7 s' U" L
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
* [# T* t8 o: E9 q" ~}9 S' h* A' L, M" u' Z; Y
; Z0 P5 {; d8 x( E+ W, p* @1 X7 b
) C: y7 W: }5 A, L. h! q& M
void UARTIsr()3 s) Z: N& v9 B
{
6 Y: h- L8 ?1 y' z% g+ x    static unsigned int length = sizeof(txArray);
# o( k8 A' u: B$ Q    static unsigned int count = 0;3 ~4 f7 m0 j8 s- m2 n6 v
    unsigned int int_id = 0;
# Z( e6 m0 y( T
. Q, I0 g0 I6 z+ B7 J. R8 |' p0 J7 v  |7 c6 v

  c3 P7 p6 ]" h3 n1 ?3 {4 `1 Q6 w    // 确定中断源$ m& ]& B- O( j0 p% b
    int_id = UARTIntStatus(SOC_UART_0_REGS);
) y1 h1 l* n7 h$ k; D( F7 @
, s1 X/ e, e, {. d# g4 C$ `    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。- O) P0 B% i* q! N, T

2 `8 _/ t' T" |' n- e; N8 A# o1 |( |; I% }% E
    // 清除 UART2 系统中断/ u8 Y. \: B1 {$ o. s' D
    IntEventClear(SYS_INT_UART0_INT);1 Y8 A1 U# l8 z1 Y2 q# ^

! }0 H1 a4 F4 ~- |- ~    // 发送中断( J7 J' S. Z' C* G) {5 _
    if(UART_INTID_TX_EMPTY == int_id)
# C( X0 S% r3 f9 e$ N* N4 z* T5 E: e    {2 Q5 g2 n' B3 S. c+ ^1 F/ B: `
        if(0 < length)
7 X9 M% w4 k1 c+ q5 S        {
/ q; N2 ^0 x+ f6 F5 C' I            // 写一个字节到 THR+ g, [, k, X4 Y* W7 i
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);) n) c/ y5 k: e% C
            length--;! f" F4 I, W/ W: [2 J) q& A
            count++;! J$ T& t2 b& r/ l8 A
        }
; L, G% I4 J+ K8 x, _& g        if(0 == length)8 M) r' L) e2 q+ R8 b( p+ X
        {
' a% p0 M% H" q3 X9 f            // 禁用发送中断" c5 v# g( J0 S3 V. p' K9 G
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
; k! _1 k) }8 a5 Y1 f5 L        }
! d! Q( K% \8 h" |     }& [# Y1 f# j4 J$ j% c) @7 Y

5 L  H1 R6 h6 m1 Q$ I$ Z    // 接收中断
1 R  F* C5 @% b9 a* N! e    if(UART_INTID_RX_DATA == int_id)0 A% [6 s2 i- X2 N
    {2 u7 e2 s3 E& G
        if(status_a0==0)8 ?  h  x* _4 R7 U7 P9 \
        {
8 A" R! P3 h6 L                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' r6 P. n) \; g
                if(a[0]=='#')
) t4 M- R/ V' c! Z/ ]                {* C4 h4 i. d, T8 O9 H' Q
                        status_a0=0x01;' \! r/ g  B- x6 }2 o
                        status_a1=0x01;
7 O( y" W' `$ Y0 D2 R" [  ~                }
+ r/ Q# X8 y- k3 K        }/ l3 y: X6 P, V/ _! V; c: y
        if(status_a1==0x01)
1 m% m1 p* J6 }, o( n) o. n        {
% k7 d5 J6 \2 R; [+ ]2 c0 J                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);% ~7 t( F2 V% C" I
                if(a[1]=='R')
. @# b" [5 }/ C                {& w: O1 @2 J, j, p
                        status_a1=0;2 ]( Z, L6 x9 p  a9 X
                        status_a2=0x01;
# N8 a" A  l, O/ j0 l( r" P                }
2 d1 C2 ^- E/ _2 F        }
; ?4 I$ B2 ?* N3 O% t) N+ u        if(status_a2==0x01)
+ O# _) I* ^. p) k8 Y        {3 v& x! C: f+ i" d- a0 |
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* w: n7 E% t4 v' n: Q/ X; E5 C1 K
                if(a[2]=='A')- J# c1 W5 J6 N- x; L" P" j- Z$ L
                {1 r' C1 h! k0 C! g0 h! E
                        status_a2=0;8 f; y, q" @- B' m
                        status_a3=0x01;
, o0 |6 f! V3 i* w/ M% a& R. y/ s                }
( z" y/ z2 \$ D- p" o        }' a( z: Y6 R# U- z& P
        if(status_a3==0x01)
5 d4 s, }) B7 G7 J, |        {  \! k3 P, I6 W6 \2 F0 L5 f
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);& s" @, \( C. l% R
                if(a[3]=='N')' W( \& `* Z; E" J* E0 j
                {
. L( i+ \  C) |, D! g6 z* @* m                        status_a3=0;8 e: @7 n$ _# j% `
                        status_a4=0x01;
, w! j: M/ \3 h. t                }6 y" C! \  W- b/ f& X& G
        }
5 B! B% B7 [3 r+ T        if(status_a4==0x01)
# `% |& t4 I: H5 D        {/ e: {, I6 P$ y! M* h. P5 ]4 g, `. X
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
9 V$ T5 o7 K% I- l: l+ ~; n                if(a[4]=='G')
3 z; u! C9 b. d. M8 I4 @7 T                {
1 S$ U6 W  `1 l5 M" }+ m$ H$ O# b                        status_a4=0;' m9 o2 b" h4 I9 ^1 Y) A0 M0 t1 r
                        status_a5=0x01;! z) J4 U' m. T6 B/ o$ \, q
                }3 ~/ j  c5 k1 Z: h3 k3 G
        }
; F! D( f7 p! k! V0 ^        if(status_a5==0x01)( N# t& Q7 r9 p* a% `  U
        {% e/ j' D' |. k& u! c$ I3 A# s( {  H
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
0 c9 v' p5 z. Z                if(a[5]=='E')% c! P6 G8 Z+ l2 G# Y
                {
3 V' d$ o6 S6 r; I6 y4 ~) e; M                        status_a5=0;
! e( b5 s2 a4 \! k                        status_OK=0x01;
4 s- u! `) @# T$ I9 K" Q3 V                }/ Z8 u8 ^* X5 R  F: f5 d
        }
: ^  w: U& ~5 X6 v2 U6 y" c1 b            if(status_OK==0x01)
! H2 h. K  A: l        {6 v4 Y$ ?' l" j9 B. v5 M
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
9 P/ n4 d+ G. D4 A                        lengthrx++;
$ t  D8 d9 P% ]" s* ^. S- {                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)9 J& l" @' ]8 ]6 U7 C
                        {
. G2 Y; f( m0 l+ H                                RecState=0x01;2 p# r8 Z" b4 ]# G' I2 X
                        }9 P8 C" @3 e& r8 T! c
         }
  W. M: [: f  a0 h/ |$ q2 b0 w& J1 o
     }
7 N( _" D# }8 x. D0 |
3 v0 Q. F8 D" h    // 接收错误
) I: J/ y( J3 [. B9 v% D" y5 @    if(UART_INTID_RX_LINE_STAT == int_id); l. s# I* ?5 I
    {1 I3 y* i6 Y5 C& l0 d: [
        while(UARTRxErrorGet(SOC_UART_0_REGS))
0 q. e" R- K* @( ^4 \        {
$ H* d* b5 `. W  X            // 从 RBR 读一个字节  d8 h  j" t# o6 t1 ?+ E# A
            UARTCharGetNonBlocking(SOC_UART_0_REGS);2 L$ i3 O# d, l% g& l( ^
        }6 t4 x  D1 E3 Y! q( u- c! i# s. O; T
    }1 X& C( Z* ~2 q# J7 C3 z  k- O. _
  W# w/ C8 e2 }8 m
    return;' j( }4 p# i) g* B! N2 m9 [$ |
}8 H, L" V: b4 p+ X/ w7 w; g) F

( \" I: x) f- e$ d3 M
/ z9 s2 _3 e1 }( m" a8 P
: W. l2 ~, T0 L( l# T+ j8 V8 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,  R; w+ }. ~1 w  L
9 e" s& S8 p1 j: v5 j8 A* z* a% L
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
: v) }' r" L7 U4 @5 g) L* d% ]( d6 d8 z
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
9 \3 G9 j' }1 d' }/ i. Shi,
+ k/ `. g! ?% h" N5 u& I% f' E2 ]3 U7 J+ g* \, G
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
, F( s( b6 l) Q  r0 _
void main (void)/ w) n1 a- j; m; [+ W) \9 l
{
+ N0 t$ ]  ^; Y        int i,j;
7 J1 ]8 l! J" U! ]- A    char *str_buf;+ I" z! K: B, p0 j1 B  N  m
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
3 E; y( L+ }, t/ ~( g" T: c& G        double est_L_b_=0;
' U; N# k& L* P: Y7 w        double est_lambda_b_=0;
$ e; m0 x' H" X5 r! {1 w9 R        double eul_[3][1]={0};
0 L) W" }& ]* g        double est_v_eb_e_[3][1]={0};0 ?& @4 w* J& W9 r, @+ i
        double est_C_b_e_[3][3]={0};. q0 Q9 b. W+ X5 j# [2 j! @, n& P& z
    char *qm;# y: H( S8 w2 c
    char rec[70];, G& W. K. \# M' o  Y( b0 |* S
        double L_b=0;
1 e6 P; z2 n, ]5 F' M$ o        double lambda_b=0;3 M  H% I7 s7 T. g
        double h_b=0;
7 V" b) g4 Q9 p2 Y' o- G- R$ o/ h        double rate;* }! c7 k# s& q  `5 A$ H7 b

0 m! k3 a& o4 Q2 M2 A- f* ~
# C! |/ g( e$ {! G! S8 N" D5 s3 f        // 外设使能配置
) R$ p) C% ~2 l! ~" B# n9 C  A        PSCInit();! U5 @+ A" L% e8 F  y2 N
+ }0 Z, h! }/ a2 B2 J$ v7 x
        AppInit();
# w0 e& J1 c% L5 e5 b) t
  V; R5 b5 l6 {0 T5 u1 `9 \% C! d        // UART 初始化; {  g  H7 r; D% V( e1 K9 W" F
        UARTInit();
+ V* k% x3 a% C! {* [1 }  e) D& z4 }1 N" k) P- }
        // UART 中断初始化/ }, t$ l4 y" s0 f( \
        UARTInterruptInit();) X; K/ d& u7 \
6 n; t% ~# K1 l) Q
    evtRcvd = 0;$ {- `4 n4 r  F( |9 u1 z, \5 f
    RecState=0;" I/ {. e8 O- b& r4 i5 L$ }- U
    /* Initialize */
8 R: E1 A& i5 U/ F- i- P/ c
3 D/ t1 j3 G$ x. |. {. `2 U    printf("DSP subsystem ready\n");( h  a) W! Y' K8 a
* N+ k2 F( e& i* r; Z
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));$ o7 m! ~/ v4 K5 f# P5 y

5 k4 ^# ]- f1 I* q0 F6 Ufor(;;)
; @9 R( u3 h' e! ^; w{0 u- {2 c3 v& Y& w. e& j9 d5 q7 y
        if((RecState&0x01)!=0)
, y  E" O2 t$ A7 P; D6 B" Q        {
3 Z1 s6 p) Y: [* b6 \                printf("liuzhenxing\n");
5 O: d; Y/ ]2 j' J5 Q- q  @/ v. [        }2 P" M: }6 X, W9 ^  j; Y
        else
$ f7 ~( E+ K# _# ?; P1 @        {
! I4 e; P# J1 c: A% N' _! ^7 Z) F2 c       wait_event();
" H. _; U( m: k0 ]" M$ l( F" k1 R, Q: p
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
/ j! H) J6 |6 M, ?; p0 S
" m7 U: n  d; z. S9 s           for(i=0;i<60;i++)
+ U+ \. ~; h+ v) `9 s6 {           {
* D1 _) R& A: `+ {  j* q                    rec=*qm;7 N( O& y$ l! I5 H- r
                    qm++;) S9 j) q( a. O$ a- ^% J
           }, y1 {, v% Q; c! I( q
' ]. M; s9 t2 x7 k( Q
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);' ?2 e# M0 Q+ h, {" {

* U" A3 D& k& f, ?% [           L_b=L_b_receive_double;2 S& S) r3 Q1 Y/ b( x0 f
           lambda_b=lambda_b_receive_double;
' A# }7 I+ n+ ^% f           h_b=h_b_receive_double;, p7 Q* F% ]  U5 b$ X. S% m
           for(i=0;i<3;i++)2 F3 C. \0 R/ t4 k" F# o; g
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
4 Y' E9 C' T/ Y* l9 d$ y- |$ e           for(i=0;i<3;i++), P" t% E8 `  R2 q
                    for(j=0;j<3;j++)2 q7 ^4 t" ~% {4 ^  ?" A
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];1 K0 L( m& N4 z. N
/ U* U+ T: G) F8 ^: L* |4 j
                printf("L=%lf\n",L_b);" |  ?4 |4 o7 E8 z
                printf("lambda=%lf\n",lambda_b);
, s5 D+ |  Q, O2 B* i# m                printf("h=%lf\n",h_b);5 g1 O7 [9 y0 W, T1 U2 Y9 E& [

/ y, H' q8 K$ `. X, k# I0 a                for (i=0;i<3;i++)7 C7 p! ]3 J* E8 v
                        printf("%lf\n",est_v_eb_e_[0]);! Z& U$ U& ~8 I" G: Q+ w, 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 j# J) d2 a$ F                printf("rate=%lf\n",rate);5 ^! X/ n) {4 {4 v. M% d0 D; l
/ f- L- l, j4 E5 s, i2 R. C9 Z! S
                CTM_to_Euler(est_C_b_e_,eul_);: f! B1 s3 C9 i* O% a
                for (i=0;i<3;i++). [8 E1 y7 Y6 x" i4 }+ k
                        printf("%lf\n",eul_[0]);
* n, P8 g2 @( u: M                printf("end************************\n\n\n");
% O5 T% `$ S7 w( T# |7 L% W) l) M! m! ]
                /**********************************************************************/& A2 e8 U4 W/ j- z  ^

& ]9 x- z, u/ M+ Y            char flag[4];
6 v( Z* `" `5 F  j' j
1 t8 O) b) ~, {1 o+ t7 b            flag[3]=0x00;
1 }7 g3 l. C. J) C& A6 w& ]# x            flag[2]=0x00;
6 J  c+ k: w5 o3 l            flag[1]=0x00;
& d" p3 c. L' I/ c4 T, P            flag[0]=0x01;
9 w1 u0 b" @5 |& a5 G! ]/ x  M; l# V
1 M4 E7 E, K  a4 Y    /* Allocate I/O buffer and init with string */, Z$ E, L% }6 x( E: N  o# Q
    str_buf = (char *) malloc(80);' d4 t2 M% X+ b& C1 X
    str_buf =flag;
" I& k7 V7 q- p5 k& n- E2 t
) a# P4 z& ]( [2 D6 \) V3 k    /* Send buffer to remote CPU */5 w' F, x. y2 c) D3 C
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));1 G/ r) f* q; |! a4 Y# t

0 A/ `* W3 c( X( x    printf((char *) myPayload);7 r; t3 c% w% F; T8 V0 J% e
        }5 `9 c5 X& t4 l: h" h3 I
}; l- |8 h* t/ n  v; Q: s4 m3 N) y/ u

4 [3 O& H% V6 {    WAIT_HERE;# T. |% l! N4 a# I* ]3 b2 Q
}8 H; x( G& x) w7 \4 M* Y4 T
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:$ E! b# u  O7 ]
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。$ i" y; L' s' J+ d
然后我把双核通信的初始化屏蔽掉,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
6 y) M5 p; r7 c- Usyslink 的初始化是否成功,notify 通信是否正常了?
+ p$ W( l2 X% k* Y4 T3 f; u/ h
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54, m6 C8 {5 [8 p* S& T, r
syslink 的初始化是否成功,notify 通信是否正常了?
- b$ A* L/ H( ?1 h2 V! b1 o) 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
5 |+ H: d$ U1 I% @0 E) h0 x我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
+ D+ @- W, _8 r/ N- c/ a
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 08:13 , Processed in 0.053677 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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