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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
3 q* [; F. z5 c& D0 a我是在DSP初始化这不太明白。2 P( }% e1 }/ r0 H. I! P( s
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
+ H% w+ B# Z% s! w) B% @, \$ m, [1 ?* g6 M! j* Z# }
# ^) l3 c0 V. i" b6 {0 J$ E
首先        PSCInit();//UART0使能8 ~. @+ y% ^+ E; C- Q
void PSCInit(void)
. k# f' u+ _) x2 a/ P/ ^( e4 ^9 m{
/ Q% G! d- S" B5 [+ M7 Y9 X4 g        // 对相应外设模块的使能也可以在 BootLoader 中完成1 V5 W3 S) Y' h( `% s
    // 使能 UART0 模块
, s' ~# V8 i; V: H/ m3 _    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
& D" x0 c( d5 V1 d4 N/ N; i7 ?6 l}4 d9 G) ^  S) r+ ^' o4 F* G

+ T( E5 ~6 _; i1 [1 A6 g% C) a( a* ?; o$ Q
然后是 双核通信的初始化           AppInit();+ C! u8 g, R: t" ?' D0 |! Y! z
void AppInit(void)$ z3 u+ D$ Q/ x
{
  O2 [' _  l# _5 z' R$ ^/ S2 p    /* Structure to initialize IPC (see Ipc.h for definitions) */
7 u. p, C6 q% g" i: G; Z: \    struct IPC_cfg ipcCfg = {
8 n1 K0 ~# ]6 H+ v            IPC_DSP0,             /* local processor Id */
& D- H, W9 F% y4 b            IPC_ARM_HOST,         /* remote processor Id */
' ?/ Z9 n3 J" |& ]( E" u2 u            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
$ p" E3 T# ^7 X& b5 @& I            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */. S+ {. L! \) E3 F  q
            NUM_MAX_EVENT,        /* maximum number of events to be created */
/ e9 L6 v/ V$ l+ |" z, S/ B            &ipcPvMemDsp,         /* local side private IPC memory */' V: a3 D" f! Y1 V
            &ipcPvMemArm          /* remote side private IPC memory */" v8 y4 H6 s2 ^) J
    };8 f1 r: A' V" x  V$ t; v2 S3 @
    IntDSPINTCInit();
  b  m: s8 a% k( [% R$ {6 H    IPC_init(&ipcCfg);3 Y& }3 g5 p% C, X" n$ |8 P
    IPC_intRegister(C674X_MASK_INT5);
( O! t9 w2 v+ U& Z  [" o! a    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
) Y) g# ^/ C3 j/ \8 X" q, N5 r% E
* x; p1 }  K. _4 x$ @8 B  i4 `- d    /*  Enabling interrupts for DSP C674x CPU */5 k3 K3 v# L+ L) [1 m
    IntGlobalEnable();        /* Enable C674x global interrupt */8 w0 p- h) I6 R5 ?
    iAssert (Notify_start()); /* This will enable IPC interrupt */3 G& F4 A* b' Z+ }2 m$ g; C
}+ {2 X& @( X$ N/ N: H3 K4 H6 v# I  ]

1 u1 m7 z' K/ @& w然后是  " P" D& g: O8 ?' `+ ^4 a: }  q
            // UART 初始化
6 L* r7 l# p8 |6 O5 U) |& a            UARTInit();
" i$ R8 u  n4 d5 `3 E4 S
! T% ^) _9 W7 ~. S+ ]' I            // UART 中断初始化* Q7 B4 l. K0 ]- |6 K! S
            UARTInterruptInit();
3 c$ |/ i- T3 b8 K" Y/ A4 Z4 \
, ~: [6 C) C' `6 {! s- J
$ T( I! E0 h( E% \3 }3 S
void UARTInit(void)
6 s* z- y6 }  e# t# p8 @$ \{- x" H. @7 x% \" Y
        // 配置 UART0 参数5 X# {0 v3 Z  i* {- m' p+ a- x
        // 波特率 115200 数据位 8 停止位 1 无校验位
/ p. d$ E* \& W& a" i4 b# d9 H    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,/ d) O5 ]" O+ C3 @
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
; k; s; l! `, ?  d. f6 \        // 使能 UART0
4 |& H. ]  [0 X9 e) r. {        UARTEnable(SOC_UART_0_REGS);+ ]- W8 q% ]( r2 B- R0 z& }

; Q2 q( z! L5 x$ s    // 使能接收 / 发送 FIFO' m* u$ O5 g% ^0 n
//    UARTFIFOEnable(SOC_UART_0_REGS);
9 \; |$ O. u! o; |& q! J/ f/ p6 d9 p# U
        UARTFIFODisable(SOC_UART_0_REGS);
9 d' d# z) K9 [$ q3 H
5 q& k  ^7 b0 }6 v7 O3 T    // 设置 FIFO 级别     接收FIFO的级别
. Z0 d' V- ^# A# H: t+ x//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);4 q2 E! [' b) }& |
}! ^* s/ w* F; @7 q: \

- {; q0 \0 L. G5 ], Q* b' h8 h. o- s& B! F9 b
void UARTInterruptInit(void)# S7 [& l7 W* E1 s
{, `3 w7 D1 R0 S  i% }- f
        IntRegister(C674X_MASK_INT4, UARTIsr);( i3 V  r- e/ Q$ v
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
9 F+ k* |: Q+ k) s- f        IntEnable(C674X_MASK_INT4);
5 |; c& n7 J4 v& z* ^4 Y/ w6 ]0 [( H  k2 G$ W& K7 x/ y
        // 使能中断
  H, {* q8 J$ W        unsigned int intFlags = 0;% U; F2 k. H' R* E& y
    intFlags |= (UART_INT_LINE_STAT  |  \( B! Z# l3 U) O# E6 h% C- V' ~
                 UART_INT_TX_EMPTY |    \; Z9 K7 |+ V4 H( D) V. D
                 UART_INT_RXDATA_CTI);8 a' l2 i5 f, o! d% q$ J# {7 M6 e
    UARTIntEnable(SOC_UART_0_REGS, intFlags);! A, ]$ v. `: j; `2 s/ u; X
}
- o& I5 m" {$ n( G, J  E9 ?
- Z( b# G3 N" ~
2 S4 h: F- m' F0 l& q; k
void UARTIsr()
- T, G% s! ?6 a& p: ?: D7 i' J' R{8 Z  O$ W) }3 e
    static unsigned int length = sizeof(txArray);
0 N) x- s4 `9 g8 `. T    static unsigned int count = 0;9 g+ `% _& a5 v" }2 a& ?) e
    unsigned int int_id = 0;9 M* c/ h9 Y3 N# A: e; s& a* F

" Q1 ^8 o& n# I% e1 C; ?! A+ D. M7 f$ I- U
, F. ]" z1 J! w# s, k
    // 确定中断源
$ }  N8 e2 x, r    int_id = UARTIntStatus(SOC_UART_0_REGS);
' c5 E; _' f* C+ E' B3 f0 S" ^2 u0 J. s9 h2 y
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。8 [, x. o6 q0 y6 a/ ?7 b' u( Q8 n

' o$ |; `0 J1 J3 Q) G
6 @2 i9 t) f. ^9 s/ r    // 清除 UART2 系统中断
' O  T4 O- v7 @% n    IntEventClear(SYS_INT_UART0_INT);+ p1 p5 e8 J7 @: U- l
3 h, ]' @2 f  J6 M
    // 发送中断& F+ K; M. z2 ]$ A, T" T* z
    if(UART_INTID_TX_EMPTY == int_id)
