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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。1 H) ^/ B0 l& P: ]* _
我是在DSP初始化这不太明白。
. h' Y- w4 J! @; u+ \" I! X初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。9 Y6 q( ?+ r, j
; b, J' g1 U( b

9 M( M9 z- q/ i$ R首先        PSCInit();//UART0使能! N4 z' X* x1 o! C- s
void PSCInit(void)( z0 Z" ^: q9 m: d& y& Q
{
) m) R3 b, S9 S& k8 G3 k        // 对相应外设模块的使能也可以在 BootLoader 中完成/ `6 F8 {. ?3 E+ e9 Q
    // 使能 UART0 模块
( e. [$ M# n- e    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
+ l0 x# u) w$ t}
" J+ ?3 h9 S. F& M7 w

$ Q- B9 o* z2 b7 {0 ^7 W; ]
# o- j8 V* V) S% f. k* z然后是 双核通信的初始化           AppInit();
$ q4 v3 A! d: \1 z! G$ E# `void AppInit(void)
3 k2 I$ z" b/ \7 T{
7 i) D: v( R1 h& {4 B    /* Structure to initialize IPC (see Ipc.h for definitions) */1 ?% Q7 k2 {  f0 U
    struct IPC_cfg ipcCfg = {
" \1 e& N2 o3 k" T: @            IPC_DSP0,             /* local processor Id */
/ P& }; E9 \* p            IPC_ARM_HOST,         /* remote processor Id */0 l9 b& |: g. g& p$ k& y8 f
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */7 x: k4 T9 m+ G  ~. N: F
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
$ ?2 c, a6 i) l) l2 o$ M            NUM_MAX_EVENT,        /* maximum number of events to be created */$ l7 Y, ^4 `, [/ J4 U
            &ipcPvMemDsp,         /* local side private IPC memory */& b' h8 u5 l) `% Q# f' _
            &ipcPvMemArm          /* remote side private IPC memory *// x$ |9 l" k( Q. X: }
    };
8 ]' S4 N# ?; ]: j9 [2 ]  ?    IntDSPINTCInit();
) e$ G! l  K1 x; X! c" F    IPC_init(&ipcCfg);
" S: l0 _# i( c( `& e5 m    IPC_intRegister(C674X_MASK_INT5);# J9 O1 }' @1 r% g% i
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
  d. _# D7 L5 g: {. ?: L" a& {/ j/ g7 ^) c" Z# G+ J* f, |$ Q
    /*  Enabling interrupts for DSP C674x CPU */9 h7 R4 K4 Z. l5 q! q7 @
    IntGlobalEnable();        /* Enable C674x global interrupt */7 |6 w3 R. b, Y8 W- f; k
    iAssert (Notify_start()); /* This will enable IPC interrupt */; `* r: |  Y9 X& s# {/ O
}. o+ C& H8 N. Y$ g0 T9 U
9 l$ N5 [4 {7 L  `
然后是  
# O3 w- S4 Y2 ^; f3 d4 k            // UART 初始化
8 ~* b* S/ P, \- Y4 G            UARTInit();$ V" u# c" p' H& l3 ^% ]
, b" n5 _' D7 N; i& Q. k& }# r) o
            // UART 中断初始化
4 G8 {4 ~* I! F8 ]2 b$ {            UARTInterruptInit();
6 n. B. W) O* o  ~5 f

