双核通信的同时需要DSP核通过UART接口读数据 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。$ _% f2 [" A) d* q
我是在DSP初始化这不太明白。
2 u$ K! e8 _" E7 r, S4 a$ l& |初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。. ^- n$ b# u6 n4 D* c0 v+ C
; h+ w' e) Q0 y2 s; ]- k, x& @
; n* D& F6 H3 X' a: E, W
首先        PSCInit();//UART0使能$ V$ ~* X" y6 w# Q
void PSCInit(void)
+ i( r  G1 w- ^6 s/ `( @7 r( y2 V. t{
, G- y- \; e5 ?4 a4 ]# ?! {        // 对相应外设模块的使能也可以在 BootLoader 中完成" z, {8 k$ f& N; h- q
    // 使能 UART0 模块4 e& e$ R7 t1 p2 u- F
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);/ A0 @' _* K  V$ z- ^/ {
}# i$ m, Z; e# N

1 @# G6 ^& o( @; ~, p( y! ^! o$ W. G) k7 u1 k
然后是 双核通信的初始化           AppInit();1 Y' g! n/ q8 d6 Y  H+ K
void AppInit(void)
! D& H8 H6 B* P5 \- E, `{8 M9 q& y' H) n  U! U( i# ]7 y' ~
    /* Structure to initialize IPC (see Ipc.h for definitions) */
  J: C1 T  C6 p$ Z9 ~: I    struct IPC_cfg ipcCfg = {
+ S( \) f* {: K9 [- u  E& a            IPC_DSP0,             /* local processor Id */8 V& w* {( E  f! U. ?
            IPC_ARM_HOST,         /* remote processor Id */# C1 N' U& |& S5 x
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
- n3 l! E9 H9 ?            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
; G: n+ R+ N% f/ _            NUM_MAX_EVENT,        /* maximum number of events to be created */) c/ I7 [9 R5 A
            &ipcPvMemDsp,         /* local side private IPC memory */
& C* f1 W* e9 @# R            &ipcPvMemArm          /* remote side private IPC memory */
& `* M- N, I* ^) Q; K- P    };
: {9 {' V( P9 b    IntDSPINTCInit();
$ E9 L7 B! {* V$ F  [7 j4 ?8 s    IPC_init(&ipcCfg);
$ I1 e1 T% u( r. ^  {$ d/ Z* t    IPC_intRegister(C674X_MASK_INT5);
0 K" p$ {1 f8 K& p. N* j. l    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
. O6 O! q" Q. N+ U- D
2 I& S3 c% U4 M4 E    /*  Enabling interrupts for DSP C674x CPU */
1 D+ Q7 \$ T$ o& g$ Y* s    IntGlobalEnable();        /* Enable C674x global interrupt */5 F2 L+ D* Z+ }; E
    iAssert (Notify_start()); /* This will enable IPC interrupt */3 L0 F/ C# v' f- v! c& ~' ]" u
}
% j5 U4 g" I. d0 r

* ?  ~5 j( ]% i3 W" B, T) Z9 l然后是  
. J9 _9 Y# ]3 M8 D5 j0 [* u) s) r            // UART 初始化
5 j4 |  B" m8 l& b4 I: ?9 k; `& O+ y            UARTInit();' ]. u- b* |; _3 C& p( z( E% U1 v

0 W3 t# r2 y4 m% ?% r4 O            // UART 中断初始化$ W, x' x. N! @/ w8 W. k9 l
            UARTInterruptInit();
* h/ `, n' B, t. Z( l" L. ]6 R) M
6 J+ O% G# k% g/ a$ S/ q' I: o
7 i' ?7 \/ ]' b- `1 y
void UARTInit(void); F) o: m/ f; H5 _8 f' C5 H( E- Y
{
' g- n- P- h- k  h5 m        // 配置 UART0 参数8 p, ~3 d0 ^9 L4 m. J6 g
        // 波特率 115200 数据位 8 停止位 1 无校验位
$ \1 B% p. q" l    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
9 Q8 a& L4 l6 \6 L) O# d/ }                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
' c0 V) z$ P/ ?" w# S# c" b" `: k        // 使能 UART0, C6 L% i, ~& u- X: v& ?" X
        UARTEnable(SOC_UART_0_REGS);
2 w4 ^# y3 A( a
% B6 S7 d% a6 g    // 使能接收 / 发送 FIFO
0 T6 {- v* i! v& |& c2 i/ r//    UARTFIFOEnable(SOC_UART_0_REGS);
, _: x. M5 G  A5 @: t
5 ~- \  ?6 ?2 a, o9 X$ m        UARTFIFODisable(SOC_UART_0_REGS);
7 S7 n; j3 I7 Q+ Y  M) c; j8 I* F
; I0 |1 Q" ?' i    // 设置 FIFO 级别     接收FIFO的级别2 v9 P* i3 e3 Z& P
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
- p5 w9 W. Q; c/ _* s}
) ?+ j6 _# t+ j0 N6 t; J
. z) T2 C3 ?& ^5 a1 q

4 ~4 s" x3 U) _" k" m7 {& l5 e1 Qvoid UARTInterruptInit(void)
# O( f5 J* u9 l8 O9 a5 c{
5 ^* n( q7 p( H* \2 K        IntRegister(C674X_MASK_INT4, UARTIsr);3 p- l2 l3 L, {0 K
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
' L- W+ T5 S9 A0 a8 E' ]; X4 f        IntEnable(C674X_MASK_INT4);  N7 t" n1 y8 S# v  Q

/ R. A! [8 m) b4 {7 Q1 Y        // 使能中断
9 s8 n( H4 p$ j- X        unsigned int intFlags = 0;' l7 B' ?; R" v. s( x. v" R
    intFlags |= (UART_INT_LINE_STAT  |  \/ i2 @" [$ F) G/ D$ U
                 UART_INT_TX_EMPTY |    \
* k; I* W8 p  t: y6 j                 UART_INT_RXDATA_CTI);
, L  a( |  G4 y( y& z, r* N2 d    UARTIntEnable(SOC_UART_0_REGS, intFlags);
0 k/ W9 O" V  w! {! l! L}
. p; c3 ~7 z2 ]5 e+ d4 {8 w6 m- K

1 m# [1 ?" l1 q2 E7 }6 Q
) P) L1 B- {, Y1 l* b2 A4 E) svoid UARTIsr()4 B# [0 o8 l% T/ T
{
+ r+ W9 X7 `2 t+ T3 b( W    static unsigned int length = sizeof(txArray);" k8 d& K' Q6 S, j
    static unsigned int count = 0;- B8 f: o4 S% W
    unsigned int int_id = 0;' x  o( }, P+ l5 z5 H

0 A& M: y0 r5 y2 w% F3 }7 y( o8 p/ @# m$ ^3 p

9 R& h- s0 m# [1 ]" X8 G    // 确定中断源# v* ~0 ?' B+ F  j; k: C. o7 V
    int_id = UARTIntStatus(SOC_UART_0_REGS);4 _( v5 g/ P: N! V; A

/ d/ ?0 o- K4 f# T  n4 S$ e2 O" j- O    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
, q9 ~- X5 b5 t4 M
7 ?' N' Y, S+ _" e9 X' @' E' o$ m$ j* N) a6 C1 ]& a
    // 清除 UART2 系统中断# n+ Z1 o) y5 W
    IntEventClear(SYS_INT_UART0_INT);% _; q9 e' G+ t+ P: P7 x; ~
# S% P; ^  \$ s
    // 发送中断8 O, D5 P. p6 D- S
    if(UART_INTID_TX_EMPTY == int_id)1 \0 v8 E  C8 I, t
    {
, {+ D7 G4 \3 b) V8 E2 k/ b        if(0 < length)5 c! k9 w/ g. U
        {, r( U# v5 |5 a
            // 写一个字节到 THR
$ j- l8 a/ X4 }: S            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
( [+ \: X! a1 [8 b" }7 w1 l) w            length--;+ y4 g4 \/ z  y1 M
            count++;' U$ z: [2 a+ c) K, e: W% Y5 a$ v0 z
        }- _$ V2 t1 o; B1 b' Z
        if(0 == length)
6 z& \2 u) z6 c        {
, {5 ]) [7 F" \            // 禁用发送中断
; ^: Z! l1 x& V- ^            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);- F, g8 C7 v# W' [
        }
/ j3 Y* R# M+ x; F     }
& ]: N4 J: ?9 B6 x: {( ?/ c; F4 G) J: V
    // 接收中断
% X4 z8 H4 ?! T0 a    if(UART_INTID_RX_DATA == int_id)9 ~1 e8 e5 i5 i6 ^  O# Q
    {" r# u" R. Q$ R, v- O6 |
        if(status_a0==0)! b1 U. w. m: x2 K
        {
  m; z. |; b# p# B( q+ F                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 l# b" i7 s' t1 h0 f                if(a[0]=='#')
/ O6 B7 n* d' a( c                {
' b6 v2 V) t, z$ C' L' e                        status_a0=0x01;, \: c9 I- V6 ^2 ]+ ?1 z
                        status_a1=0x01;
% x3 Z) X9 c/ w# @" M3 o8 b1 v                }
$ i, u2 p4 d6 ?4 Y( p5 j        }9 p0 h4 Q  N: @; n( A
        if(status_a1==0x01)
, g9 \3 Q0 Q# \% u0 T) q        {+ g4 E9 f! S$ @" ^% D, L
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
! z9 p' D6 O  Z                if(a[1]=='R')( `$ _% ]  l* c. ]
                {. Q1 A  C( w7 Y: x, h5 C
                        status_a1=0;/ i+ K8 A$ C5 V) ?: K! C7 }
                        status_a2=0x01;
* A( ~$ Y+ y0 T7 }. g                }
( g0 {. C# ^# T. @8 Q        }
# X" Q7 y" y& u, j. L        if(status_a2==0x01)
* m0 u4 |" j7 o        {
3 Y2 z$ O8 f/ x; ~9 l, @                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' i/ t6 b0 H2 e/ R4 L" `8 P' V0 t
                if(a[2]=='A')
# x- S! k8 o% e, W6 t  G- V% v                {
- L$ V/ r/ Z9 e! T$ y                        status_a2=0;
' x% ~. ^0 j/ @# d* A. a9 a1 x                        status_a3=0x01;- M6 L- d& G( r7 g9 h; V5 d9 W
                }+ o+ g8 q9 {* ~) B7 F  [4 n" a
        }
* Y- W. s6 n' e7 \# u' P$ L        if(status_a3==0x01)( a8 \1 U# \$ Q" h0 d
        {' u6 V/ e& b; G  q$ T
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 {! x$ u0 _8 w) }% M5 U. D                if(a[3]=='N')
, ~& j( |4 U* W. \4 u3 {8 l                {
  l# k+ }( P( X0 W# _8 a) H                        status_a3=0;; v0 q" V( {) Q9 U0 x
                        status_a4=0x01;# a; U5 f1 R: @; Z# J
                }; B* L9 U7 p$ m* ?  a$ a9 ], X
        }2 `  |. E0 i$ z1 p9 {, ]; U* T
        if(status_a4==0x01)! r* I9 y9 o4 B/ o
        {
3 w9 c' i% x4 V% A: g                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
2 j3 [& g7 q% d                if(a[4]=='G')
  A1 V2 k. E# x1 F1 w                {
7 p. ~7 E( @7 K. n6 [; E, J                        status_a4=0;( s% D( l6 Q) G% b* @( }9 A
                        status_a5=0x01;3 w& J8 u$ G' x
                }3 d8 n7 J! a  X, k
        }
; }) _1 D7 C, ^3 K( I& v        if(status_a5==0x01)3 B1 s  d+ @3 G: i4 p0 L$ D
        {
/ P% j/ m, g  ?3 O* y. y                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
& I3 C" d1 O8 y) p6 p" ]                if(a[5]=='E')2 ?6 A: k6 _2 x/ ]) r0 Y% y' `
                {( D, R; c. d( x2 v
                        status_a5=0;
8 H* C4 \& b- K                        status_OK=0x01;4 L2 ]% {/ A/ r) z' `
                }
  r9 S, v, O9 n. ]  `& M        }) w: r2 x/ e' S' Q( [
            if(status_OK==0x01)6 {* E7 T/ k9 w. n; @8 F7 N" ^
        {$ L9 @# s# ]& {' N5 u3 j3 a: m6 \
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
# g- J- H- f% N2 |/ l                        lengthrx++;
; u- U+ ~! {; o7 B5 @7 E7 \                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
. w- V& X. o$ Q3 I" @                        {
/ r0 }; e+ T  S# k2 X5 n% K                                RecState=0x01;  r8 [* b8 ?4 U; B
                        }
, S( B' w! m1 X! ^  u; G. `; \         }8 n& A4 V& |: }/ R+ z

0 F0 x3 V# g: ^* ], d5 J     }# x3 C. y9 Y$ n9 D" I

) q% Z0 C3 o9 f) b    // 接收错误( c- N+ b& b' n) G/ b# F1 E
    if(UART_INTID_RX_LINE_STAT == int_id)
& q: }2 b5 d0 S6 H7 W; B5 A    {, k# I, o0 D! u+ d# s
        while(UARTRxErrorGet(SOC_UART_0_REGS))7 v: S' o' o9 M' \2 P+ \
        {. P& I7 `7 A& o
            // 从 RBR 读一个字节
2 y, D' p1 k- N* ^+ ?2 G1 E" g            UARTCharGetNonBlocking(SOC_UART_0_REGS);$ C% {8 W, l$ W& {; J0 [! Q; w' _8 d
        }
' g6 l, I2 p0 q    }
8 r9 p" M1 e- K7 G# _! l8 V+ L, x9 v5 C, w/ d$ Z& Q8 Z* S
    return;6 _+ w+ h7 a* {
}. W; S* m% X  K! O2 ]  K
7 D" G. N' |5 O0 s" }) ^" B# q
) Q# U& a4 R- e$ d  W# t! M

