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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。2 M; U8 |% l5 w, F6 h8 y7 X! l
我是在DSP初始化这不太明白。
. Q) V. ?3 U3 \初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。& ?' _2 ?8 Z9 p  i( f- x6 a7 p

6 [' P( m. U0 k" h$ n9 G; K9 ?& A1 m/ Y; G5 K* n6 G
首先        PSCInit();//UART0使能/ u  x' I" R0 S0 Q8 o& O( u  |: ~; B
void PSCInit(void)
) d/ p; k5 j9 J{
& O% u2 k) S* S0 }: X5 n% d( R        // 对相应外设模块的使能也可以在 BootLoader 中完成
2 Z# `# [; `+ m2 F8 z    // 使能 UART0 模块5 U7 V( d4 D9 J. Z; E
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);* H8 `, g4 J6 {6 Z& o
}% u4 x; k. w9 \
. q( P5 K  @1 h) ^6 Z! j: J; o6 W

5 a" S1 V% q8 @1 X+ I1 i1 t然后是 双核通信的初始化           AppInit();1 {8 f/ H( C# [% I7 G8 `
void AppInit(void)
2 {) a* e. t- B, N" V{
4 r$ }$ H. r% Q  H& L; \4 c+ B    /* Structure to initialize IPC (see Ipc.h for definitions) */
: G' x, G2 g/ \6 }4 _    struct IPC_cfg ipcCfg = {/ y/ S' S, M# R
            IPC_DSP0,             /* local processor Id */
3 _; `2 g6 W4 d- D            IPC_ARM_HOST,         /* remote processor Id */
. \" j* ^  c2 [9 ^/ y' {! E7 B            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */& \* @1 Z# h2 A0 U
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */; D9 a7 }' u2 r# u6 \8 |
            NUM_MAX_EVENT,        /* maximum number of events to be created */0 k$ J3 Q. s0 F; l& A4 v
            &ipcPvMemDsp,         /* local side private IPC memory */
& K. {: W$ c& x2 `0 D+ `            &ipcPvMemArm          /* remote side private IPC memory */
$ V9 d; k0 R* y. P: k5 k    };/ \0 B% _$ S& f7 ]6 }- m
    IntDSPINTCInit();- W/ Q2 J. D% j
    IPC_init(&ipcCfg);
) [8 Y+ K$ |: v8 y    IPC_intRegister(C674X_MASK_INT5);) k) P2 m9 z& v+ m& ~
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
" |7 o2 L! X! [# L) k0 t0 F* H
4 _9 q; Z+ `' N: g1 z! |# h    /*  Enabling interrupts for DSP C674x CPU */, E# o6 o9 I. A  j& ]# j3 Y) {
    IntGlobalEnable();        /* Enable C674x global interrupt */
$ P% n& ]8 a' \+ k4 D0 |    iAssert (Notify_start()); /* This will enable IPC interrupt */
  O* @7 K4 T6 A: H}/ F9 Z5 O3 ?. ^, k. d