# r4 B8 I# G" V6 O) k, B0 v' K; e8 X1 I" E' p. L
void UARTInit(void)
! v. n' @. F4 l{
, _( D' C/ z3 o: v$ C/ }        // 配置 UART0 参数
  S  c( t3 M- K        // 波特率 115200 数据位 8 停止位 1 无校验位
+ v9 f$ H! R8 L2 Z5 G4 N7 a$ r3 \    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
4 M; p. Y) g. ?, d                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);9 W3 A( V% L9 z0 h! V
        // 使能 UART0
0 ?: j1 F7 b! X6 N: K        UARTEnable(SOC_UART_0_REGS);% A" e: j! k$ Q/ L- e0 N' H

# [0 ]* Q1 ~5 K9 H    // 使能接收 / 发送 FIFO
2 O! q6 T( U3 Y+ y3 |//    UARTFIFOEnable(SOC_UART_0_REGS);
$ ?7 |  R. d: N$ G7 }% D! \/ m+ {+ q9 ~5 P
        UARTFIFODisable(SOC_UART_0_REGS);
  o# q. [( D, Q. J, u8 r( o( b- X. D- Q: p3 @( V
    // 设置 FIFO 级别     接收FIFO的级别
1 Y: {, [1 O( d9 w9 ^& m//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);. K6 n( }# F- g
}
) t8 p: o. J! Z; @
. c9 d8 l* T7 T% ]
% a1 I7 N7 I1 @) S* J
void UARTInterruptInit(void)! _( R& z4 ^+ [/ j  g( J' f8 j0 l
{
0 \. x$ f4 ^* f6 I        IntRegister(C674X_MASK_INT4, UARTIsr);3 q5 `. \3 A1 ?  j/ q
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
3 q6 R" z+ f6 z; M  `3 \8 v% Q        IntEnable(C674X_MASK_INT4);0 V8 p$ c4 a% w9 z, ?; H
& r2 r/ k$ c9 `6 ?0 K9 `
        // 使能中断/ \' u5 `  G/ S9 Q9 @4 N' Z
        unsigned int intFlags = 0;7 Q; o1 k- H, A' c
    intFlags |= (UART_INT_LINE_STAT  |  \
9 K0 P4 I' n) J( T9 S1 c                 UART_INT_TX_EMPTY |    \4 i% }- p1 K2 N5 ~. K
                 UART_INT_RXDATA_CTI);
+ f' d4 n9 m0 b/ p    UARTIntEnable(SOC_UART_0_REGS, intFlags);
+ \5 j; T- }/ P& d: l}! `+ Z1 q- _3 R% u: ?
  e/ o1 @4 s$ P9 v* [# X3 _
* C- X0 m# Q( F0 W* v
void UARTIsr()
, N: m- E) z& o{; O) X! K6 m! R
    static unsigned int length = sizeof(txArray);
' f. E) ]5 _  [$ F    static unsigned int count = 0;
9 G6 a& M$ O4 S: n- V% I    unsigned int int_id = 0;8 j! k$ A9 K  ]! }, F
4 v0 b& ~' B* d2 k" _

, X7 N/ k, W  D
, Z$ j( q9 r# z! K    // 确定中断源
1 K; }2 O' B8 d" h5 b! O    int_id = UARTIntStatus(SOC_UART_0_REGS);
" h0 ^7 Y0 J) c  I: W4 x/ u6 }
( r( L5 q: r; m    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。# K# v& B2 X1 O+ f! H

+ Q) u4 a2 _* K( e8 z$ ]% I# x3 N' e8 P% @9 |
    // 清除 UART2 系统中断
# Y# J3 F: L! R" G    IntEventClear(SYS_INT_UART0_INT);
& K$ d. q5 u7 X8 g9 [! _1 x! v3 d! K" m
    // 发送中断
9 ], z$ B  |6 e6 b    if(UART_INTID_TX_EMPTY == int_id)
0 p6 `( B+ t5 Y0 u    {
# z4 W) l3 z, C( Y' q4 O) c        if(0 < length)4 u; I2 j: C+ y1 l- ]8 T. |
        {0 X7 P; d9 r2 h, X+ p
            // 写一个字节到 THR
/ m% x- V; p0 _6 E5 g/ p            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
% `7 @2 H3 y' K$ k            length--;
  j3 Q" F8 a. i3 k9 v8 {! a, r            count++;
- C5 O0 Y6 j2 K: |6 z8 T        }5 q5 Y1 F' J5 y5 \. d9 a9 Q
        if(0 == length)" r, x% L0 X: Y
        {
, C  p# N$ ~5 n8 t            // 禁用发送中断
' C" y% l2 T. \3 r) W2 e            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);% w( c  Y+ Q* t1 Z: f. ^0 C
        }
2 ?( t  }. `4 D2 @4 f( V     }! |9 @4 t/ D3 r- @9 i% B7 D( w& P% V

+ a. T4 k9 ^! L7 p9 g) W    // 接收中断9 ?8 X9 R* H: y% L$ p( C# r
    if(UART_INTID_RX_DATA == int_id)
  d( }4 [" m: ^/ b9 s" e. a    {% g7 |( ~: ~; s( q- z( I( y: t9 z' ?
        if(status_a0==0)
+ _; y: n) ?  ]5 @4 s- t        {+ ]4 H0 V. {- m. o$ G1 q
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);, @' G  W+ s8 ~/ ]7 T
                if(a[0]=='#')5 ~) H9 X. i0 q' `/ i/ o
                {
  Q  B+ J) r2 F5 E4 @( L0 [                        status_a0=0x01;
/ Z4 x' x% [/ w  M# O5 R$ H                        status_a1=0x01;6 h, t8 j& q0 ?/ v6 p: r4 \( t
                }. U  X6 x! Q9 w, W; f3 p
        }
2 x' X2 u/ ~- W; d  a# [9 D        if(status_a1==0x01)3 ~+ h. Y, j6 Y
        {
9 d6 G6 L; d% L& G" `# {1 Q0 N3 B                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);, S5 ^$ b4 A  y2 z) Z+ l: o; R) I
                if(a[1]=='R')& g- T- x9 |; z
                {
* A3 f; @$ A% W$ V                        status_a1=0;
8 z$ J# m9 D, x& V                        status_a2=0x01;) Y4 ?* q# S* k, [& C1 ?0 Z( I
                }* z; ^3 `/ _% r" E  B
        }
1 T4 |9 |& \0 y/ {/ b* c. C% P        if(status_a2==0x01)
; R' @7 v5 o3 w- X7 f; M5 J5 t        {
. T/ g6 \# c$ M- U/ Y% s; ?7 e1 V                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
; r  Z  F. y1 V# N1 n% ]                if(a[2]=='A')
6 Z! b+ {1 t  H6 b, Q7 F) _                {. ]2 d, P" k  d9 P1 Z  o
                        status_a2=0;* E& m! [" a* y/ N* l# l
                        status_a3=0x01;! Z! R, S$ S( I% N
                }" z: B# Z  o" `8 x" i4 u' b3 u
        }
# t0 T+ C+ C3 Z9 `        if(status_a3==0x01)
1 ^( F2 J4 k# g        {
& b  G! n/ v( }4 U" f+ m8 T8 x+ Q                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 ?1 }. Q. H' h- t* g6 I                if(a[3]=='N')8 A0 `1 H+ n. H( [8 [9 @
                {
0 y3 b' M3 f5 {" l7 }                        status_a3=0;  _9 }) c4 R" h9 y1 h
                        status_a4=0x01;* q+ A3 N' L  M; ], S; P& ~
                }
- b: d  g" N- {- F$ t( N- V" y        }1 e, z! j% T! N* m7 q
        if(status_a4==0x01)
8 w0 I" g* u9 r7 @. K/ }3 i+ j- l        {; Z" q3 W/ ~! @' E' x
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);% Z0 ^1 V4 e( @" s, [8 C
                if(a[4]=='G')1 v/ i) s2 d# o. o9 ?$ b. k) l& p
                {* n& M  v, }6 ]' N% p0 E3 v. g
                        status_a4=0;
4 B: @4 q: s% o: ]1 |& Q% ~: g                        status_a5=0x01;# {# E  Z9 _3 j, {, C7 q/ @3 @- B
                }
) E' n" M, C* Q! N: s& v        }
5 u: w  h; Y: P& K% z7 A" e- n        if(status_a5==0x01)
8 K8 L# Y# J1 A5 ?        {6 {: H+ O( w: S. Y2 H4 x
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
3 j- F' h3 c9 n5 p" P1 a- c                if(a[5]=='E')
9 w. m! `2 p/ B) r3 y, m2 {- T2 ]                {  ]9 F* m6 p" }3 W
                        status_a5=0;
) H  E1 m  _$ r$ [+ ]                        status_OK=0x01;
: e7 E" @. c0 `/ u/ B# l. r- y                }5 v* _% c  |* B2 e
        }
/ |6 {; }/ e+ n3 }/ K            if(status_OK==0x01)& \! q2 o1 O* U- `0 U1 [: B
        {% h5 l4 }1 p& }" c, ?2 K+ Y
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. U. D1 _3 a# z. M/ P                        lengthrx++;; R4 C. O2 Q! A0 `8 x  A) }
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)" p4 ~( B: d8 u- m# P/ o2 R; C7 n
                        {
. L5 c! `. ?0 |/ Z$ X                                RecState=0x01;  Q  Y" w6 e/ @# P. ?7 b
                        }" y0 T. x1 q. u2 b! R" a' h
         }
; v8 z4 J% p- u" @5 J8 ~
7 O& G* n; L5 R/ D4 b& p- u# m$ B     }9 ~: f. u$ v, M% _% z' W* b; a( N/ Q6 K

! T) k  |' A2 r0 L3 P1 Q3 f    // 接收错误; s- w/ m+ x, a5 }
    if(UART_INTID_RX_LINE_STAT == int_id)
; w) B7 \  [/ w7 o    {
/ O3 r* ]" c: P9 _6 W3 ]8 @; C        while(UARTRxErrorGet(SOC_UART_0_REGS))  q* s$ g3 i" f4 K7 E) m
        {
8 m7 `/ _5 e7 `+ s1 x            // 从 RBR 读一个字节
4 t' h8 A0 d. C" a4 U& q/ `; y            UARTCharGetNonBlocking(SOC_UART_0_REGS);
. o/ t) ?- r: g* |+ B* |- P& T0 h        }1 W9 I2 b& B  R9 c$ T: S
    }0 T; p( K" j0 N* I3 F+ J
7 L0 z$ m+ [- C/ J( [
    return;
( i) G: A) c9 \* L5 p: r' [% @* g}$ i' v3 r8 y, J* R+ {
9 d. b/ S9 ]" K
% ]. g' q, H5 ]* s' I" E, D0 S
2 a3 b( l5 J" K5 z7 e- O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2138

积分

创龙

Rank: 8Rank: 8

积分
2138
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
. x- ?; D8 N" p
" U& O- l) q1 u2 yUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
+ c% y! f$ V: @( g. j5 g9 o$ |6 x) ~; [/ I
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
* W" z- j: o5 T  ghi,
  W5 d8 c. u) v- z- I" N: V5 i) P6 S3 V/ z& @& f' F
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
1 T7 B, [  r5 Z1 {! r
void main (void)
; e( O: _( \  J3 S' j& p% Z{1 w# h6 D" L6 F6 Q! k3 y, l
        int i,j;1 a8 [/ Q8 y. P# _5 Q) c! o( _
    char *str_buf;* E: V7 x9 c" }( R
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
; ^& r$ q3 R; q        double est_L_b_=0;1 x  x- `7 M. U; _9 l
        double est_lambda_b_=0;
4 B6 E4 C6 u( {: f        double eul_[3][1]={0};3 M  K" F$ s0 y$ D+ Y8 X) t- _
        double est_v_eb_e_[3][1]={0};! c, [) v* |1 E6 C6 \# A; n
        double est_C_b_e_[3][3]={0};
/ m% `2 @+ q: k6 ^. P    char *qm;) m+ T  D7 z" }/ B
    char rec[70];: q( d) b0 Y. }2 R5 ]5 Y; O! L
        double L_b=0;
. p8 }* }% M1 k* R" \) H  O2 [        double lambda_b=0;& Z1 {: x: d7 M( q: B/ m
        double h_b=0;
0 K/ s1 k. U3 `        double rate;, c% y! }: \; M* E; Z* C. Y% x
( s: U& V0 q$ e- v/ M% u
8 o* G' h$ Y  \3 g( L
        // 外设使能配置
; h% i  a! Z' A" o        PSCInit();4 Y, E3 d9 `/ t2 x5 O: L9 z
& ]& h+ \5 b+ x) K4 G3 u/ M
        AppInit();: _) t* W7 N& `+ W. E; Q

& I1 S- @4 p  w% _        // UART 初始化1 U8 K3 b7 w6 w
        UARTInit();
6 s, `0 Q, w  S0 [# R: i6 C; \( K! j. n; u2 t& F. x% s
        // UART 中断初始化3 e2 j" S, r9 N) c1 [
        UARTInterruptInit();
9 ]: `3 i3 x+ ^% J- ^- G2 l7 `( I) G# E
    evtRcvd = 0;