" ~, m8 d9 |! H5 m: r- Q6 H" C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
+ d2 [5 r8 I. b+ S/ t- n; x0 V; p# j. r: w0 f9 i1 z2 N& e
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
  E& m7 o& n9 K- t4 w! x8 L% |
- @. q0 k# k# q. Q2 [要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13" w7 T3 f$ L! ~5 \! M' z1 `
hi,
2 c" V# W3 s  ], u( B2 I& b- k  ^* U4 H, ?9 Y9 M, ]/ k
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

& h3 ~' I- w6 W, Q9 w# o$ ~# mvoid main (void)+ d% K& r. ^  [( c
{8 |7 d" z1 c5 l( x# `5 G" J" [- R
        int i,j;/ P& ?8 @8 [3 A: j* M% M
    char *str_buf;
9 p0 n# \/ t, G/ p; P    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];1 E, x$ h4 k0 T
        double est_L_b_=0;
/ d+ P/ |' V# H' |( t& [5 c        double est_lambda_b_=0;
7 A/ H, y* D4 ]        double eul_[3][1]={0};
+ m: d9 e' n  h7 [        double est_v_eb_e_[3][1]={0};, l3 E; {: D) B9 N# R# l: h% S
        double est_C_b_e_[3][3]={0};3 p- e& x/ q2 u$ C" l/ l+ b! e
    char *qm;
' v) [" ~& M* C# ?/ y9 B5 p, C$ e' E    char rec[70];
$ J3 _: o# t% v# f        double L_b=0;7 h' c: m& H+ s: b
        double lambda_b=0;4 i& P. R, o5 X% y$ d8 _/ K" [
        double h_b=0;# F* V/ c* Q; J& G& b
        double rate;
* o5 h: T' o& `) t  E* R$ W! \6 p1 c  w2 L: U9 V+ p. s) W

" [9 _! c" r- _        // 外设使能配置
2 J. l5 u# f7 c7 d* O2 f) q        PSCInit();9 D. L5 k8 R+ y

2 Z3 }  D- ^& N- i9 E" E        AppInit();
' y$ e1 _! {6 W
7 c+ [/ r4 c0 c1 C        // UART 初始化
1 E& Q, J" u% k% u, Z        UARTInit();
2 Z* g% X. S6 k2 l; z7 {
) _# \7 f/ o7 B7 A: t$ l        // UART 中断初始化
+ ?# p0 h- c, Q" T        UARTInterruptInit();2 Y' J  O1 h6 i; u. V% h! |
  c$ ]$ n% m. X: i3 {: o5 s9 Y
    evtRcvd = 0;& M; y) B" L/ y+ r5 m
    RecState=0;
0 F0 C& s7 P, H* I" n: A    /* Initialize */
+ Z1 }% L# K. `. T1 C4 e) n& z5 X1 e4 T) v# N; e8 S
    printf("DSP subsystem ready\n");. {1 U8 u/ p0 A; E: P
8 n* o- d& P+ e6 T7 U
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));& u& A+ D- A+ r& P9 |

. ]- s/ p6 @+ Qfor(;;)
$ H+ c: y/ E( Z. }4 `{' b5 L- a, V. D: Q- @' }
        if((RecState&0x01)!=0)+ G* F  C6 X7 b% J. `6 Z
        {
* u! z2 U) i2 ]3 X! O                printf("liuzhenxing\n");+ h- v8 W! ~1 V6 ~/ V& i3 t1 P- k
        }. V; r% ]0 O% b( _$ Q
        else
/ `6 y  @: J: s        {
, J  Y6 U, h3 ?0 c' m       wait_event();
8 D; `" \* V, ?" [  r# [3 ^0 d0 f# L" h( g
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
2 F' ^8 Q( }+ h2 k5 Y5 v* f& V3 Z% ?
           for(i=0;i<60;i++)
& V5 W0 u1 \+ e- J) C4 C5 M4 x3 B$ }           {, \6 \+ Y9 p& Q( a
                    rec=*qm;$ `: @: B( T, E) y0 f3 C& {! ?
                    qm++;
0 o# i7 X- m8 ^" W. L' e/ \           }
) m) n9 w- X* m, A- n- D
) x  j# m1 j3 v7 V5 y! B, A           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);1 o7 x  r0 I8 E* W1 S9 d  g6 q
) Q( g3 ]! N4 x* m4 m8 ?
           L_b=L_b_receive_double;
1 o1 z5 X( i9 O# k5 {  D           lambda_b=lambda_b_receive_double;
6 |- K& E7 Z1 k7 C* S           h_b=h_b_receive_double;& Z0 C+ R9 A5 M" D
           for(i=0;i<3;i++)
; E9 t6 v( W' u, p1 r                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];2 [5 t: M# P3 E" ^) u0 m3 F' b
           for(i=0;i<3;i++)
9 j& C6 h8 s" P3 K4 \                    for(j=0;j<3;j++)
* ]% i5 e; J7 q1 O* [2 B# Y( C                 est_C_b_e_[j]=est_C_b_e_receive_double[j];3 d3 M6 h7 k' w  t
9 W* {+ |5 C9 c1 |# X% r0 S3 v
                printf("L=%lf\n",L_b);
" e. M4 E/ X2 H; g. W" i- l, W, v+ X                printf("lambda=%lf\n",lambda_b);' Q. }3 Y: O. V( g  v
                printf("h=%lf\n",h_b);+ W+ L3 w# M9 \$ p) T0 ~: M

  p5 W" M, H9 V                for (i=0;i<3;i++)& ?2 U( l- \9 m4 V2 I
                        printf("%lf\n",est_v_eb_e_[0]);  \* I  o# H& B( P
                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]);
" _; w6 p8 {: s                printf("rate=%lf\n",rate);
! ~8 |; H" h$ \) |, U! \" H; z' L8 i3 _5 i
                CTM_to_Euler(est_C_b_e_,eul_);
- N9 D0 `) [5 ]% f. [                for (i=0;i<3;i++)5 b( C1 _, ]' y1 o
                        printf("%lf\n",eul_[0]);
6 L& J& r1 h" F3 V1 U9 A' S0 k                printf("end************************\n\n\n");
/ R& e9 C% U7 v0 }2 U* a! @; X" ?0 g% K0 o: r. H; Q
                /**********************************************************************/
  B* w. p6 s9 F+ X
" F' x4 ?, F: x1 @+ a: L+ _            char flag[4];
! y3 i& m& e) b- S/ R- C( a- X1 S! A( y; B) Q) n# o3 g
            flag[3]=0x00;