4 J% t8 Y- E8 N, N$ t; R4 ]6 ^% }然后是  3 T8 A, a% }7 v8 G! [
            // UART 初始化. M  b4 K; Y8 v, h9 t
            UARTInit();0 V1 B9 I' q' l9 C5 U
% {! D4 ]: p. L3 p9 l; [5 J
            // UART 中断初始化
( t  V7 g) S3 W            UARTInterruptInit();
( z1 G3 B' K, s9 w

( q4 r8 ~; A. O* J! e. _. t! J- [) a/ s
void UARTInit(void)/ M7 J5 P6 b+ F4 e
{
5 ~) L6 [& i& C, w" r/ @- k        // 配置 UART0 参数$ |: U6 N# z5 N* B/ f
        // 波特率 115200 数据位 8 停止位 1 无校验位
  d+ o" Y0 M5 u' }    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,& {1 L8 U  V9 z; s8 H/ a! F: d4 ~
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
# @2 S4 a7 s5 R- t6 S- p4 z        // 使能 UART0: z/ d1 {) T  ^3 R" Q# T
        UARTEnable(SOC_UART_0_REGS);
+ g5 U+ ^- z1 E; x9 K# r. |0 e2 |. _, }( S* g/ M# J
    // 使能接收 / 发送 FIFO
7 J* j/ V0 k* e' P, E# p, P//    UARTFIFOEnable(SOC_UART_0_REGS);
; ?5 P0 u* l6 ]8 W2 j+ v2 \5 `/ I6 w. E! j0 a6 i
        UARTFIFODisable(SOC_UART_0_REGS);
8 O, V) R5 R6 K7 r; S8 D6 t" D$ a' f% w, n- _2 j
    // 设置 FIFO 级别     接收FIFO的级别! V6 v. l  B( _+ Q, X
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
7 q* u0 B1 ?! J5 Y; n# }}" u3 m" z% U; E
: {* W& n* H' d- L
* i5 R; X7 e9 `! I
void UARTInterruptInit(void)
$ R" O+ Y: O1 a+ d7 b+ M{
8 k- d5 G5 w0 L        IntRegister(C674X_MASK_INT4, UARTIsr);
9 H2 x, i  h, U1 C4 _3 M        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);: R( \1 a1 t& k4 F
        IntEnable(C674X_MASK_INT4);" P9 _) y4 K& c% e/ I- W9 K$ Z

" |; e5 a9 J8 `) x& A+ h        // 使能中断4 W- d- f9 O0 a1 W
        unsigned int intFlags = 0;* ^$ z2 Q" ?  b3 a
    intFlags |= (UART_INT_LINE_STAT  |  \0 N' c% z1 E6 k3 a
                 UART_INT_TX_EMPTY |    \  R6 e( @% n0 Q0 q% S
                 UART_INT_RXDATA_CTI);
3 w% r7 |( `/ w4 r- M9 q6 c$ L    UARTIntEnable(SOC_UART_0_REGS, intFlags);8 S1 C5 U4 U& q; ~" V3 H  H% R2 c
}. x: l" ~+ A" e" g2 d0 J9 k- m

& I  ^! t( Y7 D/ _$ ^: w7 u! d; [0 ?. C- K) L. [
void UARTIsr()
0 T. K. X: b8 m4 q+ F9 _8 U+ \4 j{
0 {/ I# v. s- h# U' T3 s1 d    static unsigned int length = sizeof(txArray);
; _. M. l6 J7 y7 v6 J7 g9 ?    static unsigned int count = 0;( }( K2 ?; Q- [; a
    unsigned int int_id = 0;
5 ]! r5 K- r% j) C# p  Q2 W# c$ o& q& a, k4 `8 l- X
) }2 l% V% c( B& D& }! T

% o" ~+ [2 m; r    // 确定中断源
) U: i; T) [3 p6 T* Q2 V) S    int_id = UARTIntStatus(SOC_UART_0_REGS);
2 H4 k# v" T  `- h1 d; C+ @0 B$ R/ L1 R" q4 L: b7 [4 v
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
: w# _" R: c# ?( Y' z4 w0 D7 T+ w
1 }7 c' V; e' {- G, h2 m( S, m( }8 _1 v3 G% B
    // 清除 UART2 系统中断8 J8 e& Y$ ?8 x9 O- W
    IntEventClear(SYS_INT_UART0_INT);" Z9 I3 F  J  }6 T5 A

+ C* i* Y. L) `/ n. a    // 发送中断+ q# u8 s; K8 q% S- P( P/ Y$ c0 d" Q7 r& r
    if(UART_INTID_TX_EMPTY == int_id)4 A* F8 N9 X+ [2 f. }* R/ w) z
    {
% O, k. D( p9 M7 u1 k* `" F9 T5 w        if(0 < length)8 W; S5 L# t. Q
        {
9 g6 j3 ~9 v$ J. u9 u% v            // 写一个字节到 THR2 w  Y" {# Y5 O; l4 ?% p
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);4 r0 b; E2 B/ C9 \* m+ s4 H
            length--;3 S, H3 H2 ~% o. _6 O% w* J) _& B
            count++;  L# v& d% S$ i" V8 y) W) O& ?
        }
& t6 F4 X0 G" T1 i) V        if(0 == length)- P, Q+ @8 G4 T2 l) o5 K) t8 q. x
        {) j2 X! h$ v: r
            // 禁用发送中断
. Z+ M9 j% K( s' g0 R            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
! T. D  ?. H# `6 i        }6 ?  b6 d6 o$ h: g0 v1 g+ X% R
     }0 R( u1 ?7 g! R7 R- ?+ |

3 D3 k2 m' W* z' a0 i    // 接收中断& K3 k' O0 Z! ~3 i
    if(UART_INTID_RX_DATA == int_id)0 d; K+ l5 ]7 `0 L) D
    {. W+ S  O/ Z5 {# q
        if(status_a0==0)) j: R2 Z9 ~  W  n
        {/ E0 i8 z$ d0 I
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* ?3 N3 H5 Z/ ~( e- `
                if(a[0]=='#')
1 b! }3 w+ C; X                {
: ^6 ~' q5 U0 y: L6 n                        status_a0=0x01;
# H$ C3 _- |- w: [5 g, l0 p                        status_a1=0x01;
% }! Y5 p" M* E                }3 z! }/ B* V- I; g. M- O
        }
