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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。7 v3 x" p7 @& O, J+ a& J- r
我是在DSP初始化这不太明白。
6 @$ r) c9 v" r/ Z1 C! T! h  ^初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
+ j5 Y1 c( f3 H9 j3 m
/ k2 U) S4 V9 |' n4 e( ?  ]
, b9 v0 v1 l: c& L9 p$ |) \# @首先        PSCInit();//UART0使能
) `# P4 P  s+ V2 y+ E# pvoid PSCInit(void)3 d9 P( _1 c* ~/ @' O0 _; X
{' f9 `  p$ g% C
        // 对相应外设模块的使能也可以在 BootLoader 中完成
  k* t4 j: X& O% m$ b    // 使能 UART0 模块* T5 `  f+ B% j  h4 Y) P2 v* W. _
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);* }+ [( }1 P! a; @4 E* f' n) a8 y
}
- r, s. B7 N0 g& Z/ f" [

! H) `" Z- d+ Y: g; W" Y% `' g* X  I) L- Q0 Z2 O9 W
然后是 双核通信的初始化           AppInit();, |; h& R( @' l7 z" D
void AppInit(void)$ s% S* N) o8 P' n
{
: F( V% i: ?/ P5 f- n& W    /* Structure to initialize IPC (see Ipc.h for definitions) */
3 b( n$ H! n# ~/ t    struct IPC_cfg ipcCfg = {
$ n5 j0 [4 d0 y! |            IPC_DSP0,             /* local processor Id */
2 M( \& j0 W9 c; S/ U            IPC_ARM_HOST,         /* remote processor Id */: \' t  o; l) d6 V0 a  k: _* P
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */. ^4 {2 Y3 t9 |5 |5 e' f/ b9 d* Q
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
' z% o5 C  q4 y# _3 ]+ y0 z$ S            NUM_MAX_EVENT,        /* maximum number of events to be created */" I* {6 ]- \) Z
            &ipcPvMemDsp,         /* local side private IPC memory */
" N7 o4 L6 C7 n" x# B            &ipcPvMemArm          /* remote side private IPC memory */4 r! q9 ]; X; O% B
    };
) K( n/ b  y9 \" A: ?: `9 n  ]* H    IntDSPINTCInit();  `9 i6 ~. a1 f
    IPC_init(&ipcCfg);
$ A* n+ V1 Z4 p6 j2 p/ b9 U! {    IPC_intRegister(C674X_MASK_INT5);
% a4 ]( b- S( Q9 _& L7 t* V    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));9 f5 ]# x0 o% V6 F/ f& p
- {& [0 g; B7 n
    /*  Enabling interrupts for DSP C674x CPU */
9 ^% O0 E; y, h& m* J7 u% m    IntGlobalEnable();        /* Enable C674x global interrupt */
0 B9 I  J$ L9 i" L1 v6 i6 H0 y3 U( v    iAssert (Notify_start()); /* This will enable IPC interrupt */
; A# ]. a# k, c, S. Z}$ C$ [, @. K% e1 w6 w5 W. g
& [2 Y# {6 i! d$ v; b8 v  Z
然后是  
9 h( n4 V0 c* R; r9 I0 d            // UART 初始化% }2 n! C, [5 f- z" }
            UARTInit();
6 {& B0 {8 X) @1 u+ X4 n/ O) _1 @5 C! m3 u) n! _( Z
            // UART 中断初始化
  s" w: r' V/ r0 k1 U            UARTInterruptInit();7 T+ U- ], p9 v

* Z. O/ v3 ]. i/ R* ?  ^2 x! v  G7 x: j( d4 J/ L
void UARTInit(void)
* ^* X* J8 |! |9 D; X' a{
" y7 C" X) a% k; |4 d7 ~, O        // 配置 UART0 参数
# ~5 U% f9 J" ?( v        // 波特率 115200 数据位 8 停止位 1 无校验位
: F. R+ L8 P  t    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,* q4 J' e. b7 y% ~
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
: w, {1 g: k% E( e$ k        // 使能 UART0, ]2 L3 _7 g4 G5 O5 I# t
        UARTEnable(SOC_UART_0_REGS);
; F( [4 Y0 d& Z( b( Z) U# f. [! ~/ e3 e- w6 ?" p3 d3 x* G
    // 使能接收 / 发送 FIFO
" Y- d; ]( s1 `/ Q//    UARTFIFOEnable(SOC_UART_0_REGS);
" V# p$ @& a- v0 V( D8 a- Z$ y8 o) k5 i2 q/ r9 x) F6 L
        UARTFIFODisable(SOC_UART_0_REGS);( U- a0 I, S6 E- t' B0 {

) o$ i# @; X4 J' x    // 设置 FIFO 级别     接收FIFO的级别
6 p( W- p- X  W  N* [//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
$ |8 `7 Q1 t, Q& P0 T% K9 Z}6 t7 l# z% e" \# a, z
  O  O3 ~1 M5 {* M- E2 Z

# s+ l. h; r5 D2 ?void UARTInterruptInit(void)6 U2 x* W* M  n0 X3 j0 A
{
# \4 M7 x! l7 t( b& ]- Q/ W        IntRegister(C674X_MASK_INT4, UARTIsr);0 b4 m: J% t, L; I! g- q
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
( m  {. q3 I( O) h        IntEnable(C674X_MASK_INT4);5 a5 g3 @9 W  ~7 d' I& r

' @6 z. g7 t) L/ v$ R+ K        // 使能中断
" b! K$ ~; o' g. d% f        unsigned int intFlags = 0;8 r+ N: `, O6 y: b" F0 v
    intFlags |= (UART_INT_LINE_STAT  |  \
3 @. F& m9 J5 Q! U& |                 UART_INT_TX_EMPTY |    \
% G% f' w4 ]  Y4 p                 UART_INT_RXDATA_CTI);
6 J7 I( N, K+ C* e- M; K    UARTIntEnable(SOC_UART_0_REGS, intFlags);, i; @% Q1 ?  O8 q( M4 w: {
}
/ w; }6 X$ }; |6 o+ E  Z

- X8 h; O1 M( S5 b, f' L$ A$ X
3 ?; n( h" S5 ]void UARTIsr()+ B* D* [) e) a
{/ H; t2 K& A) |  j* K
    static unsigned int length = sizeof(txArray);& @1 C. L- a* U# o
    static unsigned int count = 0;
; Q5 o& n) `: n! x/ w    unsigned int int_id = 0;
( O) m. _  O: W0 Z4 W& |: p9 ^9 A! o: ]9 i# k2 D9 _

3 f5 i+ Y3 }" R. u2 v& K! C+ H
7 p: ]* h" j( h+ ?7 P    // 确定中断源
* z* u  X/ y6 Y  Y# c/ o; C' i    int_id = UARTIntStatus(SOC_UART_0_REGS);
) {3 Y1 b* d+ G* z9 M/ f+ h
0 \* R0 X3 j; M5 x; i    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。& c8 _4 c. e+ V% ?1 @+ M. D
" b2 E( w! z3 w( }4 L
1 g: x8 ]" a/ H7 b" B, z' a9 ^
    // 清除 UART2 系统中断9 ~; d2 m2 ~4 Y3 e  J8 z0 i. G
    IntEventClear(SYS_INT_UART0_INT);
# E& f( T( @4 s* a+ p
% i4 s* |0 r7 p4 L1 j2 Q9 s) r    // 发送中断
9 H5 D: Q9 D1 e* z6 O6 g6 d  o    if(UART_INTID_TX_EMPTY == int_id), x. d4 i/ r- A4 Y
    {
7 x, v! i# ^: ~; ~/ }1 o  a        if(0 < length), n- U5 N  L; t% {
        {2 Q/ {$ _! u) }
            // 写一个字节到 THR
& K2 A* |7 m$ s2 E            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);) A8 _1 C& W, W5 {# Z
            length--;
$ R8 o$ u" E2 Q! J            count++;5 R  N  B( \& x5 I
        }
& k2 H* V- A1 p: ]* Y  J) t* b        if(0 == length)
  s4 x/ k- J  Q% O        {& B  q  |, y$ ]1 N# f
            // 禁用发送中断
9 F7 e# G+ H, d% W+ d  D0 x+ r: L            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
4 Y1 E$ k" ?, e5 E  `        }
. H/ P9 g+ e8 |     }) J3 c, [: K+ \  b7 `5 K

1 V( t& l5 Y' Q$ B; g    // 接收中断! N$ y+ l- Y+ N& x9 S; o
    if(UART_INTID_RX_DATA == int_id)) ^4 b/ R- l. l1 h- ^# |
    {
3 a4 G; s1 g9 d0 h& P( g        if(status_a0==0)2 D  m& t; P& Q/ y% c9 L7 K
        {
) H9 w/ E- r! j: l5 r8 K                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' \/ T( b+ ]9 X- Y7 n- O$ ]# W
                if(a[0]=='#')  X% `, @) q# e: a* L& \
                {& e& |3 b( W2 D/ T, a: m5 P2 @
                        status_a0=0x01;
' P( H3 K; @' @                        status_a1=0x01;' N% |2 ]! y2 A! u
                }$ ~2 n+ f  j0 l
        }1 ~# h) u" ?+ q, v$ P
        if(status_a1==0x01)" p3 c( ~% D; v& d
        {
3 k) v4 k; h" K: l                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, f* v! o( r& Q) s  `                if(a[1]=='R')- S& \* }/ T& X6 L1 B! S9 R$ w0 F
                {, }; p+ M% b& H. @8 S/ Z
                        status_a1=0;
% {) L- |9 w8 b. T' i8 Y2 S/ G, u: e                        status_a2=0x01;
8 K- j7 {) K4 V/ t  t' [/ g$ z- P$ W                }( s# i+ h* y) A, L2 p+ k
        }
/ L0 _0 N  k, X# c: {- b+ U        if(status_a2==0x01)
0 k) {, R& U6 K0 c& O5 V        {
! L6 V' X# z% ?, U) ?. @                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 x% Z9 r. S7 |, K6 K                if(a[2]=='A'); _, [# [3 B! d3 k" H
                {/ j2 S5 |7 H  q' c- n* I1 v" \
                        status_a2=0;9 \& l! @) X$ T
                        status_a3=0x01;
* o( K2 K- p  P* j- e+ J8 M                }. T, ^7 i9 @5 M- K: A! Z2 b6 u2 V
        }6 d% S8 n+ O3 p6 C+ A7 u
        if(status_a3==0x01)
- L9 C- ^: J' v. W9 l0 ?0 {/ ?        {
* \( R) P: n$ G  f3 n                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 R: h2 ]4 n  X+ J
                if(a[3]=='N')9 F+ ~" V/ ~3 E, v# s* Y9 f
                {9 }: q+ ?/ K. _% L- x
                        status_a3=0;
" i5 [1 a- o8 a, I4 o1 F                        status_a4=0x01;1 E/ ?4 i8 |( ^
                }4 V8 f. S. A/ ~- ~( N
        }
0 s1 G! A: R4 Y  r& B. n5 k        if(status_a4==0x01)
0 l* r& Z7 N1 Z$ i        {
) w/ G$ O& r9 U, @' }+ S                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 E, M% i5 P  O% H                if(a[4]=='G')
! B3 d4 E1 `9 Q% ^6 ]6 R  i7 b                {# c5 D1 Y, t1 }3 f/ L1 Y- d
                        status_a4=0;% M5 ?; b" W5 P6 v
                        status_a5=0x01;  J$ L2 k9 `' F  \- p5 J
                }. ~7 Z. h3 {3 A% u; ~
        }2 C2 e3 b1 E( H8 n
        if(status_a5==0x01)
. d# Q* X7 E- c  ]# ~/ c        {- [9 W" y- @  Y/ z
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);) C, ?& n2 L! c  H
                if(a[5]=='E')
1 D) I/ I4 \( m; p0 o0 Z3 c                {2 P3 l7 U- Z- x/ H3 E
                        status_a5=0;
" R9 j0 |9 _! U' X, ?- l8 ^9 K% S                        status_OK=0x01;* Y/ J8 V' X4 q% j; ?' O
                }
+ v4 H5 y2 `% i        }
. L% D1 L! Z# @            if(status_OK==0x01)
5 M! {3 S9 H  X; a' G. \: g" ~        {
# B" _" _2 b. a( C6 z                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 Z: s; z9 b% M( |3 Z) j! W7 H! r
                        lengthrx++;
- v  ?# d: V7 D5 u' \2 G, T                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
" d) z1 p1 y3 r" i5 j$ w( j5 S                        {1 u' C' B) n4 D% U" f& w$ s
                                RecState=0x01;
) `6 p- ?  Z1 ?7 k                        }% g1 w4 M5 u; R2 ]" p% T4 k2 X
         }) j  M8 l" D5 B3 R7 N
6 Q9 p6 t. l/ E' q# _& G
     }
% B! j0 w4 Q+ b$ d" c: ~$ Z2 O  [9 D* U. x$ M0 Y8 t
    // 接收错误
4 I) n0 K7 Z0 d3 k# |* T    if(UART_INTID_RX_LINE_STAT == int_id)
2 X. K  q" q0 T* s" f    {
8 y8 h! [7 l# h4 \( Z% d  U$ E9 y        while(UARTRxErrorGet(SOC_UART_0_REGS))
/ u$ ^: f, ?( ]- I; v& {$ u        {, n. \7 {4 b2 y! Y; `" V! A
            // 从 RBR 读一个字节7 L, d: \  C* |
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
1 ]) [& E9 Q2 Y. {        }
; I9 Y* _0 x" n+ D- Q    }! a2 K# v  C4 v( s. F. Q$ n! x
7 N/ _% T9 [5 ]( t# X/ C. j
    return;8 M! p, N+ \0 r8 @& g
}) V  H* n5 c: X- [' ]) j0 w

5 ]. W+ h: B$ @4 c! Z, L2 H) r. w
6 _6 q% @7 n3 L' s

2 ]8 S& e6 E9 D; Q5 t* o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

积分
2121
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
2 a6 v( L7 l: q4 D! _! s
9 U) c3 |( Y0 t* [UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。! c$ k7 C9 n& C9 K" }7 {) v) z& U
6 F2 v2 r+ t! x, H2 }
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13$ k/ ]% g8 k8 R/ C- S. \5 i
hi,
3 i0 f1 u; w% v  i% c  v0 L8 Q7 h" w; ^" C1 p2 }& b
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

+ [4 R: y3 w7 c: g6 H* xvoid main (void)$ _9 w+ i0 P, q5 t# C
{4 s3 Z& X- T$ A, c
        int i,j;
; I- o; M4 U* f' j# w    char *str_buf;0 {; f& v1 V' W+ h. b6 e
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];5 _4 {# b1 U: h+ u/ }6 x# C4 _
        double est_L_b_=0;4 Y( ~- P2 D. O
        double est_lambda_b_=0;
, ~8 W: H: D6 l7 S9 R        double eul_[3][1]={0};
: b# l8 c$ H# K" c        double est_v_eb_e_[3][1]={0};
* E/ b. Q0 R- W" `; r        double est_C_b_e_[3][3]={0};
/ f! b7 B2 ~8 a% U! K# P8 n    char *qm;
* H8 p' i" O% A& x  U6 c3 P    char rec[70];
* k' S/ M# B6 m: w0 K) {        double L_b=0;
; s9 |% E9 U- s% L- e        double lambda_b=0;
% o5 a" U7 z* z3 x. @" `        double h_b=0;7 E2 e$ v) d+ z$ g: ?
        double rate;
0 k5 |4 D( F4 X. I
5 t' S( A- d' \, K+ ], g, M* D! a: N. y+ A+ c
        // 外设使能配置
! V3 Z5 z. n: X% u" |        PSCInit();
; U% e4 Z: F0 C5 [. _* S$ i3 X& b/ e
8 ?9 u1 Y7 \0 X& {. [3 \        AppInit();  h" h: A( k+ h) p: P$ h8 S

; S: j2 ], A! y- J; ^' H+ s6 U% b        // UART 初始化& W" t3 v0 P8 X
        UARTInit();
* H) T6 H) n1 ~3 M7 t! e
- t8 C) I* S) y        // UART 中断初始化, g  V5 O5 r: F/ ]* ?" m
        UARTInterruptInit();* D! n! @: l8 t! n. v0 o

9 B: z% S; U3 k    evtRcvd = 0;+ @, Z2 A  M. U5 g, u+ A
    RecState=0;
6 _/ s/ |0 h& v% |7 n    /* Initialize */' K3 ]7 L+ I' {+ t) o1 p
5 _3 k$ O/ Y9 `$ j; X- S. E
    printf("DSP subsystem ready\n");
4 F5 f1 U1 {- n- }4 O  u
/ ^9 X: j: I, {9 j" ?    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
& o8 x( {1 {/ M/ ~; F
+ \8 ^# m5 D" lfor(;;)
* D" |# C% n9 [3 L{
& v! X7 `# h3 g$ y$ v1 ~        if((RecState&0x01)!=0)
. G5 x; h; t# v/ W' x: g6 x        {
  o2 y# ]4 s9 b& q0 }5 a0 H. _                printf("liuzhenxing\n");
% p% M( u# d* T! `* j7 X        }( N2 [2 T+ n; Z, N
        else7 H2 X! t9 u5 B! W
        {
5 t3 B1 G8 t8 {$ `( Z, t; G       wait_event();
3 S% m( D# m2 ~& {9 a
; p. {4 d+ D  Q6 K1 D" ^( w  }           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针: t# }6 K% Z6 a+ d. k9 Z' V, J
+ h, j! F% d# z9 g9 E
           for(i=0;i<60;i++)
; n# t) @: y* A; [% Y1 @           {% d- L2 ~; u: G) e3 n4 O
                    rec=*qm;
1 m8 m( [1 p1 u' [4 M                    qm++;9 B& B! N$ \: \" U) `3 H3 I
           }
* x6 X6 S. W' J1 u
7 ]' ?/ t3 \; T$ f( R/ I           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
8 z5 t3 c- K# }% M; h
. X1 e) v1 K' l: r- M+ z           L_b=L_b_receive_double;
8 A2 n+ w/ W7 e           lambda_b=lambda_b_receive_double;, Q- z# J' c! b
           h_b=h_b_receive_double;$ O0 M/ z) w1 x% f: ?
           for(i=0;i<3;i++)# \/ x% _- q  C& _4 r2 T- C" @3 P
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
! O* ?6 h+ h, \. d5 Y$ Q           for(i=0;i<3;i++)
& [+ ?! {; X6 ^* U                    for(j=0;j<3;j++)
9 x  Z. g$ ?4 I8 {% a5 O                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
1 b9 }5 h/ _, s9 w$ K
/ D. @( ?1 N5 p% c! c8 ^3 ?! A6 s* J                printf("L=%lf\n",L_b);
# a: Q! Q8 m' D                printf("lambda=%lf\n",lambda_b);
0 G) G+ `5 U" t$ R+ C7 C& y                printf("h=%lf\n",h_b);
1 \7 J' n3 [0 d8 }
: @% d0 a' U# z4 G7 }                for (i=0;i<3;i++)9 j- R, K8 ?$ b2 p( @: ^
                        printf("%lf\n",est_v_eb_e_[0]);( J; {' b* D- J( ^7 L% c6 ]
                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]);& y: b$ W) a8 ^3 m, a
                printf("rate=%lf\n",rate);5 w9 c+ S3 j, u2 r" S+ l8 k1 d
7 g. I1 s* [; W3 N0 h
                CTM_to_Euler(est_C_b_e_,eul_);- a/ z4 }. f- n! m9 |. B1 q
                for (i=0;i<3;i++); H0 {- c8 s% s1 I8 B
                        printf("%lf\n",eul_[0]);8 F5 w: x7 v- z) u; u8 k
                printf("end************************\n\n\n");
: |- Z3 U7 d4 x3 m9 j
, O$ [) g4 H$ f& n. l                /**********************************************************************/  o5 \, D! f! s4 o
% c7 O) G  F3 k  Y6 K; ~  c: f) q
            char flag[4];
& E8 ?& O7 N' {$ {, [! M, j, Q6 L5 b7 B% F% [# T. o
            flag[3]=0x00;
0 ]' [! ~! A5 @            flag[2]=0x00;" y4 ^: o% S( h5 t. A. V2 D
            flag[1]=0x00;
. ]6 a$ o" F1 W  B! C4 V1 V            flag[0]=0x01;. N  _& |# W  x3 M8 R% n2 f

, u0 v7 y+ o1 m3 J1 m    /* Allocate I/O buffer and init with string */
, i, V$ Z8 k" t    str_buf = (char *) malloc(80);! K* Q# f* O* c$ ~
    str_buf =flag;
6 ]9 S0 u' j6 Z* \9 z% D5 i
/ u8 Y+ |. n( t6 M    /* Send buffer to remote CPU */
$ n* k6 Q3 A, s9 X0 c. O9 i) v+ e8 U    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));, r; x- P" L- {  V6 l* n! \
- W. Z) L  @. K. f3 ]
    printf((char *) myPayload);1 q" _  h9 R) S8 r$ I6 v
        }* v; P0 k* ?+ K4 M$ V* y: @
}) O3 Z9 g! |& g

' P  r( W( v# T3 A6 @* I8 k    WAIT_HERE;
/ F1 a7 J& `" i}
8 Q; D3 ^; I" r% V4 c
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
. j! t6 P, n! p" i, m6 S" j7 H" s我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
* p7 s8 n% t2 {6 V# B1 ?然后我把双核通信的初始化屏蔽掉,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$ ]# t' b2 b5 {( v& ~
syslink 的初始化是否成功,notify 通信是否正常了?
& v+ N; O- L/ X
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:542 R; ^6 Z7 m  B
syslink 的初始化是否成功,notify 通信是否正常了?

3 I  w9 C4 L1 L+ A1 u; P6 i我用的是裸机开发的双核通信,用的是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- h5 y) A6 |  G# r  c  o
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
; ~* {% e1 c0 v: X/ m1 U
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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