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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。8 z/ _0 B" c) S; Q% [# q
我是在DSP初始化这不太明白。- ]9 e, u- \8 F' j6 w2 m
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
3 Q# m! h7 X% Z1 g6 S
) K! H6 p, k( I  o
" {8 m9 s- I4 I" X首先        PSCInit();//UART0使能# ?: }5 M' i% T; ^& O$ P$ `
void PSCInit(void)
! F/ ^( w4 n  H1 c& K% e3 w1 _* U{+ P  A! c; q" A$ v. u% f
        // 对相应外设模块的使能也可以在 BootLoader 中完成, S3 {3 q, K0 A) Z% i5 r* S  `
    // 使能 UART0 模块" R' C" D! L/ p: r9 m9 y
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
# J5 o4 ]% j4 k}0 Q6 A2 A0 S2 M# \+ S" H

& l& @3 t5 a/ ?4 W+ H; F! \+ |% ]. l3 {" r  \  E
然后是 双核通信的初始化           AppInit();
" R5 n% l) q: R9 C7 Tvoid AppInit(void)
$ u$ G6 P9 p/ i# n2 A( d7 Y{* L1 J2 h* S6 Q: s1 b& ]
    /* Structure to initialize IPC (see Ipc.h for definitions) */
" D7 r8 c6 G$ N- @. s    struct IPC_cfg ipcCfg = {
. v# j- S" {1 f% s8 A0 q            IPC_DSP0,             /* local processor Id */
! R. n, I  I  Z& [            IPC_ARM_HOST,         /* remote processor Id */
5 Q3 P6 V) [* k            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
1 ]) W6 K2 l" ~! _            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
# K* X: e5 \8 u, J& ~+ O  A            NUM_MAX_EVENT,        /* maximum number of events to be created */
1 `6 d5 y5 R" h9 r" e/ J! |; D            &ipcPvMemDsp,         /* local side private IPC memory */
+ C( z& Q7 s( F1 U            &ipcPvMemArm          /* remote side private IPC memory */
5 P' W# u$ w; P* o) H$ h    };
( q. a( Q9 |) \9 q- E    IntDSPINTCInit();1 V% ~" y' `1 G( e* j  o3 {0 g
    IPC_init(&ipcCfg);
5 a6 o, P) E( k, X# s' [7 ]% D    IPC_intRegister(C674X_MASK_INT5);1 w4 F0 t3 f% H1 P: B3 ^" `% n
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));$ u) s  F8 e0 R0 m( Y
9 k4 P5 V, b' F; O- P' k! G1 i
    /*  Enabling interrupts for DSP C674x CPU */) P% E, k2 J- g
    IntGlobalEnable();        /* Enable C674x global interrupt */
% C5 b9 g) n! e& `" w- y    iAssert (Notify_start()); /* This will enable IPC interrupt */' M/ Z7 E0 I* B$ r) y+ q/ a4 ?7 v
}7 g" x6 q1 G' t' Y3 c& s; v! E6 j6 Q

% U2 e, W5 ~+ m( e- Y8 q- c  `+ C然后是  
$ L% C( \9 x! o* j3 m! K. B            // UART 初始化) L% w+ m9 W! p" o) f
            UARTInit();
+ x' F7 ~) ]$ W. x" A- C; c# K5 P5 d& L8 L; |/ L' k
            // UART 中断初始化
) D& y/ i' E% f6 |/ V$ @! L: R1 A            UARTInterruptInit();2 r$ J1 J7 l# e# ^/ y3 Q8 o8 ~

6 `3 j2 \! |! \0 c3 K* o3 s- P) E/ X/ I& b& ]5 Z
void UARTInit(void)7 |7 ^/ {8 f; d2 V2 u6 S$ o
{
, J9 G! i/ e) ?: f* T        // 配置 UART0 参数
; k, P: \* B2 s9 H  p  Z( I        // 波特率 115200 数据位 8 停止位 1 无校验位+ k% X( t5 W8 g  ?2 t6 \
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,$ }1 Y. ?. c' X3 @) t9 t3 J
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
4 K( Z) b4 v( b8 `. t1 u1 X        // 使能 UART09 u6 U( D, A3 G; h3 X% k
        UARTEnable(SOC_UART_0_REGS);4 K0 i' |# N9 w( j7 c