+ A$ H4 _4 D: s) @2 X- k    {
8 h5 X5 }( |6 I0 i        if(0 < length)
+ _4 g3 ~, o' p2 P% f# P        {  D; o/ @; @# J* U* [2 u, @( k' X
            // 写一个字节到 THR
( e1 Y/ M! _3 D6 a! [: }& }, o            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
# y& E; G# ^3 F3 ?+ R* M: c5 B            length--;( P8 e  m& m1 {( x
            count++;
/ B4 ]/ ^7 `) {. X- k& P4 f        }* g* P8 j% i  `* M+ `2 G! ]# t% x( r
        if(0 == length)
& m1 s% z4 C' B4 {  c- N9 K        {/ V: N2 s, d2 j; w
            // 禁用发送中断
0 R" v% V0 a7 }  G( _            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
  Z& B/ f! S5 f+ a. Z- c        }; |1 i: Z( \' ~. S( h4 H* b
     }3 _5 C. b) _: g/ O; q7 V+ F
0 x6 B4 ]% X( G5 {. V; V
    // 接收中断
. T( }% r* Y  u2 B. e    if(UART_INTID_RX_DATA == int_id)
# f: G; ?6 Y( |8 {6 c. x    {
) N- C2 j5 q; D. V5 K1 L" k' t/ }6 G        if(status_a0==0)
0 R7 Z5 M6 v& T2 v7 }* n, W: Z1 b        {
! ?( |5 M. _9 Q. N4 h, S                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
: _* \2 f2 [: w9 ^+ |9 Q                if(a[0]=='#')
. N& u& F2 [- ^                {
- ?& U( g3 d9 e$ V* Y$ t2 F                        status_a0=0x01;* a* L# W9 U0 [" _) G+ @/ G/ r8 h
                        status_a1=0x01;8 a! g# E# Y" x/ Y
                }
) g, V* m# c: J( M0 p        }
; o! e& |" R& n  d! ?( w" z        if(status_a1==0x01)
# N4 x! }5 Q& e/ W, z+ ~( v$ X4 \/ c        {
# s- v8 E& Y( [' ~: a! }# s! t, j                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
" W3 o' o2 x# Q7 P9 W& X" d, q                if(a[1]=='R')
- P4 K) n/ @/ V( D                {
% K* R7 _. q: i4 W4 Q; {  T4 K                        status_a1=0;
/ a& d/ _2 H+ p) z. p1 n                        status_a2=0x01;; @7 o4 W8 ?4 P, u. V3 P- f/ X
                }
6 x" Q# R- d4 h2 x# [, A9 Y, ?        }+ J( ^4 [$ U( x3 ]9 }( L
        if(status_a2==0x01)& i  Y1 ]. W: T8 O# f
        {5 n9 {0 O- w6 b+ A4 M- t  b5 d
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* Y) w4 a$ R0 V4 {. _, `/ s
                if(a[2]=='A')$ ?: @% ?' `3 k( L
                {8 S7 v$ K, P4 ]4 ~
                        status_a2=0;
