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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。8 A9 j0 N( O1 v, p* u- B2 j
我是在DSP初始化这不太明白。
0 ]2 F) P: |' d* B初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。0 c+ f: A% @( Q  p* X& N
5 h1 |& B1 w0 O9 M" T& i- [( i
# N8 k- Y# r) e" E, @2 e
首先        PSCInit();//UART0使能
+ K+ F$ T2 P9 p! h$ t3 kvoid PSCInit(void)
$ M" L4 p, g/ O/ n4 d1 g# `% T{, ~/ _6 C$ e3 c' {
        // 对相应外设模块的使能也可以在 BootLoader 中完成
& \9 B; f' r; e5 L5 k3 l6 O    // 使能 UART0 模块  X! _$ w! S& M$ r; L
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);( d: }% }0 R( o
}
: d; h- F6 ?6 a( f$ |8 h5 X
1 h2 h. y) Z8 |. J" ~6 I4 W

' v, U; h& K7 r/ \0 o# v2 \/ _然后是 双核通信的初始化           AppInit();
$ o6 Q! u8 y7 Avoid AppInit(void)
. ]+ {/ b- s6 p( S- P{% u8 z( o. S& w' w, g. Y6 `
    /* Structure to initialize IPC (see Ipc.h for definitions) */
; T6 L, s7 M8 i    struct IPC_cfg ipcCfg = {# u9 F. N( O3 T2 G/ S6 w
            IPC_DSP0,             /* local processor Id */( i2 Y1 O* D  x2 o
            IPC_ARM_HOST,         /* remote processor Id */
# v- b/ y* S3 g8 Z& n/ Y, O. K            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */+ J8 D: T0 `! z
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
8 B, d% j9 r  s3 }            NUM_MAX_EVENT,        /* maximum number of events to be created */
# G4 d6 F, V9 l" z- W' F# ?, y% A' j            &ipcPvMemDsp,         /* local side private IPC memory */
" _/ F% h/ A: z2 F            &ipcPvMemArm          /* remote side private IPC memory */
! x! H' @. D1 F% L0 X    };- x4 R" [3 S$ G% V
    IntDSPINTCInit();- O  O- {& g; X; T0 i
    IPC_init(&ipcCfg);
8 @& S# f# s7 T9 ^' U' B" |    IPC_intRegister(C674X_MASK_INT5);& f# R- p4 x9 j
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
  m3 ]( H# M$ S% A% z* g0 V* ]6 f" @2 Q. J
    /*  Enabling interrupts for DSP C674x CPU */
& s: |( Q7 ^0 Q# b1 [    IntGlobalEnable();        /* Enable C674x global interrupt */& B% _2 ^! n' {: I5 ~# h+ X) w
    iAssert (Notify_start()); /* This will enable IPC interrupt */
* O; _& y8 J1 r* w: @+ K* {6 A}" I& s3 u0 p) p9 t

7 K4 o, C  T6 Q/ ?然后是  . s! H9 _6 F; X' ?, d; V
            // UART 初始化
! ?/ S0 y8 _# R' M. ^            UARTInit();  c) c  g% Y& W* E; p. Y/ B/ \7 M$ W

& t! K0 |3 x) }            // UART 中断初始化7 L: }* Y4 b9 j: N- q& u8 f
            UARTInterruptInit();0 _6 P/ v2 {+ H( o. Q$ Z

" M6 A# H. M2 h6 F; w8 G  h6 }1 ]# W% Q: `- m0 J0 m9 g+ I" D
void UARTInit(void)- f9 n1 L: C  Q- o8 U9 K. o. x" P
{
$ A# O; ~1 v7 L% p( c! d- ^        // 配置 UART0 参数/ J+ |+ m( v* l$ ^
        // 波特率 115200 数据位 8 停止位 1 无校验位- V6 I" R7 b( h% J- _3 B
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
2 b8 W3 r0 a  `9 _$ ~% c                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);8 N( N  D( G; B1 i9 u7 k0 @
        // 使能 UART0  @6 D2 y, E4 X9 @  ]
        UARTEnable(SOC_UART_0_REGS);
( z# R: Y8 P2 M' g
: _% T" u9 ^& n# `- k    // 使能接收 / 发送 FIFO
& I7 T( y/ H! r//    UARTFIFOEnable(SOC_UART_0_REGS);
8 W' F9 ]( L9 N0 D' Z& m' Z% ?
  v) ?; w! x0 q& ]  D, u        UARTFIFODisable(SOC_UART_0_REGS);* s. W9 U0 [$ l

) f# ~' Q5 m+ f9 c% U6 ?( }5 u6 N4 |    // 设置 FIFO 级别     接收FIFO的级别
* Y4 j# B4 j% P3 e3 X! l//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
9 ?& ^* U; s$ ^2 M6 F) U2 k: |}' l( N! m: @5 t, L# f6 |$ w& F
( |& i8 \; M0 v/ D5 z+ V

/ S  r: v0 G& @" M8 L2 lvoid UARTInterruptInit(void)
% `, x/ o5 l7 Y" A8 H{
5 k0 Z! _' ]  T, k" C5 L        IntRegister(C674X_MASK_INT4, UARTIsr);1 F& B6 ^. I% w
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
6 U$ [& F- P! y! R6 |2 O+ u( p' _        IntEnable(C674X_MASK_INT4);- `2 u! @& w2 N5 T9 B

/ f8 `5 x( N$ [        // 使能中断4 C8 N7 ]+ f0 ]" l7 T
        unsigned int intFlags = 0;
# Y5 c) O% g( I5 M    intFlags |= (UART_INT_LINE_STAT  |  \
  t& ~/ s2 u6 ]5 T                 UART_INT_TX_EMPTY |    \! Q1 E; D7 `( \! c+ W0 Z9 _
                 UART_INT_RXDATA_CTI);
* l: V  x! @  H$ o    UARTIntEnable(SOC_UART_0_REGS, intFlags);
: o7 D( `! M  Y- N. C/ q2 H1 S2 i& J" y}
8 D2 @' `3 K5 x- L1 D; ^% K$ `

/ A+ c& I0 M& w5 Z7 k4 b, E3 o: k  P
void UARTIsr(), U& J* _7 u* i) A% f! z
{
' f# {* m0 Y$ a, j( l0 A4 F    static unsigned int length = sizeof(txArray);3 t6 {. |( x0 x0 C7 s9 P
    static unsigned int count = 0;- _5 ?: r6 S4 V9 E
    unsigned int int_id = 0;8 ]4 a: y: N5 i. a. Z" i

6 n$ {: {4 o$ W/ z3 {4 ?; Y" B. @
: ]9 d  `1 l  s# ]0 p  ~8 U8 S2 `7 W" c* U1 f
    // 确定中断源7 F; j1 @3 E, f( P8 k! Z
    int_id = UARTIntStatus(SOC_UART_0_REGS);
$ @7 X& Y# `1 u/ \% f  g6 N& h$ J
" k; y4 L1 K. e5 M& Y# a* T! V5 x    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。& L: H( N) m0 d4 d2 A
7 i7 b! z4 ^: M  P
8 h5 m0 q* n0 q8 U( s
    // 清除 UART2 系统中断' w& ^9 g+ G4 @* R5 y7 d+ _% ?
    IntEventClear(SYS_INT_UART0_INT);+ P5 h* y1 ?9 W* ]: T) k
# F$ ^. H1 w7 j  U' f% O
    // 发送中断
$ Z. H5 k+ Z) T    if(UART_INTID_TX_EMPTY == int_id)
! l3 e5 J- R3 D. |$ N; z    {3 g% X$ w/ ?! R
        if(0 < length)
' e. Z& F! ]& ~3 }% P6 P        {
* p% G3 u5 a) l# x! J. l' F2 ]" [            // 写一个字节到 THR
& G5 d9 S) q! I. }8 T! w. L            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);: N0 U9 r" x( }- F
            length--;; R, c, |3 {5 j9 W; h
            count++;2 R( d+ b. ~9 h7 K! @( n. i! ]4 a
        }# E) Z1 i6 C7 {6 E, o# K
        if(0 == length)
6 R4 t4 ]6 S! D. G        {3 k  u( u4 o* u+ I9 {( l
            // 禁用发送中断
9 ^9 |. ]* _/ R  h            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);) L# s2 w( {3 ]3 E- m+ h9 C% \8 J" `
        }1 S- j: [' x! m% e0 B/ \
     }- V$ P5 G2 O3 a  |
& @0 {9 X" F1 W7 s* `/ Z' ?! U9 }
    // 接收中断
* c) X/ N, n$ P" b- Z$ d' Z    if(UART_INTID_RX_DATA == int_id)
/ q; i+ z- T" f9 n( y! ?1 s, {    {! d* @( K3 o7 Y9 X' R  c8 n
        if(status_a0==0)
3 O; S( V9 w& O  x& }& P  E        {
( |5 [3 M# e1 Q% f7 t9 W" b                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);- `; r+ |" t( [/ b
                if(a[0]=='#')
  U% o" ?& S% ~/ ~& Q" V                {4 k8 @1 C6 P5 N5 ~
                        status_a0=0x01;
# i2 s; u! `$ a7 A9 |* A$ O, _  D. i                        status_a1=0x01;
5 \8 I' k" ~1 U                }/ F7 B! r2 r! |7 K8 T% ]
        }
; D: A* e2 S2 I9 O        if(status_a1==0x01)
# z) A% q) c; e* {+ }, q9 I        {
2 B; K. s6 C$ ^: j                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);% _2 R3 Q; d7 [
                if(a[1]=='R')% P0 X* f' ?9 K, S9 B
                {) k' ]0 L2 E2 Q) A
                        status_a1=0;9 v. |1 [3 u) I- m
                        status_a2=0x01;
+ T- ~( p3 u  G* ?# r                }4 I7 {8 e7 m- s
        }
0 d- D% |: @: c: S        if(status_a2==0x01)& K2 r/ E. Y1 a- n
        {
; w& w6 p8 @4 `! }1 W! @! X                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# \1 T1 ~# o# a. Y; `: N# o9 X( M
                if(a[2]=='A')& ?/ [1 X4 [$ g" G
                {: c+ H1 D' \0 o+ e- H
                        status_a2=0;
& p7 R( q/ Z1 o/ g  I3 N                        status_a3=0x01;) Y8 T( C- j4 G0 z
                }
7 w( e7 C5 H, A* x, O( O        }0 b' U3 f. H9 j0 j8 m
        if(status_a3==0x01)6 y0 E7 E& T0 |" h! {
        {; L2 N: `: F0 y/ B+ l: r
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
- b: ~& h$ K$ i% k! x                if(a[3]=='N')& F  |5 Z+ @# D6 }; h
                {) z3 i4 J( e: K0 N$ I5 f
                        status_a3=0;
4 g1 u; H5 L* @. r# r                        status_a4=0x01;
( e- E/ y/ |1 Y7 ^' q- y2 Q                }* \& G8 r, u) U. F7 u
        }1 Y! n: E8 N# p' x6 M! j
        if(status_a4==0x01)
( K! b1 F" ?- w: C        {, Z! D+ {6 E8 V0 Y# Z
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 V6 v$ y- c5 x1 g' N
                if(a[4]=='G')6 B/ b3 @" n9 E! [" a' S1 V
                {4 M$ l; y. {6 b" n. f
                        status_a4=0;
- I& ~# P4 u! D/ a4 @9 o& C) N& K6 d                        status_a5=0x01;
6 U: I5 d5 i( {                }
5 h1 {0 m, W/ v' S4 `5 v/ r4 m        }8 ^5 y4 ^2 {' ?$ _* m
        if(status_a5==0x01)1 ?* c* j& G7 [+ w
        {" z0 s2 n8 d+ L7 N% Z" v
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);9 m- q$ N1 N/ Y* W0 z
                if(a[5]=='E')
  d: U5 ~! }$ c* Z* L; G1 ?                {
0 n9 A3 I+ e+ O8 T5 i* D8 }# U2 {                        status_a5=0;
1 z& x6 F0 \3 X, I; ]5 ~                        status_OK=0x01;
( Q% x; q4 t3 W                }* b" D' e* C2 M1 O( C" C0 N8 D
        }5 L% M* B- M6 L1 E3 C' V
            if(status_OK==0x01)
' y+ k/ `: D1 l1 E5 z8 o        {: r6 C' l0 g" `0 _3 \( v
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
9 l/ V, Z' S" O4 V! z1 X                        lengthrx++;, o+ i1 n2 H3 A3 {! u! x
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值): T1 V5 m& `. _- [
                        {& X( w9 }) i) g4 M! M9 b( ], ^
                                RecState=0x01;$ `( h! z3 k- r0 z- s" Y) n
                        }% b! `) k" g7 v7 |& }& \7 P
         }  h% _; i" ]- q

8 ]8 Y7 v9 o; M4 w6 p% u  {# l     }* n% C5 P7 S4 \; e+ {
5 B9 |  k& z7 E7 {) u0 R1 k/ o
    // 接收错误
) _" G: q5 B' H0 r9 `    if(UART_INTID_RX_LINE_STAT == int_id)
# h( a) t( E* E- l0 r: x( @    {6 r( K0 g7 W) A4 u4 Q- @+ ^+ f* Y
        while(UARTRxErrorGet(SOC_UART_0_REGS))9 V/ u- \1 A$ ~" N6 f
        {( F& D6 |: a+ t- g+ ^
            // 从 RBR 读一个字节+ I8 {6 X! `' D
            UARTCharGetNonBlocking(SOC_UART_0_REGS);9 N7 n5 G+ a6 ^. D* b' @$ A
        }& a" p  Y0 R8 H4 j/ E4 X9 Y4 V+ A
    }
- W' U" a8 \0 w. J' K) t, y
$ N8 d+ _: Q! V6 ]7 E3 T    return;
( Q* u& b% I5 `6 }8 k7 ?; J' H" N4 d}. k# S$ Y) A4 b+ |* N8 f6 Z; I

. v: e4 l3 W  Z1 x# o: E

% M/ G( P+ |* s5 T3 P1 G3 o6 ~. u  T3 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2091

积分

创龙

Rank: 8Rank: 8

积分
2091
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
2 Q1 B$ j5 U: D$ q7 Y0 ]# E8 X' J/ G# W
' t/ B" o" C/ t5 qUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
) b- w, k7 Z6 O; ^% K/ n
6 }" u- ~; F5 u2 x9 G( M" ^要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13( p$ z& R& i2 a% q, T
hi,
  K& k" @" u% o! g3 y, Q- U9 z& p" B2 P( X, U0 X
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

$ J" e( Z- }% U* K# o" kvoid main (void)
# j2 m3 \* V+ n4 S# Y1 U$ n{
8 G9 U5 a/ V- ^        int i,j;( }$ {) m1 o4 j4 y
    char *str_buf;- f0 d, P9 A( {3 r1 O
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];! k: U6 U! S+ X5 R+ M  c% b2 K
        double est_L_b_=0;) D, \) P) E5 a9 \( V
        double est_lambda_b_=0;0 f/ T2 h/ ]% i) M$ X8 w0 h1 V4 r
        double eul_[3][1]={0};& T6 E" T2 n% X# x1 G6 d# g
        double est_v_eb_e_[3][1]={0};
( H+ S  m$ }4 a2 ]        double est_C_b_e_[3][3]={0};) k+ S" D5 p" ]5 Z; U; W
    char *qm;
; v& d' I; j" v, t( ?% U1 R    char rec[70];, o  o5 O+ M2 k: {5 z, |- A$ w
        double L_b=0;% T- q$ D1 p0 t' M' f0 Y' n8 ^
        double lambda_b=0;
: i" t( w$ L4 D$ w. i" b        double h_b=0;
% \) S9 K' k6 t9 L        double rate;
7 g* K9 c% g; h- A& X7 g3 }# o) P) b4 x! B
: N# x# a/ ~$ c* B$ |4 o/ |
        // 外设使能配置
6 g( y! O1 I- \  y% p/ E! n$ `# m        PSCInit();
& {4 _' B4 F' |" ?
  K; H7 Y9 }8 H4 v2 w& O' ^        AppInit();- I9 u2 A/ G9 c, w9 {% m

1 Q2 d4 [0 ~9 K7 t3 n) e  C2 ]        // UART 初始化  c+ O6 Y# [9 }# a* b: V7 _
        UARTInit();
9 K: W$ x/ ~) ~- j) E% a1 e/ q! d4 ?8 T% C; c( f( t
        // UART 中断初始化( l. [0 h. A7 N2 l  T7 O
        UARTInterruptInit();; D- x  v; [' [+ d3 }/ G3 h
/ @4 G! e; C$ u& r
    evtRcvd = 0;
2 l' T7 d5 `' W) U" M, R    RecState=0;3 U  b3 H. B2 R0 L
    /* Initialize */& f; V3 ]% q) [$ a9 g
9 C; u) w8 A! }" I2 }6 A
    printf("DSP subsystem ready\n");3 T& A) Q# m+ t9 C, s
  O6 i  w* \% S2 v2 A1 R3 l: N" z
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
8 i1 N: R( w6 d4 M- \. k7 f5 m2 q' b+ j) d* t2 x
for(;;)
% B3 f  ]6 s! V0 W1 f# Q  |5 P+ v{% H, ~0 L$ E9 F& G) ?
        if((RecState&0x01)!=0)" R9 \  p" {) d* w  n
        {/ O  w- w* O0 X4 w/ l# E
                printf("liuzhenxing\n");
9 Y# y7 p: q' r( B- {3 s5 `, W) n  b        }
- b+ l0 i9 Z6 m1 V9 x  L        else8 s% ]. e) m+ B, R+ j" i7 N
        {9 S) k% ^$ w6 M' ~6 M; s( D
       wait_event();. w3 r9 ^6 Z; r2 W5 `1 C

3 Y: Z: j: ]' q& }, I           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
/ s" J, N5 Q% `# ~- @  B0 ]3 a$ `1 h9 o& H# F8 V( \/ S
           for(i=0;i<60;i++)
3 f. |- k* d* u4 D. B/ g) |8 x           {1 q4 n6 }, [5 d4 b
                    rec=*qm;- k# n4 f/ P5 r% S5 q% P: A4 x
                    qm++;
% O" U" [8 d3 J9 \' ]           }! W/ \8 A( ?* t" I# v1 ^
, a& p* c- j4 T+ ]# K4 D5 _7 |) X% r
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
" W6 `7 o) l+ n6 A0 [: o. u8 C* ?/ V$ X& u  x
           L_b=L_b_receive_double;, Z) S: E9 O0 J/ ?# o
           lambda_b=lambda_b_receive_double;+ x$ @3 K+ ?8 v/ R6 i# t6 Q7 D( z
           h_b=h_b_receive_double;
5 J. N; E" K: l- x           for(i=0;i<3;i++)2 C5 K. N4 N! u. ^6 J/ L
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
, Q( d/ Z( y$ _( n           for(i=0;i<3;i++)' d0 {6 Z/ e& D- ]0 V! N
                    for(j=0;j<3;j++)
  G; R1 O8 f# {- F" l( U                 est_C_b_e_[j]=est_C_b_e_receive_double[j];0 n( ^* k* ~% n0 L& l
: K( u4 z! J. E9 k: G" P2 R1 ]% r  ~! O
                printf("L=%lf\n",L_b);
2 g1 i8 _7 j6 O2 h                printf("lambda=%lf\n",lambda_b);
# j' y/ j: ?: k: `# p+ g6 H                printf("h=%lf\n",h_b);1 f" Z+ y# k9 i: a

0 j! A6 x! t1 ?% l) l* K                for (i=0;i<3;i++)
- s' V/ m$ @* g7 `3 L- d) s3 G                        printf("%lf\n",est_v_eb_e_[0]);; ^- M0 o6 B9 K1 Z( z, |' d# T, k
                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]);9 ^' Z2 s' Q3 q4 @) Q* i. z/ S
                printf("rate=%lf\n",rate);& A0 w" g: J! m0 j8 {$ ?
: i4 @0 g1 r+ c( D
                CTM_to_Euler(est_C_b_e_,eul_);
( k8 H7 w# O: R                for (i=0;i<3;i++)* b2 T# d+ U+ [, h: E  Q
                        printf("%lf\n",eul_[0]);" a( V. [0 ^3 i" D( q& k, D" ]
                printf("end************************\n\n\n");% r" V" ?$ ?& O2 E4 V* i
% g# F' V' x) f8 Q8 d% R
                /**********************************************************************/
! Z9 M& u0 ?! [5 p/ d7 W
9 k8 {5 `# G4 F  I2 e/ r            char flag[4];
0 H$ o( f4 \0 k/ g3 M  a. S) _4 p& r8 p  Z
            flag[3]=0x00;
2 S5 O& {7 z, c$ Q  k- Y8 p  H            flag[2]=0x00;5 X) y- K) [  g7 S8 @
            flag[1]=0x00;+ s" `/ A& h* R  q8 }# b+ F
            flag[0]=0x01;
* x8 o0 \% ~5 u3 Y
" {) G% ]- [- ]* p    /* Allocate I/O buffer and init with string */
& N, H3 A9 ~. Y! G  P    str_buf = (char *) malloc(80);8 X: `( j1 z6 S3 c+ i8 F) {8 @$ \
    str_buf =flag;
* k& x' K* z6 z) q/ m$ O4 m' e* q+ _! N5 V! [" C& F
    /* Send buffer to remote CPU */" E! I/ T0 Q2 d8 \; O+ c* j
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));# w, w$ O& ~  ~% q6 c
) t: o, G: h4 x' y
    printf((char *) myPayload);2 b; f1 n- Y- z# m6 C
        }) v$ Q. T( L6 V/ h* K) ^0 H2 D
}4 h4 g8 X) E9 \# c% k4 t2 h

9 p3 a! n5 x: {3 D5 M    WAIT_HERE;
1 e& ?% b/ {3 I- w}
% k, E8 J$ B3 o2 r0 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 | 只看该作者
我说一下调试的情况:+ h) |6 O$ _& T) J; F( s
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。; K8 d9 O& |1 @$ g: q8 w8 i
然后我把双核通信的初始化屏蔽掉,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
. M: c! E$ v- k$ L8 O1 psyslink 的初始化是否成功,notify 通信是否正常了?

- Q% C. h# c2 i  g4 K+ m8 ]. f1 e双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54& c! b2 ^/ f  [) B
syslink 的初始化是否成功,notify 通信是否正常了?
( G; j, y+ z! N
我用的是裸机开发的双核通信,用的是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
. |/ N1 |; p: q2 Y我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
8 K+ p% l- c8 f/ \4 c
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 01:47 , Processed in 0.048616 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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