. O9 r" }# m8 R7 v) h0 V5 T    // 使能接收 / 发送 FIFO
% _% W; P6 u. [: o! H//    UARTFIFOEnable(SOC_UART_0_REGS);( A2 V% K! z' F' C1 M9 X

  {+ ~  o* x/ y! m+ X/ k        UARTFIFODisable(SOC_UART_0_REGS);
* G. @4 V+ A) H4 I' u9 ]3 m9 L+ |8 z* T0 U$ E. m& u
    // 设置 FIFO 级别     接收FIFO的级别
3 G4 H! k- z5 v6 f# l//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
5 L8 T" g6 t; I6 W( B" `* r2 v}4 F5 u5 u/ p( F3 ?: w& H3 B  h9 `1 S
. V5 K' a0 q7 N+ g

  c# h1 g% m; h/ {. Rvoid UARTInterruptInit(void)- n: ^1 L9 `. T
{
2 Y7 P0 P6 S2 _% A! k        IntRegister(C674X_MASK_INT4, UARTIsr);
9 d1 K# q- o$ J2 J" @        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);- P4 `. a/ ~6 G' p
        IntEnable(C674X_MASK_INT4);
& q* N& J& \, J' g
, \. d4 Z/ b5 T/ I* N2 R        // 使能中断+ C* X- k/ z3 h& k- q
        unsigned int intFlags = 0;5 D2 d1 ?2 O" P) j
    intFlags |= (UART_INT_LINE_STAT  |  \
+ _5 c/ |5 E4 R$ q  Z                 UART_INT_TX_EMPTY |    \  r  o  T6 O( b! {8 h9 U
                 UART_INT_RXDATA_CTI);
. v1 v" O( _2 h, i  _. T( o# T    UARTIntEnable(SOC_UART_0_REGS, intFlags);) U$ M& r7 d  V. B( s3 F" C# s! f
}
% w5 F! E3 o7 F% b% s: B
8 v9 {3 U  }' l3 \) Q/ e" R5 x

: N% I* g% \% R" {8 V9 A+ {void UARTIsr(); o8 U! S( p; z# B, R& O
{
2 o) a) V1 {+ y1 R    static unsigned int length = sizeof(txArray);; o, D/ f1 l0 [; |: ^5 ?2 v6 w
    static unsigned int count = 0;
+ k( e8 ]: c) F. }    unsigned int int_id = 0;
5 g. R5 T! g' O3 m# j
, u" w; l  D% w$ a& O4 p' O4 U- c$ u/ p% P
1 V, I8 m( h" W5 I2 S
    // 确定中断源+ Q$ Y$ T0 W3 v2 O+ i" G4 S5 C+ v5 u
    int_id = UARTIntStatus(SOC_UART_0_REGS);
. \" u- e# N& f$ e
/ c# M1 f, I+ a% t    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
+ @6 X# p% w9 Q8 M/ S& @2 p
/ m* p9 f' w7 |7 n" U
2 z3 |2 o$ g" v, D$ p; k1 Y    // 清除 UART2 系统中断
# U' ?) ]; p9 ]    IntEventClear(SYS_INT_UART0_INT);
- r4 ^: V& l. u
0 f" j) S+ g$ y6 y: P5 F    // 发送中断" Y! J6 g6 l0 M/ K
    if(UART_INTID_TX_EMPTY == int_id)
. B+ ~7 p9 G3 G' I    {6 w! q6 T" L5 w- ?4 G2 }
        if(0 < length)- P) w+ Q! i8 @' [/ s- z
        {
+ {2 v3 W. B' M% [6 P5 ?            // 写一个字节到 THR4 M3 n  b+ f, f% \  v( g
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
/ j/ M' g7 i3 m% H0 ]( ]) w            length--;# o1 K0 ^5 Z- P/ e$ l4 O
            count++;
! Z7 u! I+ ?, ]9 {' S        }7 d& x+ y: N% }' @, }+ ]: R
        if(0 == length)9 `! p4 X% G$ q( v
        {9 Z* c2 ?2 Z& A2 _2 u
            // 禁用发送中断" y3 T, ^1 L$ ?. c
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
3 b8 Z# O; h3 ~  @- I" y        }
% H+ i! [7 w( {% s. \' O8 R     }
6 {/ }" d+ z7 @5 @, U% ]
7 v: _% l8 f+ j" f; }) C    // 接收中断
) E% Q  X! B, }4 U  f- D    if(UART_INTID_RX_DATA == int_id)
9 H  t( [  D! z& N# v8 {" |    {
6 n: _+ W+ |0 V& q3 G$ A6 r/ v& }        if(status_a0==0)# l, [6 B  L! _7 p6 \  R
        {
7 O. L5 V" T6 j/ P8 d! ^9 z                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, P/ T  w2 E) m; v- }                if(a[0]=='#')
, W  W/ ?1 B4 q                {
8 x$ y! N5 l) J; `                        status_a0=0x01;8 J6 h9 `1 {) d+ d' s, U; v
                        status_a1=0x01;" ^4 [) b6 `" Q2 C7 d
                }  D6 L, Z2 E7 Q6 }8 W/ i5 }3 s
        }) }4 @$ |8 ^" X. l1 _7 Z5 I, S
        if(status_a1==0x01)# E2 ~: h" j3 R7 n9 F. Q& W
        {
4 k3 C( {5 b- `' `4 ~                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' U* m1 ~8 `$ y
                if(a[1]=='R')
5 x; L, t+ A" ]9 W# d                {% Y, g6 w& F3 _
                        status_a1=0;
$ T" `4 k" F* ~) _                        status_a2=0x01;
6 S% a8 f! ~! P6 X$ h% C                }
# A: [$ T' b3 a6 m: v" [        }; ]5 h5 n& J# ]/ ^" ^
        if(status_a2==0x01)
% B9 H" Q% E0 Y0 K" e) n6 n        {+ R  m5 p" O1 Q6 j& M2 V
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
2 ^9 G5 k  H- V/ h                if(a[2]=='A')
% t5 j9 r1 E# N8 h' D1 y                {: H* X! x( }+ k8 `  r/ `
                        status_a2=0;
2 N1 \, a6 }" x7 }3 a: Q/ O5 N                        status_a3=0x01;
  J1 q( b+ D& i' Z% G) f* \                }
+ Q" a( T7 P" r; e        }- ]7 k) q' N  ~( j
        if(status_a3==0x01)