; N: h/ i5 _* j( }! C                        status_a3=0x01;( a6 d) J  G8 F3 O1 u
                }7 X2 j2 Q' w& j2 L$ L
        }
. f) X7 h! Z% j: S* n9 R# `6 `        if(status_a3==0x01)/ B/ H$ d3 I# C; l/ |5 k
        {
: w9 ?- \9 P3 _4 N8 r6 c                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);& y& @/ t. {' d& g5 m
                if(a[3]=='N')
8 D  W' @; I2 c9 Z1 K                {4 n6 ]* z8 S; E$ X. k' V4 K% ^( N
                        status_a3=0;
5 J7 b1 J' W  i4 ^6 p" W                        status_a4=0x01;$ O5 g* z5 T! k3 H! @  n4 x7 q
                }* I# F" z$ _6 H, i: d% Z+ g$ q
        }4 S( Q0 n- D! t+ A: u7 C4 M9 O
        if(status_a4==0x01)+ S2 X8 [+ L* d% z! n7 ?
        {
$ V! ~* W" g4 N" m* M# M5 l                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);$ L6 ]  M/ Z# s  G2 [
                if(a[4]=='G')8 {8 u3 u% H9 F# m, O+ R/ G7 C8 A
                {$ z" w3 u( H9 W
                        status_a4=0;
- }0 o; m; F0 W' j8 i5 I& a. A8 s# A                        status_a5=0x01;
+ J7 w/ C7 ]) b/ c  C                }
8 l0 g! U2 B! f6 l. {. y        }% f! h0 S* `: Z
        if(status_a5==0x01)1 |6 q5 s3 X8 Z
        {
" h7 F# B3 a7 }  Y. E# n$ X                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
' |3 A/ ?6 i. v( c5 J4 C                if(a[5]=='E')8 `2 }' @( v0 w4 g  j  C; U
                {
, g2 p" G( }( c8 k                        status_a5=0;
5 U; e+ R; ^6 T# u8 |                        status_OK=0x01;
, R) T) ~% e7 ?6 F. p! _$ l                }7 G# {9 I, X5 j" [/ K) z
        }
