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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
  h! j! O& l8 c5 z# `6 `5 L我是在DSP初始化这不太明白。+ B% k2 @9 Y( r; Z5 {+ o
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。5 Q$ x- v, i; i, F; Z# ]
( [& c: i5 P( `& H, x& I

3 v6 p+ J( b3 c% c6 v1 }+ N首先        PSCInit();//UART0使能
* \4 g- z2 ~/ c$ s! r" Q; c5 W, kvoid PSCInit(void): J, q  z- b/ I1 G
{: V8 m0 @; N( c1 {* _+ L
        // 对相应外设模块的使能也可以在 BootLoader 中完成
. B( K/ Z4 p  N  x$ D5 O/ d    // 使能 UART0 模块
% i( e* E8 D. M' N4 H% V    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);! o  D7 O2 p9 d& K) Y
}3 i9 g/ S; x7 @- t1 O

' ?) T5 j2 m# ]7 L& h
! d* g8 _3 v2 A然后是 双核通信的初始化           AppInit();
! P6 \! p) a7 {! Q: yvoid AppInit(void)1 o( g6 c$ {2 `; }
{% t6 F2 {% H) l& A5 d; Q5 i
    /* Structure to initialize IPC (see Ipc.h for definitions) */
) w0 `1 K: X4 D+ N  q6 p' y' _    struct IPC_cfg ipcCfg = {
. w; d- d, s2 X, Y, X            IPC_DSP0,             /* local processor Id */* p. ]9 Z0 m$ U' o0 V$ g
            IPC_ARM_HOST,         /* remote processor Id */, L1 W' n: B+ W! j+ C9 ?% u
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */' L; ^7 Y6 h; s8 Y' e- O; {9 I
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */" [6 B0 ?$ d. r% z' A( f
            NUM_MAX_EVENT,        /* maximum number of events to be created */
- m; u  c6 t0 M! i6 `7 e            &ipcPvMemDsp,         /* local side private IPC memory */. U! m* }7 j. L& k$ W
            &ipcPvMemArm          /* remote side private IPC memory */
: @1 b$ N! O7 E) T  m    };
8 ^3 e; o! D- S5 j( ^    IntDSPINTCInit();
2 L" v+ Q; J6 q7 `! l    IPC_init(&ipcCfg);
1 x: I, X3 v8 L/ h5 Z6 o0 e    IPC_intRegister(C674X_MASK_INT5);0 q2 {; X& I( D' Q4 a8 z
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
- N7 g" z9 q% a3 Z& a
' \# {' U1 O2 U6 N) i, D0 `3 z    /*  Enabling interrupts for DSP C674x CPU */; x8 }4 U3 ^. a' f0 U% y
    IntGlobalEnable();        /* Enable C674x global interrupt */
7 v/ @' {# b# ?2 K% Q" K    iAssert (Notify_start()); /* This will enable IPC interrupt */8 D. ~, O) l$ y
}7 B! M& D, @, M& T/ G. z) r

9 d# J& \3 x8 J然后是  : D6 x0 ?  [1 B
            // UART 初始化
) D9 _* m1 S4 x7 h+ C            UARTInit();
" e0 U% `1 h, z" N, r8 u# V
/ r5 O' C1 A3 d$ F3 Z% n7 v- Z            // UART 中断初始化
1 Q. v/ t4 U: k& n  |! A8 L            UARTInterruptInit();
, r- z( V+ @1 A& b+ W
* B) g' x3 V+ f6 J
0 e1 w1 o6 S1 V$ K. K! Z
void UARTInit(void)% c6 ?0 I6 P) g& G9 Q" ^* e" p+ M: N
{
% K" H8 @5 T) }; b        // 配置 UART0 参数/ J- W) ?4 E1 e% ?4 _2 \3 v9 f! V
        // 波特率 115200 数据位 8 停止位 1 无校验位2 S& l! k4 N* v$ w+ l3 d. y
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
( t* j( [7 R8 p- W0 K: f2 e9 L& Z                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);. m' a2 I" i4 C& w/ F
        // 使能 UART0% q2 q: x5 Y" p3 e
        UARTEnable(SOC_UART_0_REGS);
7 Z( G7 l. ~# F, E6 Y7 v, h( r: ?8 L6 f5 Z0 y. {% i0 G1 B' M, c
    // 使能接收 / 发送 FIFO. \% O2 n! h+ h4 K; [( |6 g2 p
//    UARTFIFOEnable(SOC_UART_0_REGS);, {( n2 k3 g+ u5 ]8 B" w

, w# O8 k- D. a: h        UARTFIFODisable(SOC_UART_0_REGS);
& h0 c' I2 C. v9 ~" \& `" M, i' Y. I$ ]9 M  |! H( H4 t; I! f" s
    // 设置 FIFO 级别     接收FIFO的级别
1 |5 C. S+ ]/ X& h) G//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);6 }. E6 W5 y* H5 O3 C: x
}" P: S- c' Q- a/ q% P' M8 s8 @
: U( l! C: ]6 |* L* j

6 J0 m& J2 D. p6 jvoid UARTInterruptInit(void)
% n* J; a' l6 h0 z& K{/ Y) L1 l$ _4 \* Q6 {7 ?. o6 A
        IntRegister(C674X_MASK_INT4, UARTIsr);
8 T$ F  c) g3 M* h! _# O+ n2 ?        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);9 B3 e7 t  E" ~
        IntEnable(C674X_MASK_INT4);
& K6 V% K( x/ ^: x, u* {; }
1 a) z0 ^7 Y4 H' \, A        // 使能中断: l  _8 ^1 ]6 x; X
        unsigned int intFlags = 0;) l+ k6 ^) m/ |' S" B% a6 F
    intFlags |= (UART_INT_LINE_STAT  |  \
' i0 C- E1 \! _6 C                 UART_INT_TX_EMPTY |    \
/ b$ f8 B, k' }2 I                 UART_INT_RXDATA_CTI);
3 t/ i1 f* D+ a0 d8 n' R' k    UARTIntEnable(SOC_UART_0_REGS, intFlags);
2 A9 s) n( V7 R" ^6 B! L: M}6 S0 A4 |  K4 T4 [/ y
. H# C6 I; n) C* ?7 m

! i1 N: a# g# ~+ b. X( f1 Jvoid UARTIsr()
$ v# d6 @; q: B  p; N) _{" @7 G( C& A3 |* m8 \; g8 ?# S
    static unsigned int length = sizeof(txArray);: h* h0 Q. H3 A3 Y  @# s: S& P
    static unsigned int count = 0;
4 T, q- i4 q( m* U    unsigned int int_id = 0;+ c4 Z% ^- w+ M& `
, J' t: w' S) Y1 A4 n. u5 c
# B7 L. C' \; s! r3 P
$ A. ^" b$ c8 w
    // 确定中断源7 x) a; n" H$ _3 {( g2 h1 q
    int_id = UARTIntStatus(SOC_UART_0_REGS);0 ~  }# S3 Y2 q4 D

$ j% [! q1 E. I  k$ B    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
% N# n. \0 B. N( Z; b* Y; }7 G3 {, C, o; M8 ]
8 y/ C2 h  d* d2 I' `. j, F& [
    // 清除 UART2 系统中断; g+ A0 [7 Q: v4 y. d1 X7 i3 W
    IntEventClear(SYS_INT_UART0_INT);$ C9 n! q/ `5 K) u1 ?) U/ h% ?
9 x) Q2 l9 \% e# O' m* x5 `9 z
    // 发送中断& {& C# }4 d, y! i
    if(UART_INTID_TX_EMPTY == int_id)8 Z( P& R5 N; P- b& m9 V' d
    {# ]$ u# Y; S! o0 j3 R" A
        if(0 < length)
+ ]- \: P9 \% F2 _1 P( T2 j        {
" C' w; w( I9 U' }7 d6 r            // 写一个字节到 THR1 r# c  L9 w7 t9 D; e( b, |
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);/ [  l7 l: c+ v/ h8 j+ U3 \
            length--;
1 o; K& x% N2 ~, Z3 x2 T+ q1 h            count++;) x- K7 c0 G6 p
        }9 g3 F0 ]& M  H
        if(0 == length)
! a/ F+ M$ L( A+ J& N        {
; {1 g3 i5 U! ^/ i9 R9 a3 W            // 禁用发送中断
0 O  @# ~& N/ H' w! L            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
; m+ ?' w( i* u; f: x# n. {: p! B        }
8 V: s8 o; C! [& e! z     }
  ]6 ~# d# i! t( z9 @9 c
/ e' |/ }3 H8 g/ c) _    // 接收中断4 m+ A0 r8 ^6 B7 W7 x! ~6 s
    if(UART_INTID_RX_DATA == int_id)" a4 w* m+ h. Z# N- U
    {, A4 T2 `. q7 u& v: u( G3 u
        if(status_a0==0)
9 `: v4 t. M  p8 f" ~( A- g        {
' D1 ]( Z2 F. r, \' {8 c$ l                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 b  Y5 Z$ M1 z7 I- ~
                if(a[0]=='#')& \& ^; F- q; g) }4 A  I
                {
. W; _. G) z5 @- C" E8 c/ }                        status_a0=0x01;
3 F( |& [! x1 `- g, T, L+ w                        status_a1=0x01;
+ n+ r1 \% _) T3 O' H8 _                }
) N6 K: F% Z1 s8 b' @7 K- k        }* e& U4 F$ J. X; A! ?
        if(status_a1==0x01)' j0 K2 S( P8 E# O# F- g* T: S
        {; f- u/ c# P6 b
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);- c5 Z& m3 ^, Q) ]/ Y
                if(a[1]=='R')% e- a' `$ `- b+ ?+ W: P
                {( q; a8 ?. V$ t& `
                        status_a1=0;
: w9 F% V  |- v6 s' r2 `. |/ n                        status_a2=0x01;5 }8 j* I& q4 z1 C
                }2 `8 {4 g: M4 Y% x7 B& i3 x* p
        }
* ?3 X) u. M2 \; c        if(status_a2==0x01)0 X( m; n  f" n- P. ^; A7 j
        {
3 h5 `6 U; s9 V! L                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
9 v9 B. B4 Y% K3 X( G: g  E% f                if(a[2]=='A')
7 z4 {; o9 f* Y4 F% X1 g. c4 k                {5 s! L: W3 M1 K, q' T
                        status_a2=0;
+ \5 h) Q0 z6 o; }" @7 g                        status_a3=0x01;
3 e: c6 I9 V! p4 w* I                }
4 r: e1 R- `# x5 p  a        }% C( E4 j6 G! ^
        if(status_a3==0x01)
) Z: @, M) l& h        {
- u! b" p/ [* S/ }; f7 p0 m                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);/ e( M+ P* x0 Y: R3 t
                if(a[3]=='N')  b2 T& @  V3 M! G! V3 |
                {) k* X2 i9 ?; c0 e$ {1 e1 _
                        status_a3=0;" N) Y+ @: I4 U8 i) Y7 D9 V+ F
                        status_a4=0x01;  Z: r8 }- C* R& v1 g' [" q
                }
8 _& F/ \9 P+ P+ H' I- {        }
- l3 F, N; s# Y6 `. C. n* E0 P6 F6 x        if(status_a4==0x01)& P# A  d) E" e4 r! X& }
        {5 C* W- P% L: h5 a0 T+ c* R
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
! s4 n9 N; ~+ O& |8 C" r9 A; ~                if(a[4]=='G')
, Z+ C8 ^- [  T8 G4 C0 |! ^                {
  `/ L2 i. m$ M6 M1 j                        status_a4=0;+ Q) P/ V+ L, K& q3 B
                        status_a5=0x01;2 N. d7 }+ G- S( g9 v
                }
$ B4 c  F: g- Z7 w: ^6 H        }
3 B8 ^# ^+ i' P3 t+ }        if(status_a5==0x01)# Z+ J( [) R4 B
        {
# f9 C+ b% S# \6 H                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);0 n3 Y9 j  E7 V* A  d: ?
                if(a[5]=='E')
# Y! W+ H7 J( g5 N                {
! A3 ^2 H/ {: R# @" {) ]& }% R                        status_a5=0;
. K7 z. p: m: e5 W( c                        status_OK=0x01;
3 o2 P; g; s" u4 k+ Q                }8 O; o% N( g& D& U
        }6 Z- }3 R' `  o6 T
            if(status_OK==0x01)1 y+ w% A: V+ a: G
        {. k* k* p  v" d1 B: |; i
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
8 {7 Y6 z2 W  n+ C2 C" k: j+ L7 f                        lengthrx++;: M2 H. ]2 i9 W9 L, f+ u; Q
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)8 u2 \0 w* J& Q- D% m. \
                        {
3 e/ \+ ]0 B9 _* O9 G9 D# B                                RecState=0x01;
; j/ v3 b% W8 n& s. H! l                        }, ]! K. L8 W& M8 s: M
         }" ]- I* i2 P% u( B) T
$ r6 ?# B& a2 l2 G5 C5 R
     }! M9 s1 v# T  R7 T9 @
# F5 ~" D( ]" Q  @! y
    // 接收错误
6 t! a  O: f8 j4 o0 ?9 ~# c  ~    if(UART_INTID_RX_LINE_STAT == int_id)
2 \" Y9 G3 x% P6 q' g! S    {
  B- g1 e. b& L3 r% o4 A        while(UARTRxErrorGet(SOC_UART_0_REGS))4 f7 q9 f+ `2 @0 _- H) X5 T$ ~& `
        {
: l# k$ J# F! H3 h, k            // 从 RBR 读一个字节" c+ |+ l3 V2 p1 _$ y
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ {" i# _5 ^2 L( e! G, i$ `* \9 S        }
" R$ i5 i- R0 }# @; ?( c$ j    }
  t* I- X: o2 ^! K5 V  `% o/ z, B4 V& ^5 Z+ `
    return;: x' P! d, ?. k1 I
}0 _/ I; i; `% E, }. w1 g- R
# D/ c( B6 b3 S& |/ Y) Q: {

+ {8 u0 n+ [1 K- I0 x( M4 g2 {) w5 i7 x$ m  j  b3 i2 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2091

积分

创龙

Rank: 8Rank: 8

积分
2091
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,9 l# ~% A! _1 s% T7 n+ R' `

2 b; w, q3 K8 k# L# x% |1 @UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
0 ~, H# G0 l% r' o$ a) b. A3 x0 w, t7 h- A: c# r$ X
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
7 _. }( Y* t/ t% d: s: Ohi,
# _# L8 U/ o! |. g' t
7 [* d* b( b% C5 C1 UUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
/ S/ U! J2 V2 a! [0 m! I
void main (void)
8 g# L' K9 d$ }{
( y8 Z) n5 I. O$ d1 }) \% v! o2 l        int i,j;
. K, M1 o3 t7 y; T$ k    char *str_buf;+ z; z& b6 ^$ s6 }2 d3 A
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
+ t. c9 I7 c. b& [# G6 ^        double est_L_b_=0;
4 f! I; h3 ^/ e* i5 B1 D: ?        double est_lambda_b_=0;
  n3 L5 ]- g; b. K& y5 j* F" r        double eul_[3][1]={0};# E- I7 B$ r$ h+ d* W, E8 ^1 E% E
        double est_v_eb_e_[3][1]={0};& U$ }% @5 o3 w) U
        double est_C_b_e_[3][3]={0};& ~' G6 A* x: L# t/ ?/ ?/ Y
    char *qm;( q- q0 U* ?9 O8 F1 [4 }
    char rec[70];
1 i* v9 c0 G) `        double L_b=0;" H& ?5 i1 c7 @, @0 L3 X4 @
        double lambda_b=0;
, [+ r# C$ N1 W5 ^; V- g        double h_b=0;
7 O" m. o7 S; s) C2 m        double rate;
7 M3 T/ e! \( [( f; k" ~8 i! j1 e- b0 c. g6 g* a- Q; W: P+ w
* O9 H% n' C. h& w
        // 外设使能配置
# `( j: B9 V; L, W" F        PSCInit();- P# k1 J# `* Y8 n
: x$ {( n( N% a9 `
        AppInit();
7 G9 Z7 F( I, F2 w
/ ^# a3 a# R* k* @/ j  |        // UART 初始化
% Z7 n. J- K2 W) n9 q        UARTInit();
  Q6 q8 f* |6 h
+ m' I0 S" P" D3 g. I4 V6 _        // UART 中断初始化9 ~! A2 i& L. |4 ]- {* f, m- I$ _
        UARTInterruptInit();- c) t/ E8 Y1 w
/ X; D' t& [5 W  Y7 U8 \
    evtRcvd = 0;
3 k4 B8 X/ F+ k4 k  a( w1 O+ ]    RecState=0;
* r6 x! M, L2 H% [3 j- Q    /* Initialize */6 g0 _7 u6 `/ q# \0 ?( r
% h1 t) x. [6 ?' w- n
    printf("DSP subsystem ready\n");" ^& e" \3 l" U1 f1 }

  [1 m$ p) n! F$ C( ~- m* k1 ~    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
4 Z# f* }( N* k. r  X  U
' d+ w! K. S! l4 ?/ h9 N) F0 {3 efor(;;)+ N: D9 S9 Y# L4 m# J& }
{8 V2 B! ^8 M' [2 t7 I
        if((RecState&0x01)!=0)4 j- h$ ]: @  k# M* R
        {' V+ S, G) ?& ?& }, B8 g- y
                printf("liuzhenxing\n");
8 l, B7 |# |& U" N! C7 |5 _; ^" s        }$ a# h- n, a5 i) O: u
        else
' Y5 ~. L9 x8 F% ?        {
( _3 c6 w" T' `7 h       wait_event();$ s$ A4 o1 d1 W5 h* }$ b5 a; y0 \6 Q
2 z1 Z4 {0 Z5 s$ g( m
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
0 h6 _1 Z, X0 \4 d
: d) x2 ?6 b, C. b! D           for(i=0;i<60;i++)
' l/ j, g5 P: N$ m3 V5 E           {
- x1 r6 w; \: d" H' W$ U- q                    rec=*qm;( p. Q5 `) j' q8 P/ ^; y
                    qm++;
. m( V& p" |: c' c) _' X/ b           }
* F4 S  A6 g# A' k( P6 o, q1 f
$ P* f' S$ d4 Y6 d           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);2 b3 C4 `, a* p  t, x* o
" v. _6 a- U& Z) Z. A2 Z
           L_b=L_b_receive_double;
1 I5 J" m# X* V- X' z           lambda_b=lambda_b_receive_double;
# c) L6 y. q  o; c/ `! d4 D           h_b=h_b_receive_double;/ Q2 e: z# `8 |+ e: c7 S( _4 I
           for(i=0;i<3;i++)
8 G0 U5 I6 m6 N" A' w( |                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
. |: R# q! w! F& f; c$ r& `, ]! t           for(i=0;i<3;i++). ]: N- n0 n; g! X
                    for(j=0;j<3;j++)
* L3 F* S# A! K) ^: j                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
% T: X3 W% p5 r; X9 N& L) a/ t0 z: S3 @0 p; |
                printf("L=%lf\n",L_b);
/ _" D3 r) ^2 ?8 N0 ?4 t                printf("lambda=%lf\n",lambda_b);
: _8 i4 i4 v8 e# i6 Q                printf("h=%lf\n",h_b);5 p% d0 v+ J% r+ \& N9 a- ^

7 ]' t! `4 ]- V" d0 D. o4 h/ G2 L. @+ o                for (i=0;i<3;i++)
" R, Q) o$ p/ u* T8 M                        printf("%lf\n",est_v_eb_e_[0]);, ]7 m! {9 }2 \) l' U* Z0 S. C
                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]);; l# n* {( \: x1 L. M3 l& g9 {
                printf("rate=%lf\n",rate);+ ^; d3 r0 t3 j8 q# n! Z, N
0 g- E# I8 G/ I" F% s5 t
                CTM_to_Euler(est_C_b_e_,eul_);: p4 X! {. Q8 }% s3 Z  f) Q
                for (i=0;i<3;i++)# c$ n1 s7 b9 h1 q, J9 ]; C
                        printf("%lf\n",eul_[0]);9 ?+ ]; K% e0 h* g) ?
                printf("end************************\n\n\n");/ H+ h7 g$ k' n) g8 k) J
) Z! |: S$ `* c; d1 O, A0 ?
                /**********************************************************************// m/ n% G) f8 I- C0 F
' m4 [3 g- y  ^
            char flag[4];8 o/ C0 B8 s& ~# _; _
" ~) i3 ]. I$ ?0 V* y
            flag[3]=0x00;
! E' A  e/ r) ^$ T  i+ ~1 T3 }            flag[2]=0x00;
+ e! P+ A1 M5 u8 y/ f            flag[1]=0x00;4 t  X! a9 p8 z0 v( X/ f# P
            flag[0]=0x01;2 ]6 o: |' X" c5 X. S

; i7 ~( i4 h, R  Q/ T5 `    /* Allocate I/O buffer and init with string */
- X' g* q3 u5 D; ]; |0 z3 A& |    str_buf = (char *) malloc(80);3 c6 D* v& k( Q5 ?1 ?4 f4 p
    str_buf =flag;
6 i9 u) B; n/ {2 h% D0 o1 |- ?' `" y# L3 U
    /* Send buffer to remote CPU */+ `" S+ i3 Y, N& ?7 m
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
- f" }" U: v9 i2 d6 e* {# u# N; v+ z- m9 c% E, I, u1 J
    printf((char *) myPayload);( Q. _$ q% s/ U- ]+ S& M
        }4 v$ b0 @# `4 N9 i) O
}
: C5 ?/ v/ f$ g- k( X' f
1 f; n( b$ X3 Y$ w9 C: c    WAIT_HERE;
$ R* E7 q: e+ h% t; t: V}0 f7 t+ s6 }( ]% x- g
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
, d8 a! V* V2 E# h) P: l/ B我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
7 ~$ w( }/ b2 m8 Q# O8 M" }& c然后我把双核通信的初始化屏蔽掉,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:54
) I! Q5 _0 [; Wsyslink 的初始化是否成功,notify 通信是否正常了?

  w2 o0 Q- v2 Y# W4 H双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:548 n2 i* n8 r. h; E) A4 z. |, p/ F
syslink 的初始化是否成功,notify 通信是否正常了?
  ~2 A  J/ B! T1 m* r7 U
我用的是裸机开发的双核通信,用的是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
( W) k, W4 g. D( f: Q; b我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
7 q6 ^( w; V- ~6 w' e  j  y
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 05:21 , Processed in 0.048444 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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