; t* {! f. _4 r& o, G$ }        if(status_a1==0x01)
5 N; u  K1 e+ b# b9 X        {1 J7 V3 o3 x; P3 y
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, B4 f# d3 P8 u/ j# E1 b+ d; x                if(a[1]=='R')
+ c, K4 ]. b$ d0 H                {
' b" h$ j/ _2 C' g                        status_a1=0;
5 Q) c1 w& O0 e$ x                        status_a2=0x01;9 F" b2 m4 q. ^/ ]  v( E) r5 k1 s0 l
                }# R  d! I! o5 C/ `7 b3 }/ C
        }' p) M9 P  x- m4 J7 N
        if(status_a2==0x01)
: k' ^, ~! S* q& K$ D! v        {
" X: R& g3 |0 ]% C/ u" R                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);- j% b: u4 ?3 N
                if(a[2]=='A'). G8 s( P. V' _; T: M
                {
7 o" c! K2 F" Q; d                        status_a2=0;! {# K$ W6 J) A" t1 M3 n. q2 ]
                        status_a3=0x01;$ D2 P+ N9 x! y# F% r4 c. |
                }$ G& N; B. \0 q, H5 [3 ^# s
        }: ]# W8 H2 J' o4 U; j: D
        if(status_a3==0x01)+ ?5 P9 J# x% {4 ?9 E8 Z' |# _+ W
        {) \, H! U4 ]# w1 o  M7 Y
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);6 S$ T: \; F5 @- K  Z; @
                if(a[3]=='N')& Z* a1 X/ |; R; ^4 ~
                {
6 `* q" r. R7 M) n% |5 f, X* K                        status_a3=0;
+ P, }; x& I$ }/ u& b% ?                        status_a4=0x01;
: f3 l# A% Z# p& t7 H+ X" L/ ^                }" |: k4 D! J7 w2 W. M; i
        }2 I6 \4 A4 k$ m7 @4 v" s- C* O0 M
        if(status_a4==0x01)
& C1 E2 Q( X3 q# @( T        {9 A0 f5 U% V' G, t5 i6 G
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
; u+ K5 a' c' U* f* k% H8 b; B                if(a[4]=='G')
5 W- I9 T( p6 S# O4 v                {
( ^$ u8 G9 |7 C8 z- G& ^                        status_a4=0;
8 X7 |4 b6 I% t  D* s2 M                        status_a5=0x01;
. W5 o. H. F+ F2 ]1 n3 B* l4 b                }
( D# H7 O1 |6 ^* c4 a4 d% A: u        }2 ~6 I5 \' V8 O* D0 I- c
        if(status_a5==0x01)
0 [6 e9 _: u  C  H3 m4 n8 R' @        {2 F/ ]2 |* e) M6 `1 d; V9 T: u
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);$ y% g4 m: E0 x, A; S- \
                if(a[5]=='E')
( u% D. ~/ Y8 p4 Y7 H5 k                {$ m- z( f2 U) c* p3 {( s# _
                        status_a5=0;4 }* h2 B8 L9 A  A/ y; v. w  x
                        status_OK=0x01;$ A6 W+ Z0 u# y2 Q  F  r
                }& j  y  a) U  J2 K
        }: H1 \; w, ^! D* E
            if(status_OK==0x01)
7 W* Z9 \. m4 x! O; n8 _        {! b* Q% V! S/ r
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
$ q8 m# K0 }, T7 G                        lengthrx++;( U9 i; G2 A4 j( N/ h
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
9 z/ X$ w" L& H' E( f, Q) n                        {) ~+ J" @$ E8 D, p4 V" y) G
                                RecState=0x01;
7 C9 K8 H) S3 H% Y" I                        }( ~+ ]. U  C; |6 |
         }; _3 i; P, @/ U  G
" X2 A; p+ V9 Z2 s3 r* l  _
     }
* x, {- P/ C# T* \. R0 T2 p" n
9 w3 N. f& ], P9 j# X5 e    // 接收错误! n1 J7 T8 I9 \: p, G
    if(UART_INTID_RX_LINE_STAT == int_id)
1 ?; h. r# G4 O    {* c- D; M, K2 v+ y) ]
        while(UARTRxErrorGet(SOC_UART_0_REGS))
, h- {" e* Z& |        {
" v9 F2 \1 H" c  z1 l7 M* V* J  B            // 从 RBR 读一个字节: v, H( C: T: T2 v+ I& A# @: F- w- L! e
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
" R4 A1 t$ k2 Z: h: E; z1 q        }% @) i7 o$ c+ ~8 ]$ y
    }
