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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。$ X2 d0 C+ z4 H7 D* G
我是在DSP初始化这不太明白。. Q& {) y9 b1 h) ^) H( ?
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。2 r# l8 v" `( Q/ E

9 u, K. q/ ^  _7 A( j/ @8 Y) \7 {, H- ]: O2 D& @! V" s
首先        PSCInit();//UART0使能1 ~; j/ |" Z3 k$ M
void PSCInit(void)
+ o3 l' ]' p* w! t4 l{5 M1 B& Z4 s3 R, l" X
        // 对相应外设模块的使能也可以在 BootLoader 中完成! f$ }2 S0 b; k# J% g, k6 w" Y9 w
    // 使能 UART0 模块! r1 z& R) z* Z/ E) ~, l+ n. ]( Z
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
7 L0 V) U+ F  T% ]# V}; r% [+ n5 Y6 J0 |  f

' e5 V$ K3 ^% E; A2 K. ^9 q4 D& @* i, [1 n  H2 Z
然后是 双核通信的初始化           AppInit();2 M5 z- P. f% `, E+ G
void AppInit(void)
1 n. o6 X9 }4 Y. ^{' z" X5 v- A3 s( J% P
    /* Structure to initialize IPC (see Ipc.h for definitions) */+ V% E8 c; C/ |1 F) Y+ i  `' t0 d
    struct IPC_cfg ipcCfg = {6 y9 t' I  S- |0 k7 m! q- e
            IPC_DSP0,             /* local processor Id */4 U' {5 H" g, K$ s- x' J
            IPC_ARM_HOST,         /* remote processor Id */8 J( h" z. F! i" ]9 h1 M5 w
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */- ^& s* U5 s$ f- [  d2 f& a3 U" o+ E
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
* v9 B4 F* p0 j% V  k            NUM_MAX_EVENT,        /* maximum number of events to be created */
: l' D, I0 L# o. x4 N; p1 k2 g            &ipcPvMemDsp,         /* local side private IPC memory */
2 r+ t* b  o0 o8 G' O            &ipcPvMemArm          /* remote side private IPC memory */
# O0 d& A$ g( z9 K' M    };
6 |8 C1 g7 V8 B0 O* e    IntDSPINTCInit();
, w: N+ K7 ]* z5 x3 `    IPC_init(&ipcCfg);* c% {0 ?5 X9 J  r/ y0 H4 m
    IPC_intRegister(C674X_MASK_INT5);" _& X7 e6 X3 j1 T  h
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));  ]4 X9 t8 J* o/ [$ {. e( X
8 F+ f, u- e! |6 E1 S2 D2 D* V! H5 ^
    /*  Enabling interrupts for DSP C674x CPU */
' _5 z6 }& k& R* m# V$ e5 c$ [    IntGlobalEnable();        /* Enable C674x global interrupt */
( r( u7 m, l' p1 ^$ V* t0 p8 Q    iAssert (Notify_start()); /* This will enable IPC interrupt */
3 p8 e5 {9 e; e& k9 q}
3 }$ o, y  L+ I  S1 n$ g3 M0 R
1 j" }9 T. e% ?9 }' ^/ g8 P" C2 l# p! W
然后是    G" y2 R9 Q9 Z- o' k) X
            // UART 初始化
& d7 V- r+ ^! v# J5 q$ q, B            UARTInit();# E' g! d9 [( S
$ L' Q: q& m# z2 Y" F6 b. c
            // UART 中断初始化
# P# @  J  t) [- `( e            UARTInterruptInit();
9 d: {0 h% a$ Z  [$ y

$ r( m8 e- N( f' i
/ v9 Y& \* ^1 t5 H; ?* N! [void UARTInit(void)
6 s  W8 R5 o5 X, K( T{
& B8 G$ t  W; B; q4 k& N        // 配置 UART0 参数" z4 f. U# j% M$ z6 @
        // 波特率 115200 数据位 8 停止位 1 无校验位# O( a4 c# F/ a/ b8 N1 ^3 m
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,8 y5 y" V9 t2 D9 E
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
1 ?- w0 G# x' O2 Y+ S" h. d        // 使能 UART0
6 X! O; T& x& \0 t3 `        UARTEnable(SOC_UART_0_REGS);
' Q1 O- e6 S7 ^; w
+ N$ U3 b/ f3 o4 h: o1 {3 P    // 使能接收 / 发送 FIFO, H0 T* x% N0 Q$ M/ q# o5 ~0 H
//    UARTFIFOEnable(SOC_UART_0_REGS);
# F) V$ {8 s! a/ |( z9 ~! L
& U  Y0 z' `2 M7 G1 X4 }        UARTFIFODisable(SOC_UART_0_REGS);
9 C8 [( m2 b0 i4 d% T& @( l6 ]) C; s6 X9 Y
    // 设置 FIFO 级别     接收FIFO的级别! x" F! a4 K. s& u$ _
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
( H7 S) u- \; V8 f+ w}3 m% x% n. O9 y5 R/ c

: K6 M3 W  j: S( I& b: ~# Z( P9 h# Z& V
void UARTInterruptInit(void)
, s3 D+ @5 C& f1 U- @! @{
% @" M' e4 f: B* g$ K) B        IntRegister(C674X_MASK_INT4, UARTIsr);# y1 J3 T# P% y3 p9 C
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
+ C) c) p# N* l4 X5 O0 S        IntEnable(C674X_MASK_INT4);2 i' _' h1 B2 |
/ I; z2 n$ [1 h( ~, r% q2 z- \& u4 I
        // 使能中断
- B' O: P; F8 D1 S        unsigned int intFlags = 0;. l5 @3 j# E3 q6 \4 ~  q
    intFlags |= (UART_INT_LINE_STAT  |  \
4 r( Z3 ?6 |. @7 a- |. {' b                 UART_INT_TX_EMPTY |    \& N7 ?- p  d1 u. J& t
                 UART_INT_RXDATA_CTI);
8 N& U. b) E0 ~* H; C; W( U    UARTIntEnable(SOC_UART_0_REGS, intFlags);. V! X+ S+ B* w: ^! w
}9 S2 w" c- u& a. Z: s
$ P. i& _0 m4 ^2 O$ y

4 p( ?) C9 o1 Y  G+ N) u1 `void UARTIsr()+ Y) r" B7 H5 U, F# Z
{
) }" e) F1 {4 {( Z. s$ M    static unsigned int length = sizeof(txArray);
) v$ i. e! _# R% k* S    static unsigned int count = 0;. t* m3 W; c- `# a
    unsigned int int_id = 0;
; ~; @7 a" {( n' t5 x3 I1 Z
& M5 A3 [* U& X* }* `  U/ Z/ _/ }1 y$ P8 Z
5 {" U2 n% ]3 e7 h& d
    // 确定中断源
) N. t& v5 L# q% i8 m: `    int_id = UARTIntStatus(SOC_UART_0_REGS);7 B+ B9 v2 _/ S3 f  G3 s# u

0 m. f( }$ E3 q8 g* w    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。' ?; v2 v7 z8 q7 |' V
* n9 N( J/ `; p% `/ Q0 R& Y9 X
. v9 H. @% R3 e8 {9 p% x) D
    // 清除 UART2 系统中断
" T7 [7 D! E; ^, A1 Q    IntEventClear(SYS_INT_UART0_INT);# f) W8 T) D4 [# K
% h  T# |1 z  I
    // 发送中断( j! W$ m3 }, Q: Y* u" U! n
    if(UART_INTID_TX_EMPTY == int_id)
. A  y7 M- g  [2 J& {! ^$ h    {2 w; C: t! H0 Y
        if(0 < length)
- T$ n4 E$ u, A+ U6 @5 V" ^        {  m7 R1 E& _7 c6 S- o: v# v
            // 写一个字节到 THR3 l1 `4 g3 q" r: ~
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);, t  S; X" |* L* p
            length--;4 c8 T8 A$ ]1 [: y3 P( k. B
            count++;1 R6 x! L6 m6 r* x/ }% d
        }
" {* k( z+ @% q, g3 Q        if(0 == length)
" |" ]6 h% I- ]4 V" r1 M8 r& ^        {' {" T, B$ u  u5 Z& r' _3 c
            // 禁用发送中断
5 F2 K, Z3 e+ c- D" z+ n1 x* x            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);6 a8 `, `: n2 O6 w( ?
        }1 K/ l% r& w/ Y; o
     }
" L! d) C- s! \- f$ L, A3 C$ S$ f# |7 W* T1 N  r" I: T6 ^& G: R1 G
    // 接收中断
$ {/ y2 m6 }% {) \5 q7 D    if(UART_INTID_RX_DATA == int_id). x7 E5 {7 B: \3 V- F4 {0 E' Y
    {0 ]  Z8 H8 h' G7 K6 y% K+ K8 ]( z
        if(status_a0==0)( U7 e$ o7 I9 d& z3 ]
        {- G5 n# g! H) R' p$ E8 g
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
0 m( k+ V/ m! _1 L* Q6 x, Z! P                if(a[0]=='#')  f; f6 Z9 u: ~/ G3 n2 c# r2 J
                {
4 i) g& o' B" z* R                        status_a0=0x01;
/ d5 U. l0 W2 _6 k9 _                        status_a1=0x01;
( x; X7 Z, ]) i+ ?                }
$ X/ k- Y) `! s; N        }! `, v% U! B; f/ Y8 w
        if(status_a1==0x01). Y7 Y' T* D2 v* x2 \
        {9 X8 o% Q5 n1 ~& \
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 T% q/ x3 M# X8 w7 \                if(a[1]=='R')
) u4 |1 r: L0 U) [3 W3 g                {% T! W1 U# ]. ^- O: w. {
                        status_a1=0;
! e' m5 k5 w1 d* j- E7 i- n                        status_a2=0x01;8 k+ ^; t6 Z5 O$ ~) _5 |/ h
                }8 K& V$ I' }5 j, R7 T) M" ~4 H$ @
        }
0 B  V; d2 Y: ?+ e& s$ L  {        if(status_a2==0x01), I8 v$ W6 ]3 Y4 h5 x$ G* s6 Y
        {
9 V1 u/ J9 i8 s' M- C& n2 p                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
; E5 B" j6 P1 @6 B0 y+ k                if(a[2]=='A')
3 Q. t# A+ p( k9 e# f                {' ~2 s7 D: g7 h1 _$ B
                        status_a2=0;% m: W: Q. T" \" S3 W% j
                        status_a3=0x01;
* n' m1 w' A# Y- F                }% Q2 W% d8 c# R' u2 s5 b$ a
        }# x3 }" S& z2 U  I! @2 d5 }
        if(status_a3==0x01)1 X9 b. B4 w5 l$ I
        {) F# F% q* n4 f9 s! R# C
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 J) L5 E9 \( F& l. Y2 o% u                if(a[3]=='N')
0 ^( A) C, ?: v  X$ m                {
# E( @8 b: G3 ]                        status_a3=0;
& T( y8 K# v! i: T* K: J9 ?$ [- `5 t                        status_a4=0x01;
, }. n# Z4 P, r, l                }
. w( I; [4 a, [        }6 i4 ~7 U  L! K0 Q2 A# x
        if(status_a4==0x01), E8 F7 e3 o' B
        {  \# a6 _# C4 n# p
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);6 j3 Q; E" A- ^. P
                if(a[4]=='G')0 C. B$ J# g: a, b. U
                {
4 `: S% H, b) |8 N                        status_a4=0;
$ G) ~! L. ?0 ^0 b                        status_a5=0x01;" C$ y8 ^2 P& b7 Q1 ~
                }
3 z) {5 l0 [% K9 H- [3 \        }
7 f$ c$ ?! b6 ^1 s# x7 _# d        if(status_a5==0x01)/ Y; M8 `* o- _! @3 _& [) n
        {
2 t3 L3 h: B, o! D. q9 V7 F                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
* d  Q/ w, n2 Z: F; F7 e" ~9 W                if(a[5]=='E')
% L' v% C# k* p                {
+ b, ?; h( r/ k) `) w6 g                        status_a5=0;
  l- e  }1 H, j' {  {- t                        status_OK=0x01;
; x; s# g+ H9 a                }
" `/ b6 e$ o) D: x7 J) B$ Q        }# D2 E4 t2 a  J
            if(status_OK==0x01)
* N) H2 ^& v) d7 x8 H5 u        {( o% k& [# V, V# q% O+ ], q) p" X
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' _$ \/ Y; i7 e8 W: c
                        lengthrx++;9 S1 F/ q8 J9 @$ K3 ^
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
* c- T3 h( q- x! g% y                        {/ s0 K& G# S& I7 N
                                RecState=0x01;
% V; G6 ^( D$ T& I- d2 V) y* f                        }
* f/ g# Z9 F$ A( `( K# @* @# y         }
( ]5 u' q1 W4 H: T9 K" m
1 Q4 |, c" ?6 l* x5 m     }
- R2 c2 F  k( e) d5 @7 }4 l3 `! s
    // 接收错误, C, c2 [2 V! x+ e: L
    if(UART_INTID_RX_LINE_STAT == int_id)
8 o+ n+ `- ~$ e3 l9 O2 n    {
+ w- s9 b4 {6 a: C( O' b, s        while(UARTRxErrorGet(SOC_UART_0_REGS)), a; k6 }& B  Y9 y" s  H
        {, x5 ?2 K) e+ f! W% p
            // 从 RBR 读一个字节( S7 `& u8 _3 O, ]2 d6 h# c
            UARTCharGetNonBlocking(SOC_UART_0_REGS);5 O+ c5 Z0 V. X) i
        }
( h5 O4 F% G" z- P* P7 G1 f; |    }5 T5 G$ E' e* X
4 e& S+ \) W5 E2 t1 ~3 Y0 T
    return;
, k$ ^! w8 H% z  S. M/ ~}7 p+ l- i3 ~; a8 u; C6 u

* o9 S3 j* k2 Z) S; T; B
5 [; B1 }9 O# A& l8 D' _  u
/ `; \( M2 Q4 Z6 A" I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2137

积分

创龙

Rank: 8Rank: 8

积分
2137
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,# _: Z4 u% {% [# Y* g: ^% _: j
* }) L: t* c' ~0 L+ q: N0 d
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
. Q8 n3 c% [$ e$ m8 G" U0 Q9 H: ~" D% s6 V7 I: y
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
- P/ Q4 f) T8 J' ~hi,8 s2 v7 n' j& ?3 q7 f7 r  T
: L3 j5 i7 X# f& F
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

, M* S1 ?: R4 G$ B& K8 B% G, lvoid main (void)
8 p- S2 ?1 W, B" j7 S3 v{' ]2 M! X- e" r/ W/ }: Z
        int i,j;2 U: P* n, G/ Y7 [1 S
    char *str_buf;
: [. C8 }' s& I' a8 v    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];. u# J/ s5 ~2 `) H* r
        double est_L_b_=0;/ P1 I* b0 S  i+ {  N9 _! D, o
        double est_lambda_b_=0;) }* |6 F3 ~6 i) O
        double eul_[3][1]={0};
% T, e# R6 S7 u        double est_v_eb_e_[3][1]={0};
) `9 D: E1 M  `3 p+ [        double est_C_b_e_[3][3]={0};
, s9 D9 B8 T) C6 R    char *qm;+ Q8 m, s* \8 b5 [7 f; Q& Q
    char rec[70];
! {5 A3 q# }. k        double L_b=0;
2 ~5 Z+ A; z. K3 F" w        double lambda_b=0;7 X( E# D$ b' g$ ]
        double h_b=0;7 T% f+ v3 n) h3 o6 L* E7 S2 K
        double rate;" i3 u* |/ w; }7 z* G5 N$ K
! _9 R) Z1 P2 T8 a1 d. \7 c
1 G9 J8 x8 C/ W% h4 _9 F$ d
        // 外设使能配置( R) }4 n; C1 w4 [* ~4 j
        PSCInit();; g" c1 S- z1 ?. D, Z6 E2 m8 C

4 s. s6 a8 {( u/ |/ _6 F* b, |, E        AppInit();* O1 }* j- b. i% O+ c
4 k# k; ?2 o4 x- e$ I( K
        // UART 初始化
% u! _. @" |/ u! ^/ |( c/ z        UARTInit();8 ^$ F" I: `1 @+ W( g4 `! j

& y" Q, ^1 ?& Q3 B9 [. n4 M        // UART 中断初始化
  l& Z" e  e6 ]! Q        UARTInterruptInit();
; `5 T2 R( n1 U( [  K0 l' H* S  U7 _) E0 @( W# D
    evtRcvd = 0;
7 h; D% v$ {& U& d    RecState=0;6 m$ m7 t. T4 Y8 k3 t* G: l& n
    /* Initialize */
  Q/ U& b6 I1 o$ ^6 J0 C- r: @, W. y  _! {9 }) z
    printf("DSP subsystem ready\n");
9 W' K" F' j3 e( Q) q% U3 s) x
, Z  L4 c9 y. X1 P) p$ T    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));5 v. H) {) J3 g8 P  r
" ?6 U/ ~4 ^3 `9 Q* f6 I
for(;;)) q3 P. x3 E4 b" t8 n! f
{
5 v* p' Q+ N: }' v        if((RecState&0x01)!=0)+ d# E+ i! m3 ]% y6 ]+ m
        {
- r, c( K( F, B. E1 l' M4 W                printf("liuzhenxing\n");
+ J& F% ^- L& \: Q, ?; ]9 |        }
& N8 M3 x( l# M! X- D( h: X3 ~) P0 }        else
1 @" @7 Y0 e* C" Y& c        {
" O9 N4 b5 m" J       wait_event();! R  G+ n0 \, f+ p( w

# s$ N* d" q- M* m           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
+ G4 e2 N7 w: u6 e' s" q7 t- v$ o/ i' d" g* Q5 R- S" v
           for(i=0;i<60;i++)6 `9 j: _% x' n) u* s* M
           {
1 A) ?# t2 ]' `8 D3 Y9 d8 d                    rec=*qm;
$ Y6 k8 l+ ?! S) O                    qm++;, b8 s% \% d8 k& W" I
           }% @6 r/ B3 N2 ?) O# U+ N: N5 E
. L: `/ ?8 ?/ _5 a
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);! {3 n9 v# A2 b" P% z0 _
; \* X& ], b& u: ~
           L_b=L_b_receive_double;" I# o3 A8 v; K6 z% v+ F, m
           lambda_b=lambda_b_receive_double;; [# d- V9 ~9 h! R" Q6 a! U
           h_b=h_b_receive_double;
0 F5 V8 R! j/ s           for(i=0;i<3;i++)
# w1 g2 G0 [3 f% E$ d                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
$ h: a5 ]& z6 n# K: L0 L           for(i=0;i<3;i++)
' U- W7 O4 G3 @2 P# x( D8 O& ?3 |% q                    for(j=0;j<3;j++)
& L1 \+ X9 c& \( ^, C& g5 L! k                 est_C_b_e_[j]=est_C_b_e_receive_double[j];& z4 H" W- j2 I6 g  ]  D

- e+ C$ ~. u7 O6 z1 ]/ D! F                printf("L=%lf\n",L_b);# s) _) @$ O& x# o: _& r
                printf("lambda=%lf\n",lambda_b);
4 k, L  U$ ?5 y+ n% [                printf("h=%lf\n",h_b);* R2 V! J+ C& k  j

: }+ [! |/ X! @9 v! b, [4 V8 d9 ^/ G                for (i=0;i<3;i++)
" b! Y! b* p' I8 U6 R5 V                        printf("%lf\n",est_v_eb_e_[0]);
4 |( z" X( C* z) y* E. \                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]);4 U9 p, A9 t# \- E# e! {9 e
                printf("rate=%lf\n",rate);# [3 E$ O( q/ P9 S3 t" a

& B) j# k% x; j' c( m& l                CTM_to_Euler(est_C_b_e_,eul_);* i. t5 O4 X3 M4 G* H) X: ?- x  z1 X( U
                for (i=0;i<3;i++)
8 `* F* u, _3 ]7 [2 M                        printf("%lf\n",eul_[0]);
7 k/ s. ^- p: R9 d                printf("end************************\n\n\n");
( R. X$ L9 V& d& M  J
( F! @( }7 _% G' W6 E7 v1 `                /**********************************************************************/* n% `" l% l3 U, `5 n/ t

2 R9 |8 V2 M/ C2 q. Q# W$ e9 ~6 p            char flag[4];
( e) w5 y6 ?3 t8 i: A* t
9 \& Y7 }! h- @" ^! |; V            flag[3]=0x00;
2 Q1 v' ^+ k+ f- P1 k3 B& Y            flag[2]=0x00;
+ }' M, V, G/ i0 Y$ V3 ?1 `4 J1 k            flag[1]=0x00;
9 ~. u, \0 p9 \            flag[0]=0x01;  H( Z# R/ D8 q& Z& t

* x1 J9 U) \  r  \( W' h3 M% N    /* Allocate I/O buffer and init with string */; X' q2 z( I7 f. L! q
    str_buf = (char *) malloc(80);# ], p* M1 H5 B" c: {1 w8 c7 K
    str_buf =flag;
* B+ j& h$ r( z+ v. U" b
# R) P! p6 o- T) q' T9 b8 L    /* Send buffer to remote CPU */
  d' Q* f. W! \' ^7 y    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
9 A: a: [! n) u6 u4 ]) P# l+ |0 P# @5 D; p& N; v
    printf((char *) myPayload);
* N* J& p2 I7 _* q# z( }' [5 J        }
2 [" ], N0 _- Z; T8 Y7 X* Q+ a, Q1 Z}; u; H, X+ e" j% n

9 c2 I: F# E: ^    WAIT_HERE;
; n4 N# Z& T7 v- _5 k& T}& m. w. p2 u" K) u) f$ o: Q0 _* O( d
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:4 |* [3 e( d( K, k# l, ?
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
5 ]: W: ~8 q3 |7 |然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2137

积分

创龙

Rank: 8Rank: 8

积分
2137
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
; \8 G/ }1 e; Osyslink 的初始化是否成功,notify 通信是否正常了?
' F; ^% q1 @( u
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:548 y' b' g6 C& P7 C/ L3 ?
syslink 的初始化是否成功,notify 通信是否正常了?
3 A, j( }( m5 \; p5 Z
我用的是裸机开发的双核通信,用的是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:205 J$ `& y+ _$ a6 c! t/ A, w/ ?+ P$ i& B
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

2 G% w( I4 y4 P: l建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 22:14 , Processed in 0.053236 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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