/ B! b% Z& P1 }# D$ V2 F            if(status_OK==0x01)- T+ ~2 w# Z3 J% o4 b
        {3 d3 j7 v) N! C- {* K2 _% ^
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);. e( Q. O3 J' L/ }
                        lengthrx++;) b" P* M4 ]- g5 t
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)) p* f: e8 X: ^8 Z' a8 r: n, f+ `
                        {
/ b8 n+ E; T! {. c9 i                                RecState=0x01;# {- o' S% z/ ?1 H1 d. y) Y
                        }% _4 w) F% E$ p# X5 M1 q
         }# e& p- D8 b. B+ l7 u: d! z
4 ]6 e1 U4 E% P
     }7 x! U1 d1 `1 w% _. @

1 f, t0 ]# W2 C. S1 V    // 接收错误
( ?: W/ p% @$ ]5 t    if(UART_INTID_RX_LINE_STAT == int_id)/ d# k' K& `0 a% Y  r
    {
: ~  L* Z9 s* @+ A! E) v        while(UARTRxErrorGet(SOC_UART_0_REGS))6 }+ N0 H5 Y1 E" g1 }
        {$ y0 C/ C; _7 G3 ^' K
            // 从 RBR 读一个字节
- F& e* _5 G, |9 k3 [            UARTCharGetNonBlocking(SOC_UART_0_REGS);
) l( S( B$ }/ s2 m1 x6 a        }) s' u/ x6 e+ H5 W
    }
! g% y. v: o) o, L) U" J) S$ e. C
# y4 f5 E7 u5 y% j, y    return;# a2 t1 ^+ Z1 Y9 ?' u3 c6 N; Q
}9 f# d  [: |8 V( K
3 K/ n! V- l7 m. K8 ~7 ?) I

; L/ ]' N2 @  |6 Q0 i% ^. Y& O) F" Y5 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2029

积分

创龙

Rank: 8Rank: 8