# M, {/ j% s" F# V2 w& H    RecState=0;
2 N& I- D; m# D2 f' M    /* Initialize */
( a" ]9 ]  n5 M' ?" n3 q- }) [
8 y! B; H- m; V    printf("DSP subsystem ready\n");
" X8 n  H! ?0 s
6 X# ?9 v$ d' L& r, s& j    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
! w( x* I1 v% l' S/ e. ~" r, B! y" {: k  ?' Y
for(;;)2 j# T: @9 N, P- H
{
7 [' A, C5 _6 k6 {$ z  Q        if((RecState&0x01)!=0)( Q2 T1 v3 [  P8 P6 b! |' [
        {
2 l$ s3 @% V8 f7 {                printf("liuzhenxing\n");
7 m/ z6 z$ ?0 x* `2 e! ^3 r        }. {+ G; A/ S" r/ Y
        else
5 O: n/ B0 q$ ]5 j8 Y        {/ O/ `* M. T, y: i
       wait_event();
6 ~1 E# N% h9 m" m4 u+ c# w
& \! @6 F3 c6 ~/ z; e) H8 y8 ]           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
* f; j! e; q1 G0 a) G1 q" D" _9 T! Y
* Y, b5 F: y4 F9 B2 T  \2 `; D4 F5 ~           for(i=0;i<60;i++)# f$ u6 N! Q  Q
           {
1 @, }1 v, z+ S2 M+ K+ }                    rec=*qm;2 O) j+ ~# ]! o
                    qm++;6 c2 A7 h, q+ w$ W
           }& L( R3 B* @( V6 p/ e( [
  a( L/ ]1 P% G. A# K' {
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);& w; c/ ]2 t1 o4 k& z

: J9 B9 _  V# n& h           L_b=L_b_receive_double;4 f4 l: o9 S' `2 Q# Q' z; \
           lambda_b=lambda_b_receive_double;/ j  D1 v% g" w  u
           h_b=h_b_receive_double;
* p& B; r. v% x) ]( ~           for(i=0;i<3;i++)/ r7 \9 _3 E  N2 Q2 Z  e% j
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
" Y% Q$ D/ O; e) v/ v( q           for(i=0;i<3;i++)9 a' J' @7 r6 i+ ^) ]; N* m
                    for(j=0;j<3;j++)! f% _3 z0 Y* e. |% z
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
' z9 }  }. ]: f% Y  A* U$ S! ^7 B# {
                printf("L=%lf\n",L_b);
) C" q8 ?. n( v" i9 N                printf("lambda=%lf\n",lambda_b);
6 d$ `& @2 q) ]1 L                printf("h=%lf\n",h_b);
: p/ Z% G& t- m$ z" [4 h0 t% w' R' G
                for (i=0;i<3;i++)
; F: V( z( h% e% }  v                        printf("%lf\n",est_v_eb_e_[0]);9 J! ~# G0 g8 X6 b* X  R. c1 {
                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]);
3 G2 m3 B4 i8 V; v                printf("rate=%lf\n",rate);- r: ]' G' }$ B  s; e% g( [+ v
/ \! O% j! h# u/ x/ S1 s6 K$ U0 e
                CTM_to_Euler(est_C_b_e_,eul_);& W- ?. b: C( X5 C0 `
                for (i=0;i<3;i++)$ B2 S* @+ D( y+ T' t0 i4 t
                        printf("%lf\n",eul_[0]);
2 ~% F8 D1 T) F; o                printf("end************************\n\n\n");$ E5 y& n4 k3 X2 v" u: x

, J* b6 y; I2 \5 H$ X- ]- v                /**********************************************************************/0 M6 w3 p4 d- ^7 W; Z3 \
7 R6 @2 Z* q' V" D5 U
            char flag[4];# c% p6 {- w7 ?( E1 [  L; _
8 o3 V6 \+ m5 z2 F
            flag[3]=0x00;
, `- Q0 d) o9 |% L; S1 i. j& W            flag[2]=0x00;# ?* e3 i( h! V  p4 V  p' R
            flag[1]=0x00;
3 T+ M8 p) s. f- V            flag[0]=0x01;
. o3 c" j3 ]: [2 w
+ Z& l5 r1 F1 X6 P    /* Allocate I/O buffer and init with string */
2 H% G! m6 `  P( k! W' @    str_buf = (char *) malloc(80);
& f; f3 W( w  U    str_buf =flag;
! y" i% ]4 G1 w6 ?7 [0 B4 a$ H" t& z" W8 _' `% h
    /* Send buffer to remote CPU */
3 A1 N7 f' M( V5 H5 b    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
* E9 K' l, D; U; a
6 ~+ s7 W5 ~4 x  Z+ g0 O    printf((char *) myPayload);
2 b5 f" X  ~( f% z& I5 t8 \( \        }' S/ ?7 t% a3 j7 `  W% I7 H
}
9 h  g+ A: {; S3 v, k# R5 q7 s, P$ c) {! a7 o
    WAIT_HERE;
% Y4 r0 w2 o2 i5 t- X6 r* l& h9 S}
/ K* D& k: M# N! _5 V' S2 @
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:  B* \, W& X" P
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。7 h7 H$ A$ Q4 }8 @4 h8 M$ j9 T5 B
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2138

积分

创龙

Rank: 8Rank: 8

积分
2138
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:548 b- G7 O- w+ O
syslink 的初始化是否成功,notify 通信是否正常了?

) U0 Y- g. Z& i; G( d0 x; x双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54$ w" c/ r# ~% ?+ y+ g: R
syslink 的初始化是否成功,notify 通信是否正常了?

& M" U+ t' l1 m  B  o6 q我用的是裸机开发的双核通信,用的是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* T) n; X! H3 i' }
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

  z4 U4 T6 K! P* a; e建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 02:11 , Processed in 0.116796 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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