" C: \) R. e6 V) h1 d, _8 d        {
: T* H6 L* W9 d9 V                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# _! H- K% l0 e- y# M
                if(a[3]=='N')7 E' n' v/ y) t% S- n2 f
                {' c! {* P+ B" ?. s6 [: \) y9 E5 e
                        status_a3=0;/ [* s% n4 p& F
                        status_a4=0x01;
9 ~$ [5 ]" K% Z+ H8 H                }9 q) J% N* N. w& e8 W1 G
        }. b, v6 u1 ~0 }" b2 g; J4 k
        if(status_a4==0x01)* w* x- x# E- h! e
        {
0 X/ {' S1 D8 `: h$ M/ R                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 [, o) q5 y! i1 K  h                if(a[4]=='G')
- u, N% ~$ k& [                {9 Q1 L" U. r% h8 z+ y* Y
                        status_a4=0;
  ~. t; c, \% R( s; X                        status_a5=0x01;
! W9 I3 {; ^: z9 s& G( D  j                }
! s/ t+ N. i  u3 H7 A        }- \% x; m  P8 G, A
        if(status_a5==0x01)( y& X  n; j1 Q4 d4 Z, j2 E7 u/ l% J
        {
. y- _: A! a* m8 [- K                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
9 a1 `5 n3 Z6 Y                if(a[5]=='E')5 p, z# `; V- L
                {9 ]; x) c8 R( _/ u( z- J9 C) Y
                        status_a5=0;- r/ c* _% _" U; B
                        status_OK=0x01;
5 n7 z2 s: _- E/ W4 r9 K9 W                }
  n5 ]0 F6 f* [' v: k! B9 G* i  P% a        }
4 D5 [* i4 d/ U1 z            if(status_OK==0x01)
  Z. R* K8 \) u! Z- n7 S        {
' M& M2 I0 X/ e1 z: `7 R& n. C: y                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' E( d/ o; N0 k9 d
                        lengthrx++;
; S# e$ t8 T' ^# k                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
- s3 y% X# W" s6 Q. T                        {
' V3 I" q* U4 o+ y& ^" J( ~                                RecState=0x01;
" T/ s/ B8 M) G% C  M* {                        }2 u( c( r' E7 @2 n* ^8 }9 n: h0 M
         }
8 ^7 @, s, C, d+ u/ t  m6 i" m/ e5 {) Y* U" l4 b3 T
     }) ~6 s, i/ ^( Z/ i5 @
( Z; q- t1 z" C
    // 接收错误$ A7 o* V. g1 s% D! r4 s  s  F
    if(UART_INTID_RX_LINE_STAT == int_id)/ N5 Q, e' T/ w4 X% \# u* G
    {/ s, L! `; j3 s0 m1 a% V) w
        while(UARTRxErrorGet(SOC_UART_0_REGS))
4 Z7 d3 R' N2 y* o        {
3 x; M# ]2 p0 c, a            // 从 RBR 读一个字节; @7 |% @% f0 R- F
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
' C* o0 g0 f3 l        }
+ c) X& t6 [  e# Y    }* ?/ C9 o- H' O# B  l6 y: a7 {
5 M3 F5 H; c- E
    return;
3 Y! r$ Z' q/ `0 Y3 S" A}
  B0 T$ v% F% @7 c# ^2 K2 c0 u" a3 M7 A3 T% n) i$ s

3 b5 A% K- N) o3 M
: {- _  P5 e5 s. b0 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2110

积分

创龙

Rank: 8Rank: 8

积分
2110
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,' a, g7 v: e: \

) g) l, R3 f, _( f5 s. xUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
9 |: l: `" j. P0 Y9 J3 R! X  z' a5 H7 u% I" H; n
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
/ D' T3 M8 {1 L/ J& F5 F" [! rhi,
' T1 \+ S' @- I: S1 l4 @4 f4 O0 ~) }  ^7 m0 V
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
( y9 w" c% U' a* }2 u) A
void main (void)
# r* b; q! P7 K) z- E3 \. A" r{
$ }8 E$ W& @/ l8 H0 \0 \        int i,j;. k) G* e8 l9 m. k
    char *str_buf;
" P; W# e7 K1 ?( Y8 o% n3 I    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];2 |0 C; d5 N# N  `6 C/ e+ f0 _
        double est_L_b_=0;
2 H; O; A6 D2 P8 a! f        double est_lambda_b_=0;
; e3 R8 y1 p+ `7 m9 b1 e( D2 n        double eul_[3][1]={0};) A- Q" _0 G% U
        double est_v_eb_e_[3][1]={0};. {' O0 O. d8 p( c) O5 B
        double est_C_b_e_[3][3]={0};
" r5 r9 L2 @7 L& q7 {! C    char *qm;
% V& C. D* E" S9 ?& b    char rec[70];' ]6 M9 {8 \2 s7 E$ o, @( @8 B  U" @
        double L_b=0;  M8 N7 G2 ~' e: E
        double lambda_b=0;! M# {$ k0 @+ F. Y8 I
        double h_b=0;
9 S, N, J+ a$ K" A% s        double rate;( a% Z! q0 Q" n

7 G5 }4 z: H& r# @6 U/ ~: K
* Z9 l) b+ r$ S2 X# j        // 外设使能配置
, r+ t# D) H4 B& G        PSCInit();1 ]5 l4 ~8 U$ _& e- E% J
5 M4 ~' x* q* z- I3 Z9 W! @
        AppInit();5 Q* E. A( S6 l
4 O8 |  Y+ K: y# h3 y
        // UART 初始化3 J) q( D+ E( s2 m+ w' I  m
        UARTInit();0 R* @+ ^! [3 Q- v

4 T' y! g9 Z9 X( P, R1 W        // UART 中断初始化
: C' d& c" d5 x/ l        UARTInterruptInit();
4 P, Y3 r9 d, }9 ?$ [2 `1 r& F( U) o8 |0 v: I- M( O; M4 P5 i# I
    evtRcvd = 0;  b. }8 W8 ^( A, H  [
    RecState=0;
* D; i5 z0 H- E; u- L    /* Initialize */
3 v$ ^9 s) m4 G" j0 S3 S+ O  |& n6 o1 n6 @9 c$ w
    printf("DSP subsystem ready\n");
" Q' k. |0 x' |& Z
/ W; x- z+ \: A4 X' o" s    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
  O- D+ G( P" Y" _. k0 F
0 Q/ |1 }  u, v9 r3 Zfor(;;)! P( x. w& I6 z" M* d( X
{; }& ^" S: U* C: Y, O$ ], Y
        if((RecState&0x01)!=0)
# v  v2 \$ S, x$ a0 w) h        {
: |. k/ O- i+ M" Y9 S* z8 O/ |                printf("liuzhenxing\n");
, E' {" T' ?) P) r: _3 R0 M& y6 |        }; z) m+ C) R' q5 T
        else
* |3 b$ Y/ V$ j, L' L9 b        {$ B* J8 g8 T& l3 H( i
       wait_event();; c. U0 e, j/ x

6 [' @& A: h, x9 ?* x           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
: P. L  l; [/ s: n; P3 X1 h: q
+ M* }& Z3 c3 {- E           for(i=0;i<60;i++)/ j- n/ y9 i4 m' u( ?0 H
           {
  b$ G# Q  X5 I5 V                    rec=*qm;8 K# m, v8 R+ T5 a; S7 t, x
                    qm++;  D) e8 _- U0 r7 f# J* B
           }! V2 k' C& C' g. T' l

# C# P. G+ Q7 U: C' E           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);2 d6 w" w1 A( z6 [

" {$ Y2 a# \) ]0 c           L_b=L_b_receive_double;+ C, t" v# H  T" ?
           lambda_b=lambda_b_receive_double;' M# ?' D& N% X  [" A2 k
           h_b=h_b_receive_double;2 }( R& I! L6 N) h! l; d
           for(i=0;i<3;i++)' r, e- t; Z: D# I* J- {
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];5 `5 i+ O( y7 R# o7 s9 W
           for(i=0;i<3;i++)' I# q. w3 q$ G1 w
                    for(j=0;j<3;j++)
& M7 J8 W. h! u$ a; u3 L* Y                 est_C_b_e_[j]=est_C_b_e_receive_double[j];5 s' U  h9 p& U# J8 Z) I) A
7 g9 x" w0 O1 E, B% ?% e. z
                printf("L=%lf\n",L_b);
1 A+ [/ |9 ]5 H, t) D                printf("lambda=%lf\n",lambda_b);
% `% t4 M1 x8 |# l* d& J; g* \4 I                printf("h=%lf\n",h_b);
0 Y: P/ C  C. P- [" m1 d, @& J6 T/ j' u( A! L9 m- T
                for (i=0;i<3;i++), `0 t# c9 z9 f/ \  A
                        printf("%lf\n",est_v_eb_e_[0]);1 L4 M7 c4 _4 E% `- I8 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]);$ x7 Q7 h0 B+ {$ B* U) t$ l5 @
                printf("rate=%lf\n",rate);
6 M' v2 {8 L5 ]: {: J9 l
5 U  F. J. U7 Q2 f# h                CTM_to_Euler(est_C_b_e_,eul_);. o( l8 ]! D& E. F* l! G: i
                for (i=0;i<3;i++)& a" G& E: X4 E- K9 F8 @
                        printf("%lf\n",eul_[0]);
# k* W$ K. |1 p2 [6 H) |  E3 K                printf("end************************\n\n\n");8 t% }6 Q) Q+ ~# C

; [5 R8 S5 D6 Z/ o% [  P, l4 A                /**********************************************************************/
* \, S  ^! W1 T3 ^& L! I% t* v. O1 X% a3 h( F. p& i0 K* V
            char flag[4];
% [- `/ _' c. ~1 _( Z4 N, M
' a7 D1 o2 ?5 ~( |            flag[3]=0x00;* X/ b7 |7 V& s' t7 o
            flag[2]=0x00;4 ]* C) u* w  J; f
            flag[1]=0x00;) A) [% G! t! j% p: e* p
            flag[0]=0x01;
% P! i& ~, L" P7 P3 Z4 F; g
8 M$ e& N3 x- r) |2 h' j/ B    /* Allocate I/O buffer and init with string */
4 y2 U! U; _: Q; `1 v" @    str_buf = (char *) malloc(80);
5 |* |) [7 Y& x* }2 L1 V) r    str_buf =flag;
" A+ |9 r# R/ N7 v$ f
( Z5 U: A6 t* q8 ~% N' m    /* Send buffer to remote CPU */7 @/ H: G7 L- d1 G
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));: y2 z8 P/ S% _4 T2 y* r6 F0 Y& i
$ Z) H! c* s# ?* Y, l% s
    printf((char *) myPayload);8 t: `' P! R% x! B' T% l3 J
        }
8 i$ ^% u. l! E+ c9 d1 N. h1 v+ `}) }9 c' m9 `: ?- |6 x
' F  k5 |% T; H& D. n* c
    WAIT_HERE;
! \" R  y+ L6 ]! e6 Z: F9 F}
: j/ S& S  l% s! r( Y
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:( i: ~  q; B+ {7 O
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。! {3 L* ^, ^; }7 f. a
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2110

积分

创龙

Rank: 8Rank: 8

积分
2110
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* X5 T4 c0 k3 n; C0 U: L  h
syslink 的初始化是否成功,notify 通信是否正常了?
6 o* [6 k, @4 h: D( B
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
" P! i4 n4 E& f% T6 k' C0 ssyslink 的初始化是否成功,notify 通信是否正常了?

* v3 ^& r$ x* N) V* O/ X& }  _我用的是裸机开发的双核通信,用的是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
* t; t8 J" r! W3 u( M2 J我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
3 S' R) u- U& j/ h5 H
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-16 14:52 , Processed in 0.059265 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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