积分
2029
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
  P1 ?2 F$ z( k/ M: V( r9 m) O9 E7 X3 A$ Q' I6 Z
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。/ x, U0 ^0 N. d9 S2 q( k. p7 _7 K

  |: N9 G2 E/ m7 x8 r要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13" W; q2 J  }( t+ u
hi,
5 p1 h" m$ }5 w. V( {5 S
- B0 u( _# G; P8 y3 j3 Q. X0 @- ZUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
* f/ \5 W& p- c! v
void main (void)1 w$ \8 l  ?8 q9 d
{
- H4 q; w* q. h, u9 T3 ]        int i,j;3 O8 C. R# Q* @  |0 w, \3 |
    char *str_buf;8 g8 o* G& ?! r& a4 H& u  z
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];+ P8 [3 I) O! Q7 q6 R
        double est_L_b_=0;. ?1 p3 n* M; q: p7 B
        double est_lambda_b_=0;+ A8 g9 s' v* @, q; a
        double eul_[3][1]={0};3 K" Q- K6 d5 }" Y# h
        double est_v_eb_e_[3][1]={0};/ e3 [+ R. _1 k$ K
        double est_C_b_e_[3][3]={0};. i2 p4 X& J: p) M/ M( G
    char *qm;
: h- S9 W' E7 `: T. N4 \9 k& k* Y. n$ \    char rec[70];
; l, K" D: p% h$ j- `+ J        double L_b=0;& q. W; u. J' ]) n% g% _+ r" Z
        double lambda_b=0;2 f) [; f% N; @' \( G
        double h_b=0;
+ J% U, _4 i. Y/ o        double rate;5 L9 r! {: r: c/ {/ C

1 x# ~6 z$ }! f. |! j  Z. F5 q+ x
        // 外设使能配置. x' ^  t* O6 S! X  u7 Q. r4 B
        PSCInit();
$ d  r, I; Y3 s% @, e: Z0 U# Q  ~- h% h7 T0 |" V6 {8 E: q
        AppInit();' ^" V+ T6 i  X1 M. M% a5 Z: J
$ U- S) z& n2 I+ j. A' k) Q
        // UART 初始化: Y3 C, q& g# L! f" ?
        UARTInit();
  r9 [, Y: v2 f+ L7 b8 ]2 M, K  m- ?3 u; T' J5 p7 y
        // UART 中断初始化
3 [5 {. ]& k+ W$ z4 a        UARTInterruptInit();# ~/ x2 g8 [$ M

6 R% m  z6 i2 c# n    evtRcvd = 0;
9 J* z5 K! O6 u4 C    RecState=0;
: A* T  ]/ U' z$ ?! E- C1 P    /* Initialize */
- D& w) I: W& z6 i7 g7 e% ~+ c: y  ]! ~& P+ |7 e: j/ R1 P1 w$ z
    printf("DSP subsystem ready\n");+ U) p4 M8 ~2 o' x

5 K4 A& |" {% X# m    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
- S$ M7 Y- d0 t+ E
, q: A9 t9 q  t6 X) Cfor(;;)
" R: K  S' c. |2 p{
/ }* k% r- Z- x3 f- X4 x        if((RecState&0x01)!=0)! o# |( y/ r0 j) [) k
        {
* A" T# w7 V# G& A                printf("liuzhenxing\n");+ z) x8 x/ P8 t: k
        }- |* \* T+ i7 p# R
        else
/ r$ c2 A3 s% z& x& \9 e        {
, ?, h, p  ]3 \/ |7 D' ~       wait_event();
* t  K# F" |% T4 y
% R  ?9 p8 `8 x$ g0 v8 ^6 F           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针6 h! \# ~- b4 b& U" h

; C6 g3 K* f7 d* |. b9 R" ]           for(i=0;i<60;i++)
& W& M2 B+ F- h( E+ z0 \/ C           {
( R+ @- O. s0 r8 x" X8 V                    rec=*qm;
0 d! l! o3 ]; n$ l/ Y5 k  K                    qm++;4 M& ]6 u/ n$ z/ v
           }5 ~9 E, x, @: r# a& s
' y& D! m: H! _2 U; c" d4 w' d
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);* p; b) G' K; ?/ x% V7 O5 R) {

  i; Q7 @8 d3 Y4 @           L_b=L_b_receive_double;( Y% ^% N$ H  X1 o- l  {1 b0 l
           lambda_b=lambda_b_receive_double;1 p' Q6 m- I* c7 x1 Z* j
           h_b=h_b_receive_double;
' j9 ^. O. d% _$ B0 ]( X           for(i=0;i<3;i++)
  T. \' o, U0 y6 e3 ]5 q                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];0 O# y- d: d! X. l& D7 q
           for(i=0;i<3;i++)
% A' w8 g& K7 G0 b- ^6 I' _! R6 i                    for(j=0;j<3;j++)& R2 C- M% [9 V7 n! J
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
0 W' j& `0 Q  k+ e
  ~2 @* }. C7 \% m/ s4 J! r                printf("L=%lf\n",L_b);& l2 u" v9 d% ?! Z* W
                printf("lambda=%lf\n",lambda_b);