+ e/ f3 i2 ?* ]
/ m$ v. H/ @1 D    return;7 i3 t% Z+ [' r  ~, |2 w& R
}9 {$ I, R7 F0 y

  n: b: Z$ J8 `# h; ^) V

+ {# H/ o$ v( ?7 c( Y! B
' `$ v2 `* j9 I/ }* ^* [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2091

积分

创龙

Rank: 8Rank: 8

积分
2091
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
# J7 \: n. V$ i: g( B
' Y7 _+ q8 }* T8 y+ E  W3 LUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
& w% O, m& A3 C. n
3 m" y- l* o6 Q  o9 F# ~; t3 {要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
3 d% D- w  J( e+ n9 `hi,
1 H4 b/ u  w( u+ S; x4 K2 C( e6 v6 n! W4 F9 l- M3 }" r; [1 Z* r
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
: ?' K- n% D9 c6 ], ]
void main (void)
& ^& K' u" {8 |3 B# ^2 V. d! t5 b/ u{) Z( i2 V) K! y
        int i,j;
, w0 {6 m# y2 w" n) ?$ l2 j7 M    char *str_buf;
& U. x$ m5 X+ x5 L    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];: q, j+ n. C& Q  y8 c$ P- R- L
        double est_L_b_=0;
; [5 `# M1 W% e. l6 h9 q2 P        double est_lambda_b_=0;
( V: E5 ]( r" z5 P4 b        double eul_[3][1]={0};
* R9 ]5 L8 b" d* ^" H        double est_v_eb_e_[3][1]={0};
  L# v$ t% ]' W# V8 j0 h9 ~        double est_C_b_e_[3][3]={0};# f8 n! ^$ G% ?) t7 C! g: e
    char *qm;
% M% R: n6 K& m# k) ?" N- c    char rec[70];
- `9 o7 @! G1 `. j9 }0 }9 j) L        double L_b=0;+ }8 }8 K7 D- h8 s0 @8 s
        double lambda_b=0;5 W) J! J' h0 f- t: n9 F0 a/ s& Q5 r% ^
        double h_b=0;
6 h# P7 q& G, s, M" L: ^        double rate;
3 O4 w" _3 O; o( S2 p% I1 E/ W/ U5 F8 K
+ {. B4 G" v# U! d( E5 q
        // 外设使能配置
1 d2 j  A1 y' v' V) I7 V        PSCInit();
$ u/ e1 r9 o- n; f' i0 O$ p, e2 O. B/ l- F8 p
        AppInit();
$ t0 B2 x( N  p; B# }% Q* _% a
3 ?) x, U# r4 R$ G' a# {3 T6 }8 e        // UART 初始化; K' l" K2 Y9 F, E1 [$ X
        UARTInit();! h1 q4 n6 G. E# E; F* e
' p$ q  U8 Y5 ^1 {
        // UART 中断初始化
8 P: }3 Z- v) v+ V: a& Z* T        UARTInterruptInit();7 V. E; P- S! ^8 r8 ~. t3 M; p& d$ l

0 E5 x3 Z. g$ t; U2 l  u; w    evtRcvd = 0;$ w3 x2 U9 j  B- ^5 U4 h
    RecState=0;5 j# K8 b8 X" n, X# y/ o
    /* Initialize */
4 W* {: R+ Q5 `+ J2 `2 B3 R# ?* X$ x8 N; P
    printf("DSP subsystem ready\n");* z3 M' W% J! A0 o8 v9 x
- Q3 l! r/ F  U
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
0 u! e0 A2 _/ X9 m; a) b# v
; _( Y, l' l' Tfor(;;)1 H1 D  C! L4 a3 k2 x! T% U$ ]
{
- e1 J$ T& x' ], Y2 O        if((RecState&0x01)!=0)) D5 {" `* q+ }2 i' q- ~5 X
        {8 Y/ f. f" w  C6 c/ q. I
                printf("liuzhenxing\n");
9 w# i/ F- p0 G& }6 N! j. J        }
7 F, `& e6 S) H! C2 L        else
. E# v1 X' @/ D% o$ z5 G3 A9 W! r        {% r% K4 f/ {6 q* {
       wait_event();. E, j' F; ~$ K, N5 `! y

/ d" ?4 C) j9 p! ~" S$ D, E0 ~           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针/ {! C' x) D# K1 U' [  [+ n! T
$ J0 k! \# L* L
           for(i=0;i<60;i++)# g2 ]" T. R6 f0 ]5 }4 j( u
           {
, r9 Y2 o  E  A7 j                    rec=*qm;/ [$ S) E: p% |' S! _
                    qm++;
7 l3 g! ~: C0 I           }
* j' a6 g( u" ^' Z4 S, l' I1 L& x0 A4 p! G/ t: Z# E6 I
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);7 G3 x: Z# M9 f2 {
4 l8 l  P7 D, r% h9 q
           L_b=L_b_receive_double;* K+ j- d1 }+ `- m
           lambda_b=lambda_b_receive_double;6 d& g& O7 b) n7 s) Z4 x
           h_b=h_b_receive_double;! X/ R) t. P. e, z$ C4 ^
           for(i=0;i<3;i++)$ w8 E6 b# ~' _- S' }/ L3 G
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
; E& e3 ?6 F! ?1 Z& G: I2 G4 S           for(i=0;i<3;i++)
, o1 _/ b" }5 }, z; |                    for(j=0;j<3;j++)
) L8 t3 _% y- z/ Q# y9 r                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
& U. d% f; e2 y
% a" s% Q, P! G9 l. p- h                printf("L=%lf\n",L_b);
3 f  r3 {0 p! ^                printf("lambda=%lf\n",lambda_b);
3 {; T0 F/ }6 R( \: S/ C( }" b                printf("h=%lf\n",h_b);& o. c' `+ b' `. Q* ^; Y' U8 \* o
$ w* D7 X. ]' z- B* K0 ~8 _
                for (i=0;i<3;i++)1 a' [8 w9 W$ H4 ?
                        printf("%lf\n",est_v_eb_e_[0]);; l& w% n: F* {$ N: ?0 R/ {! n
                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]);3 U7 K9 j" s9 g2 f: |) v
                printf("rate=%lf\n",rate);
6 W8 T) C( y. @- G; B+ ?7 s- e/ b' ~
( {+ A( \) Z9 t2 ?' ], D                CTM_to_Euler(est_C_b_e_,eul_);
- m% R+ M& ]3 o                for (i=0;i<3;i++)
1 a, f( o, U3 z  C                        printf("%lf\n",eul_[0]);
. [5 o  I5 `6 i                printf("end************************\n\n\n");9 w0 K8 o7 {! }! _' X' R* ^) n
* V" d1 f% Y% m) I' E% b7 V
                /**********************************************************************/8 x0 |# e! \$ {0 K# O$ i* P
& h6 i4 {: N8 a) F/ ~
            char flag[4];
# j! h# j4 R- P8 [( S0 a& P0 n7 J
/ y3 s5 V3 g$ I+ |) g! i! _9 g            flag[3]=0x00;
( `" ~" j5 U$ x; Q# K% L5 {; n! R            flag[2]=0x00;
9 l% L/ B" R# e" L% O; p            flag[1]=0x00;
" ~9 Z8 d1 v  i) l4 C$ E            flag[0]=0x01;
6 j; k8 K4 D" \0 O1 _7 a/ P. c
( W. U& N+ N' v& w8 j    /* Allocate I/O buffer and init with string */7 Q' B  G# u* b8 S* [) u
    str_buf = (char *) malloc(80);4 D  [+ T8 x: Z( H' G
    str_buf =flag;" Q# S+ z1 `6 Y% S! p
9 S; |# c; ^( [/ d
    /* Send buffer to remote CPU */
* f# ]: [( ^! x" e7 H. Y; v0 |6 S/ b    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
1 M7 G- ?4 ^8 J/ I; b: G6 D& w& \" N1 S( v
    printf((char *) myPayload);
# F- a  `' ^& x/ W% a        }5 ^! A; W, |" Z* u9 u6 ?: E! A
}
" m9 n; G- {" }6 a0 j
* O4 `" O* R+ X$ Y4 N7 u, y1 N  U    WAIT_HERE;1 l1 B+ t- o+ v$ L  T1 j2 r4 v0 D' M
}
* s4 _8 J# t5 U( X5 \
回复 支持 反对

使用道具 举报

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/ e& e1 S: ]2 @: N% U我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。; L; d, z& P/ K. Q
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2091

积分

创龙

Rank: 8Rank: 8

积分
2091
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:547 ?% d3 l# b) A; s  K; o% h' c
syslink 的初始化是否成功,notify 通信是否正常了?
) i  K: j* u" g! ^1 V% B) I
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
. @4 p2 }6 S, w; z! Esyslink 的初始化是否成功,notify 通信是否正常了?

5 p$ Z% m7 V  I' U" u! H( ~我用的是裸机开发的双核通信,用的是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:206 j& f) ]1 i! b* f7 g
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

  u: N, @- V! H" ]- R建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 21:29 , Processed in 0.049583 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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