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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。+ O4 f5 x' r- x! `6 ^0 D$ Y4 u. b
我是在DSP初始化这不太明白。# s& {" S8 _2 r! N/ d
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。" u+ B$ k" G( P2 ]" Q6 e9 @

3 U; J9 C# ^, X& [1 i
# Q3 }* i4 c- R" o8 E2 C/ @首先        PSCInit();//UART0使能
9 _& |8 r" n( m: ^; Hvoid PSCInit(void)
! @% L/ I6 M, [# `1 ^, q{& _/ k: {% e2 O0 H! D) b; T8 S
        // 对相应外设模块的使能也可以在 BootLoader 中完成
( @9 x2 b, c! R  @    // 使能 UART0 模块' \0 {1 g( P- g% _7 }
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
8 U& ^: q3 O( E  @: G' {}
* {5 \, a) s: q& `( H( G: C. r
$ b, ]/ Y2 y$ O. N# Z' |% ^

$ h/ }2 d% C. a8 `- c6 @1 x+ S1 H然后是 双核通信的初始化           AppInit();, D, A. f, A$ V$ J+ L8 q
void AppInit(void)
  B8 ]- Y, Z3 t  _" g+ F{4 }1 @3 y7 w6 J* ^
    /* Structure to initialize IPC (see Ipc.h for definitions) */
5 V5 v# {- Q1 j1 @; R$ u) y    struct IPC_cfg ipcCfg = {
3 W6 |/ U+ x% r' }            IPC_DSP0,             /* local processor Id */8 i; C( U1 `9 B) h2 c
            IPC_ARM_HOST,         /* remote processor Id */
. Z+ r& c5 c. g4 q7 v' d; N9 @" I            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */3 J+ _# x/ q  i5 Z' o5 {# i5 X* Y
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
5 u  t7 h& e! L            NUM_MAX_EVENT,        /* maximum number of events to be created */
' f2 w5 }! ^. w0 E1 Z' k' ^; c            &ipcPvMemDsp,         /* local side private IPC memory */
+ M( S0 D9 q& y$ O1 V8 C9 M0 z            &ipcPvMemArm          /* remote side private IPC memory */
$ A, Z& _* e7 e9 F$ J" [/ ?! b( _. c    };) I& @2 [4 P7 F# H8 Q
    IntDSPINTCInit();3 }+ r8 H6 X$ T6 r* [
    IPC_init(&ipcCfg);
+ Y# i8 I. E4 S$ @7 r. D    IPC_intRegister(C674X_MASK_INT5);
( j! o" |' C$ X3 ?# V; `    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
5 u  F7 g; `: U* c. |
; K" Q+ @2 d3 M3 @( N" k& E    /*  Enabling interrupts for DSP C674x CPU */3 ^% n9 |- a" C! z  V
    IntGlobalEnable();        /* Enable C674x global interrupt */! ]0 Z% O5 r7 q$ B
    iAssert (Notify_start()); /* This will enable IPC interrupt */! X" K) {, A6 x; K/ i  j! D
}" y7 B. v" T) U, |1 _

' @2 a; A5 y  E; E9 u然后是  
8 q% f5 Y2 l% h. ]" _7 v$ L            // UART 初始化3 S2 W9 r$ Q/ A; D8 c! H
            UARTInit();
) }, i3 j: D: F& q
: `# b% a9 }9 _            // UART 中断初始化
% V6 K) p# M" Q            UARTInterruptInit();% y* A7 E& z" u8 [4 [0 S8 B) D  ^

; W8 V6 G6 t! @& \2 t
" j' ?5 g3 ~+ c' evoid UARTInit(void)
; _# K. f: h. \& ~: \* ^{
! D6 R3 p' T9 v4 h        // 配置 UART0 参数
  y6 E1 C& n6 O/ s9 G$ p/ [        // 波特率 115200 数据位 8 停止位 1 无校验位
6 V" R, i2 b: j- s# y: R* f9 u    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
0 z8 ]: o; S' ]/ j: n                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);! p8 I* C# T  }4 T( o+ L) B
        // 使能 UART0
& P& L6 W5 i3 F# K        UARTEnable(SOC_UART_0_REGS);! `7 f' I" S' e% J% g. u
) X2 Q) `. @7 [# M% n
    // 使能接收 / 发送 FIFO
2 g9 ?1 Z, o$ |! {6 u4 |//    UARTFIFOEnable(SOC_UART_0_REGS);+ t- D7 I  @8 p. S) @
; e+ ?1 e& T* G
        UARTFIFODisable(SOC_UART_0_REGS);
0 g% n" b2 K8 G, Q& ]* @+ u
9 e* w" x8 [- G    // 设置 FIFO 级别     接收FIFO的级别$ x3 Q! F) f  U' o2 m
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);. k. N/ f0 M9 S7 H9 n" I
}
9 K+ z) n, W0 D5 W: R

' R5 l9 M; N/ N
" N4 ^+ P3 ~1 R7 C/ o/ [void UARTInterruptInit(void), O: h: K5 b7 j( ~' [1 Y' Y: Z
{, q/ x3 q8 C! m) e/ f$ x
        IntRegister(C674X_MASK_INT4, UARTIsr);/ N& V5 E# D! i/ r
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
7 c5 [2 N; a$ ]6 r" A- o2 l* m        IntEnable(C674X_MASK_INT4);3 {4 R. h; d" v' N* j5 b- y; Q

3 U$ j/ z- D- N$ H  X; p, O        // 使能中断
3 g: h: l# ~$ ^; g# a2 ?+ `( q        unsigned int intFlags = 0;6 e+ D: O. c  ?8 n
    intFlags |= (UART_INT_LINE_STAT  |  \
& Z7 q2 C3 k  j                 UART_INT_TX_EMPTY |    \
& g0 \; L+ @& j' Z, \                 UART_INT_RXDATA_CTI);
  i  k4 [9 ~5 t8 r2 }" Z    UARTIntEnable(SOC_UART_0_REGS, intFlags);9 B/ g, o7 p2 T- b( u
}+ z9 j7 V% C) g7 j* {# Q

, C# M6 L- N: @: K, V
! |+ ]" b1 R% t" Y. ~" g7 Avoid UARTIsr(). b/ ~- o. X2 W+ H, G
{
; O4 L% C4 i' F1 r6 g    static unsigned int length = sizeof(txArray);
/ i* e1 C9 H( s; [. ]( w    static unsigned int count = 0;1 ~5 F" z' A- B  R! ^" i; A6 H
    unsigned int int_id = 0;
: ?" P  }2 [; N: e0 J8 m. l) Q4 H/ O( D% j2 o  t! w

% B- ^1 J+ F/ z! O& J
4 \4 g6 G0 a4 X, s( F8 O. X    // 确定中断源
' _6 u2 H$ ?" ~* S2 h    int_id = UARTIntStatus(SOC_UART_0_REGS);) W+ j, Z; u( V
- t1 y# U& f# f/ n+ u. ~- j$ ~3 f
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
) G( E4 e& G' v6 E8 k
/ ~+ z2 K  W: F7 F0 ^8 k! X8 ~- N4 F9 T! |- u; O
    // 清除 UART2 系统中断- V, t% e* }) _9 t5 j
    IntEventClear(SYS_INT_UART0_INT);6 l& `5 P6 z( k: \/ _

0 w  q2 o0 @" B% M, `" N" a    // 发送中断
! b- F" ~) A7 @' ?    if(UART_INTID_TX_EMPTY == int_id)
, m6 `& `# M7 y    {
; b0 W& ~* D- t, _0 ?( U        if(0 < length)( M. g2 V, T2 U" V2 ]7 z
        {
; |3 W3 f. I+ M5 D/ k            // 写一个字节到 THR
5 d, n* u: N( {9 @            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
( o5 v1 b& c4 \            length--;/ [7 e  N. p& I
            count++;
: B( v8 R! u" D+ F; w( d, l7 H6 N        }4 e9 v5 _1 p# y6 {
        if(0 == length)
' p  T, {8 n$ A* m        {
0 V& m$ Z; P: F4 \- k            // 禁用发送中断$ U) \" [3 [  h4 W4 k# o
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);+ p- ]- w0 v/ ]" \+ r$ ]1 }
        }
8 U8 {; l5 ^# S     }
+ n4 w* h) H$ P/ K
2 k4 i9 s6 q4 I7 r! P    // 接收中断
% o0 W5 R' Q' ]( l" t- C    if(UART_INTID_RX_DATA == int_id)3 X( T0 u. N# D. b5 @
    {
, [2 l3 j, H2 S( k        if(status_a0==0)
3 I( N% Z& H) O3 p# d+ W0 \$ q- b/ y& h/ V        {
4 M! U5 s2 T4 q                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);! p8 g  E) x4 i+ l  q4 U
                if(a[0]=='#')
+ i4 O% T; l8 V; k8 y                {& S0 c; r& b1 K/ {& a
                        status_a0=0x01;
% `5 d1 z0 v. y                        status_a1=0x01;7 L: {: M4 V7 W( U; s9 F) s
                }; e3 p: ]2 F! ^+ v
        }" N3 F* k9 k% J% V6 V2 Y2 B
        if(status_a1==0x01)
" {  ?8 L! @( x0 R  t        {
7 Z6 b0 z! p; N5 ^                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);( |) v9 _# K2 E( Q3 [! C  R
                if(a[1]=='R')
: `% n# {$ e" g0 ^                {7 O% @. Q9 \/ X. t; U
                        status_a1=0;% [4 M$ o; f7 x
                        status_a2=0x01;9 r. ]" F4 ^% Z: ?; u+ k
                }
: {- Q' D8 c4 o, l3 R) e' Q        }
( s4 H- T( i4 Q5 G8 b/ r9 }- F        if(status_a2==0x01)
* Y' z" ?9 }5 [8 i$ o7 y        {
3 v3 S. z3 V1 _/ i( {; ]- q                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" ?- {- n, Z  w9 R
                if(a[2]=='A')# y8 o+ y7 `  S( F8 L! j& T
                {7 h& F) e- l. J. @" Y
                        status_a2=0;
. a  K$ w& H5 F                        status_a3=0x01;
, {/ W( |( h# s# H' i                }; A% A, J: m8 Y/ j2 ^
        }
& ?& h* M% E! u) S        if(status_a3==0x01)
( v/ \  C7 ~$ V6 v" Y: @" c8 h        {9 m4 N9 Q/ B2 I8 Y) _$ d
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);. |, t( K& t) Q8 A. M' B
                if(a[3]=='N')
0 m+ O* y4 J% y% g% X                {. H9 Q+ @1 s/ x
                        status_a3=0;
( Y; o9 p- D  g$ `/ E4 x4 i                        status_a4=0x01;
! B( P# m2 w/ V! _2 G. y                }
5 P5 W7 H+ g- L' T3 o5 e" H, N        }
, l) f9 |7 w  X  U        if(status_a4==0x01)& B0 v; K5 r$ R4 v, Y
        {
4 c# _3 _; ?' N: ?                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" l! b; {* |) X
                if(a[4]=='G')
! S% L) c/ l1 F7 v% {; G% n                {
0 O0 F' T$ B4 p$ x* k/ e5 M                        status_a4=0;# V" V( f' J9 ~) R- o
                        status_a5=0x01;# t7 H4 {9 @  [, y
                }# W: k* q  \  h' k3 [$ \
        }
5 E- ]+ u9 S: \        if(status_a5==0x01)
7 s7 p/ H, x/ A5 ]5 Z8 I2 Q" t        {, x% b& n& v# ?/ L& Q
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 K  c, _! d; h
                if(a[5]=='E')
  G: C, T; ]! c% a9 i                {' T. [$ Q0 I* D
                        status_a5=0;
8 p% x* W* b0 t                        status_OK=0x01;
( O; m, y  p: T7 M- p5 L                }+ J! ]4 k  A/ J. y
        }
: v1 {4 n2 ]4 E* k8 Z& w9 q6 h            if(status_OK==0x01)+ u. a1 y7 e0 h
        {
' T; ^5 _; ]/ l. W5 P                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. `5 \3 N2 R) ~( H0 o) i( _; c                        lengthrx++;
7 s' D, }% Z0 A                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)2 v% S) \/ t6 F+ n$ z$ r0 \6 Z
                        {
6 b" S6 c' s$ |5 P3 R                                RecState=0x01;
1 _/ W' G, t: G0 e1 A  e* D: S. |                        }
  U2 f* I6 ?* a         }/ F/ [! G4 O5 |
; S, k9 S6 [0 b7 \
     }
" D0 W3 M* T9 r8 d7 A9 r+ w2 n
9 R) h' V- k, z* F& b' v    // 接收错误5 j2 B+ `( B% `! z4 l- {1 F, |3 j
    if(UART_INTID_RX_LINE_STAT == int_id)
5 b3 X  u* V+ {3 ^2 V& y3 G( g8 I    {
3 a/ o& h, c1 @$ M        while(UARTRxErrorGet(SOC_UART_0_REGS))' j; \2 R3 z( e# ?4 V" S1 O, ^9 |% L( W
        {, |. Q# y  u  A9 z/ z( k1 F
            // 从 RBR 读一个字节6 }+ J7 }5 ~+ F. h' s. r! m
            UARTCharGetNonBlocking(SOC_UART_0_REGS);: z; M. E, E& C
        }
" h7 L$ z# l  d7 w7 m: d6 g    }
" V+ J- k" h4 R( {( L- l
, p+ w" T# v' o8 S% G5 c    return;
& Q( _3 F6 H) P# b* q}8 _9 S" d% K2 ]6 `& }2 z
3 W2 [4 I$ d5 J9 M
. r! X  B, e; Z2 K1 f

' c0 m" ^' F/ \: [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

积分
2121
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
2 s4 A- j, T/ @/ ~9 Q1 c7 [8 h# t  D6 k" g
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。& z+ w# S$ Q, W, S3 E8 u9 k
8 J8 w# @) H; w0 i( S* O
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:132 P0 D( J3 C4 U7 f6 h7 V
hi,4 G3 \: I1 `/ G$ ^0 z2 l
* Q+ a2 D7 a& G" K0 h' S- k3 S0 J6 \* Q
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

% m" O) T6 P; h" ?* S: w4 ]void main (void)) O; C) E8 T( n7 [/ \
{- O' X2 k/ M' b1 h
        int i,j;
8 D$ ^$ N1 H( V# v* a9 E; a/ E    char *str_buf;. I8 S6 F' Q- E
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
0 O8 c2 f$ S6 D7 h- r: `+ `: A, B& q        double est_L_b_=0;
% p1 e, J: f( U/ S  }        double est_lambda_b_=0;, P' F" _9 ?5 b2 U' |" O
        double eul_[3][1]={0};- M' Q( I( m, u# f5 U
        double est_v_eb_e_[3][1]={0};
0 K7 f3 ]5 _8 H  t9 v8 j        double est_C_b_e_[3][3]={0};
2 E' v* [6 r" h) c: M% G# g    char *qm;2 U; m  [4 P! U, I. d/ q. ~
    char rec[70];! L2 X; Z) o: a; p$ N: q: l- U
        double L_b=0;0 V2 N6 i5 X! `3 O$ F
        double lambda_b=0;! {3 H5 {9 h# @  c# I8 f
        double h_b=0;
% N& \0 w( m) h& ]8 T" ?# h        double rate;" \8 a! I$ [$ H" X

% S7 W. @# H, T6 I0 M+ L8 p+ _* a8 G: Z- W! [  b+ G
        // 外设使能配置- A) t) g6 ]; N$ D' S
        PSCInit();
6 M5 o8 F, a4 W( ]2 ]9 x1 O1 U0 }9 E1 A. t' f) v& a6 ^
        AppInit();
% R9 n/ T$ s8 a. u+ o6 h
; k) F2 `, r1 R5 z% R! ^5 h* X        // UART 初始化
9 u' R2 d* ~5 V" z& l1 a" U1 x0 z        UARTInit();
# q$ ?) a* b& H8 h! ^9 v
2 s9 k' c) }2 b+ T8 v. v7 C. k        // UART 中断初始化* Q5 g- ^6 A/ y4 W! ]
        UARTInterruptInit();/ J8 F0 e6 F/ j- G5 b/ n# x

' g6 [  f; z$ t9 c- D0 ?    evtRcvd = 0;% X7 y, T4 w0 ^# l6 D
    RecState=0;, ~- U* H8 b/ [8 _" }& X8 G1 t
    /* Initialize */
5 s" v% B9 N( T! a, s; P  R( o/ ~
    printf("DSP subsystem ready\n");
( n2 j% @2 k& N1 H  W1 n
' P: c$ K8 M+ i( G5 b7 `    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
4 N! E/ `5 F4 Y4 X9 h4 \& H4 n5 ?# [$ I/ |. |( b
for(;;)
* f9 G1 ]5 b& ~6 L+ X{9 W( A+ z/ {9 ]2 U1 [6 ?( ~# I
        if((RecState&0x01)!=0)2 D, K5 w8 ]1 t, w1 _* J* t
        {$ ]9 w$ ~2 X1 [$ t+ w1 j% r2 N2 Q5 v
                printf("liuzhenxing\n");, ?9 W0 [% z: D
        }- \& u  s/ S& O
        else
! V- g2 j# T" h. x% `1 P1 Q" L6 t        {0 q( G: i. a: l: K! B
       wait_event();' P- N. |5 l* O7 m, G8 a) h/ Q
1 ]' |$ F5 p+ D
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针, D9 p6 \  @4 i4 ]* u' V% {
9 m! L6 J/ d0 j. x' q) p
           for(i=0;i<60;i++)
9 j7 |5 o6 Y% \           {
( H' n/ D# n% M                    rec=*qm;$ K: Q( b1 c' f; `, P7 t
                    qm++;. r/ l; j& ?& a1 v. Y
           }
, O$ a) Q1 N0 z- k# L" Z- Y, W7 r. f) f4 D( p
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
& x* v- F, B0 A! B& A: v
. f3 }; D) R1 W: V: g7 ?* C5 H           L_b=L_b_receive_double;, j, ]  ~& I; e' Y- u3 y
           lambda_b=lambda_b_receive_double;- `; n8 @. e4 `7 I7 _9 @4 ~
           h_b=h_b_receive_double;
- L7 N; `% q: c. B; N           for(i=0;i<3;i++)1 F" l$ E% J+ c) _4 R
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];4 s5 v+ L* J) w# p) Q
           for(i=0;i<3;i++)
' k' Y' r+ p! Z  K                    for(j=0;j<3;j++)
; {4 O# q1 f- Y6 k# t                 est_C_b_e_[j]=est_C_b_e_receive_double[j];9 r9 h& X+ r1 Z9 E/ S8 E
8 ^. q, _& D) n; Y
                printf("L=%lf\n",L_b);
$ N3 m2 t: h: I( D- K" L! P                printf("lambda=%lf\n",lambda_b);
9 Q" m8 h0 \- C+ Y6 X! k                printf("h=%lf\n",h_b);! e0 v6 P9 J* L# C0 U

7 C# Z  s# P4 H; u; q1 T. V' |% u                for (i=0;i<3;i++)
6 _4 r- F, ^& v# `9 y                        printf("%lf\n",est_v_eb_e_[0]);
* ?# X7 j8 |$ M" ?! 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]);! E& @9 _6 j* i2 Z3 J7 d9 |
                printf("rate=%lf\n",rate);0 ]$ u9 K% ^$ ?) `! O! V% R5 H
0 y% V% E# p2 j/ @; `
                CTM_to_Euler(est_C_b_e_,eul_);/ C& w3 ?( T4 y  J: X
                for (i=0;i<3;i++)+ t+ m# z' j* Y* w, S" K5 p
                        printf("%lf\n",eul_[0]);
9 |* m  }5 `% a$ \" F                printf("end************************\n\n\n");
' g5 L- ~* e# o
  b9 W6 r' M. X1 J) [( N6 x# ?                /**********************************************************************/
9 ]6 {' a$ c) L5 ?) f
6 B5 \- d( m0 L+ h1 C1 K- [3 C            char flag[4];
, O* O9 o2 I/ s# h- _- o8 n4 X' D
, r" B. ?3 ^$ q2 i% A" V$ `            flag[3]=0x00;" e6 {- C1 Y. h! |, B* s
            flag[2]=0x00;  o- u5 I( L* r( W/ W/ B' o
            flag[1]=0x00;6 r' V# e, \3 h) a0 s
            flag[0]=0x01;
) f, p/ j9 g! w
5 \+ i, B" F2 h/ f+ T- |0 h& g- z" U    /* Allocate I/O buffer and init with string */
0 e1 y7 W1 @1 D" ~    str_buf = (char *) malloc(80);8 C& v2 U) u9 l& q3 ~
    str_buf =flag;8 z4 z" R! U& b0 s! ^$ A8 e2 ~
& t" f) ]8 [5 L1 [/ m
    /* Send buffer to remote CPU */' c% f6 L/ N9 Y+ F" z; \6 u
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));9 M$ D# ]: d: H
. A& ]- j0 W+ \! c7 [
    printf((char *) myPayload);
/ R: M% V. I: |! k" T3 P% }  X9 q: C        }
9 G9 \. n+ C6 F; R# d}
8 z$ D# S5 r& B
, C9 {! z+ F2 L! e4 F7 \- N    WAIT_HERE;! b* [7 T$ ]1 j7 q- P$ T
}- e, `& G; P# k5 U
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:( J2 ]  H. b4 m. s, F  Z/ h: N
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
. {8 B2 j* d+ A2 f/ w& L然后我把双核通信的初始化屏蔽掉,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
, Z- u% U4 i$ h" d/ O' g4 h, c' Y' ^syslink 的初始化是否成功,notify 通信是否正常了?

& z1 k' u- M2 j7 s双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
, b  O. n2 u& Y* a2 M: x/ Zsyslink 的初始化是否成功,notify 通信是否正常了?
# {# ~6 x$ p: d* X4 c( U, M5 u0 v
我用的是裸机开发的双核通信,用的是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
* E0 L  J+ Q1 Q- e+ r# P我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

0 k. b5 j% A) A5 i建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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