" Z- j& X) n( K4 o9 t' R. y                printf("h=%lf\n",h_b);% a6 I) Q7 ?  J! ~, ~7 E
8 ?; h& a4 w, o( m  k
                for (i=0;i<3;i++)
$ b8 c2 T6 L! s                        printf("%lf\n",est_v_eb_e_[0]);
2 \( s: X) x8 h$ q, U* Z3 _- u4 }                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]);/ o4 O- n/ k1 f4 V( L. Q, M
                printf("rate=%lf\n",rate);
) `3 s8 K  d  k8 D% |2 u; @4 ~+ X+ R
) {1 z6 a' {" z                CTM_to_Euler(est_C_b_e_,eul_);4 ?# f8 K9 Y4 f4 {  O
                for (i=0;i<3;i++)  C$ ~/ Y4 E/ F
                        printf("%lf\n",eul_[0]);
0 c' o3 n; e# x% w1 o8 `* l7 q                printf("end************************\n\n\n");0 d. |9 G' W6 k. C  {. b+ `2 N- Z

+ T+ \& h( C- P! R3 ?  r                /**********************************************************************/! |, h1 n; V2 [" ^/ O

9 n/ Q7 X! S6 q( j" ^            char flag[4];
) H# Q4 u0 o+ t/ B9 ?6 d+ [6 W0 t$ [# U; q3 K$ \
            flag[3]=0x00;; q, y' I9 {( v
            flag[2]=0x00;
# F, {* b+ v0 I/ B7 V            flag[1]=0x00;
! v  B. ]" a  C: E4 ^. q: U* G  K            flag[0]=0x01;
5 z$ y/ Q8 e5 Q/ B9 E0 p
0 p- Q& U% F$ j" S    /* Allocate I/O buffer and init with string */0 v8 s3 m! i# a) e6 {/ e- G
    str_buf = (char *) malloc(80);
% R" i5 _6 x1 I  C; W( d0 O6 w7 Y    str_buf =flag;/ K7 }. z/ Z3 Z, y
/ s: q7 j/ z# d+ G2 K
    /* Send buffer to remote CPU */
; v7 [: \7 z6 n& |* G+ [" M    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
1 s7 ?/ M: ?1 W6 J% [
3 t. s/ F4 U$ p) [    printf((char *) myPayload);/ Y9 y# M2 q" Y
        }
/ X; K) x1 _( S( c}
! P; m- ?. k4 ]6 H. V& d9 p( O2 W& j$ S+ x# ?# k1 _$ n6 L1 T
    WAIT_HERE;
: g0 c/ {  w) B}$ o/ M8 q' ~8 @# d# M
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:5 `" }' x8 S# [  B6 O8 P& S
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
/ l0 I7 Z# m+ O然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2029

积分

创龙

Rank: 8Rank: 8

积分
2029
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:542 c) j" s* V- Z. |4 F6 r
syslink 的初始化是否成功,notify 通信是否正常了?
3 S0 n0 ?& X0 g4 e- w" K
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54& `/ W- m/ c4 ^1 u6 K: F0 S
syslink 的初始化是否成功,notify 通信是否正常了?
9 v- p. Z6 S" X# M& 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:204 A3 @$ _6 D4 p: C
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

; x' d' u2 {+ Y; E9 V8 K9 `建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 16:29 , Processed in 0.048803 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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