8 {9 {& m! I  z& i9 U            flag[2]=0x00;
& b4 i, T- M6 b* ^% a, h            flag[1]=0x00;% D  T- D, ?! i, C  O
            flag[0]=0x01;
5 c1 o2 w, y/ T9 V7 a* D( T, E0 e7 }4 c( C
    /* Allocate I/O buffer and init with string */
; i8 q6 p' J7 k8 G1 e    str_buf = (char *) malloc(80);
5 p' C2 D; `5 R& H" N" a+ r' X    str_buf =flag;* p5 e# ~+ b% K6 ]5 P6 i
5 C6 ^% D4 Y$ D/ h; f
    /* Send buffer to remote CPU */
, F+ C! a+ e; ~2 ~" ]3 |    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));; o' k6 [, s& }7 D) [. t& E

9 m; k' N$ x$ U  e$ Z  K    printf((char *) myPayload);( M7 `; X- Y! j2 Z( `
        }" k; I. R1 t  d/ `& w! p2 [7 n0 K
}7 |  K. j4 s7 p! m3 d/ |
+ [7 ?. d& O* e. D
    WAIT_HERE;
6 ?2 B) V, s$ s, s# s}" J$ x8 d* _& w0 G' A
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:, z3 U6 ^: t9 G. E
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
4 C1 o! L& h: y# e7 ~然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2165

积分

创龙

Rank: 8Rank: 8

积分
2165
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, K, g0 i% h' Q, W5 O
syslink 的初始化是否成功,notify 通信是否正常了?
$ v  F" K* V! l, c
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
) w' ^6 C/ Z& dsyslink 的初始化是否成功,notify 通信是否正常了?
: Y& X+ \% P- K& x" O6 x* F7 F
我用的是裸机开发的双核通信,用的是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:206 ^7 _$ M5 m# d8 B* y) t& Z
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

9 P4 a- a% B0 o: v! l建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-31 08:11 , Processed in 0.053689 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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