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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。6 z" ^: i( F/ A
我是在DSP初始化这不太明白。
4 P& C3 g) _  n* }1 R% [初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。; |5 t7 q8 l' A3 J/ _) k

; ~  e4 i" y1 N( {$ \3 P# G. }* x3 _$ H& X5 l1 \
首先        PSCInit();//UART0使能* O  l3 w; k* E' I! i1 p
void PSCInit(void)+ |& e8 i; t" d$ i) w' t* v! c
{. M# J6 d( T6 L0 G' K' Q" a! y
        // 对相应外设模块的使能也可以在 BootLoader 中完成% U! {/ O3 A0 ^' |' w0 c/ _8 Q
    // 使能 UART0 模块; a3 c1 ]7 w6 S9 Z9 T) k! g
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
8 @5 {# c  \% V6 P( t. z}$ ^- I. z1 U( r( {; M& M

! p  p: s' w0 m) I& L! n8 n5 Z- z
* x8 j3 o" @% P0 q( |然后是 双核通信的初始化           AppInit();
2 V7 T$ y2 J0 B: ?void AppInit(void)- H, o8 H: e8 y! n$ w2 Z
{
: N0 V# J; f1 K5 l    /* Structure to initialize IPC (see Ipc.h for definitions) */4 e! S+ l& G2 B# h2 f: n- f, l
    struct IPC_cfg ipcCfg = {
9 U5 r/ O2 c! B% o: X* y            IPC_DSP0,             /* local processor Id */
8 b# q) \8 j8 {* K4 e, A8 @! ~            IPC_ARM_HOST,         /* remote processor Id */
9 g) L. L' O# O, V6 s6 E2 x1 B            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */& R, g0 a2 f9 S+ e# c
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */1 `, [$ j. O) G1 @+ ~' {" {+ ?8 W! r8 ?
            NUM_MAX_EVENT,        /* maximum number of events to be created */
  f7 Q7 v) f3 r$ |' [            &ipcPvMemDsp,         /* local side private IPC memory */9 S: y% l9 v. c! ~; c
            &ipcPvMemArm          /* remote side private IPC memory */
* |1 o2 N- k3 |; b    };
( Y& [4 U0 ^; I4 ?    IntDSPINTCInit();
  r: @0 Z0 P3 D. T/ T1 \; l, C    IPC_init(&ipcCfg);& C4 g+ a( a' Z$ J! ^& X8 [! F
    IPC_intRegister(C674X_MASK_INT5);/ J& ]2 }5 j. T+ L; u3 g3 [
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
; s7 i$ ?% b4 ^$ i5 l! a4 j: S  w5 l% O: t# M+ M9 c5 |9 l
    /*  Enabling interrupts for DSP C674x CPU */
8 r; f( t, e2 s# B9 T$ _& U    IntGlobalEnable();        /* Enable C674x global interrupt */
% B* Y/ I& v% E/ S0 B2 q% {    iAssert (Notify_start()); /* This will enable IPC interrupt */
8 H2 C7 m3 V1 Q" v  P1 Z$ ?}
$ `2 r1 c' V/ i2 H  C
8 ?( O# {+ D" X% \! C- q
然后是  ) m  b6 J  G) ~; \( X6 f" r
            // UART 初始化
  R; |- E4 z7 ^- Q6 `            UARTInit();  v6 }4 H; G  `4 y- j5 A. f

9 _5 c6 m8 l* A, W1 j4 B" A            // UART 中断初始化6 `) v- U" s$ v4 j& _
            UARTInterruptInit();
" Z# G' n0 J6 H9 y

/ N. _+ I# b# C: Y% q- m2 `+ Q9 [
void UARTInit(void)4 [; q9 ~* {) Q1 v+ D# R+ u
{
7 [3 R+ D0 x# o8 ]5 f9 R6 g        // 配置 UART0 参数, p. s) u& o- {8 f" q
        // 波特率 115200 数据位 8 停止位 1 无校验位
8 c0 t- I2 v* Q. z7 ~  S    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
! B) V8 |5 l! E- w  @; k                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);: z' ?9 |; y0 H& S  N
        // 使能 UART0
+ S1 v  K& z7 W* t        UARTEnable(SOC_UART_0_REGS);
7 m% {- z$ L- O6 |2 @' U! x) q7 b; {4 o, c! D+ {: y) {, P
    // 使能接收 / 发送 FIFO
' w4 k/ i" S' v//    UARTFIFOEnable(SOC_UART_0_REGS);  b* |# \) |# u& G" t# M; P
  |# _% F# X- W0 D
        UARTFIFODisable(SOC_UART_0_REGS);; Y5 ?6 `% `, e2 }

( `  v8 v$ a. z: |    // 设置 FIFO 级别     接收FIFO的级别
2 ?5 w# V0 H' ]//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
+ @, n' D: a' S7 `}
. G! v& H+ j$ A/ I9 {) y

7 h: V, o# w9 c7 X" \& P; Z
" j: |2 D% o. Yvoid UARTInterruptInit(void)- V4 C0 t# l; m
{# v% e9 m" M3 Y0 H1 C( j; T1 w
        IntRegister(C674X_MASK_INT4, UARTIsr);
9 s8 N4 j6 c. J( T        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);0 i$ S' l# ?6 L  l3 X7 {
        IntEnable(C674X_MASK_INT4);% g5 {  |4 W2 i  E6 c# S
6 @/ p; G/ z) X1 R! N4 g/ ~6 e/ L* y
        // 使能中断
$ e$ s8 H! A6 J" K! c. |        unsigned int intFlags = 0;
* Q9 J, w$ A( c9 V    intFlags |= (UART_INT_LINE_STAT  |  \
. H. g- {( ~$ b" h$ b6 L, ]/ O0 x                 UART_INT_TX_EMPTY |    \* x; h5 Z# ~) f4 K2 u, g
                 UART_INT_RXDATA_CTI);
- U+ u! b1 s8 a: P5 a1 t  s) i. c    UARTIntEnable(SOC_UART_0_REGS, intFlags);
4 F$ P+ u/ b5 N. ~7 }4 G& H  S}
7 H  U; w& S) Q3 }& i

6 R* Z2 E4 @4 `0 I0 e( O3 k! P: r$ ^, f! V$ s* @
void UARTIsr()
$ z* G  `: ~1 Q7 B/ P{
3 \# E2 u0 K: t) Z" x( H    static unsigned int length = sizeof(txArray);
+ n6 I4 v# p& x5 B2 \    static unsigned int count = 0;
  E) D' x! `- z  {5 Z! {+ l    unsigned int int_id = 0;7 G" q6 r' Z: z4 {1 Q8 H6 r

  I1 D  y: C+ O3 T4 J# v4 B2 \) G
' H# z, X$ j! p2 D& B( ^. H4 U
    // 确定中断源
+ A3 @: L2 x) o) y! g& X    int_id = UARTIntStatus(SOC_UART_0_REGS);: C# U3 L  H, J( U* G0 c
  D+ q* X2 i& W- D
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
& \  A$ x/ }7 y9 h, x) U8 S4 G8 O; b) a. w4 r5 B" k, v4 y+ M
8 B# J( S- }5 E  P
    // 清除 UART2 系统中断
9 e. {0 l( ]0 }, Q& M    IntEventClear(SYS_INT_UART0_INT);
" S" D; _$ O4 J3 X/ j
2 S! Y! U, H0 f0 n( N    // 发送中断% X% K$ W  U* `6 k' O/ c9 k
    if(UART_INTID_TX_EMPTY == int_id)2 x8 }+ U  U1 ~9 L( G
    {
+ B( u  A7 G1 e* c4 s" d2 C        if(0 < length)
" q! A! S+ o4 d9 [" i7 b& L, H        {2 b; T6 e% ~2 a9 h  _
            // 写一个字节到 THR1 c4 t" X0 \3 X* s5 r4 H
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
3 N" C8 Q' B& Q6 ^( R7 P            length--;
& _$ I! e0 z# ^$ b% q: b6 Z            count++;3 |1 Q% V: g6 ^, V" `8 ]! _" ~
        }) e! o5 `  e7 Y  n- q0 H) V0 N
        if(0 == length)
/ J3 r# O$ T& W0 y        {
9 y8 P9 N) q% [: o" H1 {/ P            // 禁用发送中断
; X: K* t+ Q9 C            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
/ _4 E+ _# Y) P3 \        }8 N7 s. u' ^) u; `2 q8 O; L. o
     }4 L5 `1 J9 s5 g( ]6 M# I. `

4 j  ], G) l, @! A7 M' I& u2 `    // 接收中断
7 o6 t1 D; @9 t7 u% d) T    if(UART_INTID_RX_DATA == int_id)
. ^5 e1 ?( ?; d) ^; t" w' {    {2 @0 O. f' O# V& A
        if(status_a0==0)
. w( l2 W3 _4 p) Z" L2 w" W3 W  [        {, p( o( E* p8 P2 I) ]
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
2 R- [1 C( [5 }% F0 }                if(a[0]=='#')/ P* {9 m$ N! ^- m
                {
7 b, z4 _* j$ g# X$ P                        status_a0=0x01;
/ Y. {+ k+ _; d8 c1 j5 k3 ?; C                        status_a1=0x01;1 B& w5 E+ E) s' V
                }
8 C/ A" Z$ |3 _, P* \) _( W% |9 w        }! V( W$ N) n5 G, M: |5 N
        if(status_a1==0x01)8 F/ K" r6 w+ z' _! _
        {
6 D2 ^: [- w- f1 b5 q/ M  g                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);, t% w  F0 l/ X( G) d- _: q
                if(a[1]=='R')3 D2 e3 ]; h5 N' N# h. z
                {' p" e. y/ l# \8 ?1 y. t- P
                        status_a1=0;
+ \! T9 ~) _8 m) p5 w% _4 K  t                        status_a2=0x01;* V( R2 A/ w2 |0 T, {6 z# y
                }
/ j' b9 K& J% c: U7 F; S        }
) X5 {7 F3 Q6 H6 |( M% O3 U2 F        if(status_a2==0x01)
# _0 _* z. C6 F" v& T, i. D        {
8 G1 h- E" K0 t& I- _8 g4 R                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
, L8 Q7 h6 `8 O/ V/ J3 I* G9 o                if(a[2]=='A')8 ^2 [; {6 ^8 _: }6 W
                {3 j( e( n" f6 L( _
                        status_a2=0;
- `# o+ v4 M( Y( r                        status_a3=0x01;
2 p* |: K2 u/ m7 C                }
# ?, m* K! n( G0 L        }
6 g4 g4 Z5 F2 _        if(status_a3==0x01)2 p9 [. q) I/ F. `) l
        {
7 ^6 v2 g: [% k0 J( q                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
5 o: G- g# S: C5 [                if(a[3]=='N')% V! w/ _, \1 H
                {
  K  b4 b* k2 A7 Z+ H8 Z                        status_a3=0;
. ]. t) |5 X& }- t                        status_a4=0x01;+ U$ ]  F9 U+ U" ~1 b4 j3 ?. `; E
                }
2 N+ Y# u  J% u* |        }
! L0 L  [8 [+ v7 g- E        if(status_a4==0x01)
7 \' y5 M3 t& ^+ n6 g9 v        {
, ?  V* L4 r( T3 r$ v3 R4 |* c; A# s                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);) i: ]0 S5 p* n5 i* B
                if(a[4]=='G')
# ~" i8 r; C9 ]/ @- j+ \9 S$ J; M( i                {
9 m8 e, v- P( p9 k1 s' R                        status_a4=0;
9 y2 c% M5 U8 N                        status_a5=0x01;. q3 G2 }5 I! j9 p: f
                }
1 c; I" h' m, ^4 i! ]        }. e6 }+ f! ~# ^+ n' k
        if(status_a5==0x01)  m- T" t0 R: R9 K
        {8 e, ~0 F( c0 K3 C9 P
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
* u% w! L3 n/ P8 A& y                if(a[5]=='E')2 o; n& g6 ]9 H, Z/ [. G: i
                {
3 ~& h+ S. y, U" P                        status_a5=0;3 `% \5 U. ^6 D" _. m2 V, p
                        status_OK=0x01;
; K7 B6 g" V6 S* f. P                }
; o; ?$ f( x! \        }
6 _8 s6 @8 y/ C/ @9 w, [; ]& w            if(status_OK==0x01)
3 I9 `% N3 |, y7 ~' l- R% d7 _        {+ X4 U$ u0 U: s6 X6 ~- L
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 X' n) @, m) W7 j3 `
                        lengthrx++;
* s# `! V4 \. R1 m, c                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
6 v- ]9 A! O+ I' R) T+ z5 C                        {
7 x0 W+ p: b1 r5 s5 z  {                                RecState=0x01;& C0 _, }! p! P& Z$ }$ O) j3 _
                        }+ j: _2 M' H- K1 Y; S! ?
         }! S4 i, a: g; s1 E4 n
# j; F6 w8 z; g$ M! N/ n; O/ F. b
     }
6 `/ @1 L; M8 p5 ^$ t# X% x  k8 I) `7 M- l9 y) p
    // 接收错误
4 J6 T. q. c, J4 L/ w+ _; y+ N    if(UART_INTID_RX_LINE_STAT == int_id)# I6 `% U4 r. }, f1 N
    {
$ k+ `! _# h, F2 d        while(UARTRxErrorGet(SOC_UART_0_REGS))
% b% D) q  M: `: W& [. Y- ~+ _        {
2 K. t5 O2 @4 i            // 从 RBR 读一个字节/ D! n; A& v/ B  I9 M
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
/ a8 v1 S: h1 h' K: a8 C        }3 D; v+ Q  I! Z
    }
- R) F. V  Z0 S! O4 p- ^( m
' i9 K2 W1 W( k" O; u+ ?. _. n' H    return;+ L! P: V1 C* b2 H. c6 I
}
1 E' k  U: U) M: M9 w7 h3 {
5 E2 L, a' c; W/ n) D
- M& Q9 H- o/ k- o
' Q( _* ^( i0 s5 i$ f3 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2102

积分

创龙

Rank: 8Rank: 8

积分
2102
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,6 j0 u8 l2 }* Y; s  E+ t
) `, X, W( n& f' S' X# n
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。% Q- h* A, V$ a2 B9 u

# `! u8 G0 Z6 x& ?5 s* ~1 u要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:137 ]5 X; H2 U0 j8 ]2 |  I
hi,
6 h! G2 M3 D# x" {
4 A! W- f5 r# t& ]  |3 tUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
, \% D: H8 K* _/ ?+ G  E: f) T
void main (void), [& `, x% h" f2 b/ m4 c. Q5 w
{2 ]% b1 C  ?* M; R
        int i,j;" A( l( ~, y$ _/ B
    char *str_buf;
3 {3 j; K7 q( I2 s' T    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
0 I% |4 S* x! G$ v/ Y        double est_L_b_=0;
( {1 ?: h8 D& T) L# p        double est_lambda_b_=0;
# c, Y1 c! ?0 m2 o! ?; [        double eul_[3][1]={0};( S) t2 q. x, |' o3 d5 z
        double est_v_eb_e_[3][1]={0};
2 g! v* d3 M. W+ l: O        double est_C_b_e_[3][3]={0};! I5 c, e3 k9 a' b, b
    char *qm;
7 \3 \4 i( y5 U, p1 V    char rec[70];
! K( F$ D$ t+ L% n6 a' _) S        double L_b=0;+ V+ q3 m: ?3 ^8 e/ w
        double lambda_b=0;* `: I6 W( b+ M* m- M) u1 D
        double h_b=0;1 n$ ~; q2 c" z. s5 H6 p
        double rate;; T. O2 w7 M& l
% @1 r1 Y2 b  ]; t8 {! `

% q+ i1 w7 k3 a& w6 j- I        // 外设使能配置
, q% `9 [" Q5 J. P+ i: l        PSCInit();
3 R2 c2 M- c9 T& _/ t* L& ]
1 o" B. l" i% _- }0 }# p        AppInit();. P& O: R" ~6 v6 H

+ h0 O. K3 [' j        // UART 初始化
/ {7 t* y" b7 C" V; {        UARTInit();
8 ~, m0 Z; a& h* v7 J/ Y& _% V8 D: A% x
# X1 ?/ T& A/ J+ E9 N% \        // UART 中断初始化1 P" u' ^8 X# y* U1 Z
        UARTInterruptInit();
, w; q" Q* ^% q+ i9 f4 d
- ~8 q* U. p# `. _7 K    evtRcvd = 0;4 o7 F7 S( E0 t
    RecState=0;
. k& |. O1 {: \# b' \2 r    /* Initialize */8 `  T! i8 r" m5 V3 ~7 ]" D* X

( y8 I7 L4 @8 {0 {9 [; S5 A    printf("DSP subsystem ready\n");
8 S6 g. ?" _8 c* k" q
) f$ `% M# }, t    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
2 P: ^3 U1 g2 R4 u! e& j; ~4 B4 D) {% C; _% T$ X, C; r
for(;;)6 f4 O6 Z+ C5 e6 ^. H) j9 l
{- {: L! k3 W- O) M$ W
        if((RecState&0x01)!=0)
" J# R; z/ B- B! F  x" k        {
; H9 c) M  z' B  \& ~" g3 F7 V! A                printf("liuzhenxing\n");; L3 V' b7 h, F8 T. z6 V
        }
3 j5 t% c+ Q( S1 ]9 Z        else
& ]1 N6 L; K) D/ t2 x3 f        {
# h' @0 y4 H* {# F9 z4 u+ Y       wait_event();
, {4 X) z0 \# ]+ u7 D' t; c, |4 _" z, r+ u4 _6 t$ L
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针) @9 s3 C, r0 X- P8 I9 h" r
$ q7 w- h$ L' i
           for(i=0;i<60;i++)
( E8 R  C0 k" @5 J0 n! S           {
3 l5 Z) j+ @1 e                    rec=*qm;# h4 g1 K4 |. y; Y; j/ ~2 Q
                    qm++;6 V; ^- V; M$ ^1 ~
           }- I0 Z7 w6 ?# o0 U
8 B2 O5 G; P0 d7 f
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);* v7 n) F2 a( u; Y( R3 i- L
. g, E& A! k0 t
           L_b=L_b_receive_double;/ u) |( K: Z1 t7 |- U
           lambda_b=lambda_b_receive_double;
* \* v  j3 a2 p4 s! v; O3 i! V           h_b=h_b_receive_double;% V0 s* b! L7 W
           for(i=0;i<3;i++)
$ g6 ^3 e5 ?5 A9 P                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
" l( Q% c$ }# J5 b/ [           for(i=0;i<3;i++)# `1 z* J" O" R: P7 W
                    for(j=0;j<3;j++)5 \1 u" C6 B3 z
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];" m( Y1 I% l, v- T0 O0 e* O
% k) j$ m* \% z/ c! m
                printf("L=%lf\n",L_b);
/ \! \# N/ j( b* y3 c4 ~+ f                printf("lambda=%lf\n",lambda_b);  P, \3 R, w7 j1 [& N0 S# @$ l
                printf("h=%lf\n",h_b);
# D8 w' H4 U( l9 S; Q8 D& h/ k* T  b, X% p9 \
                for (i=0;i<3;i++), a' u) z& Q& p; A! O
                        printf("%lf\n",est_v_eb_e_[0]);9 J8 V, d& Y2 x
                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 t0 `  `( p% P" J% }$ ]5 R                printf("rate=%lf\n",rate);& e! J, x: p3 K+ u8 O+ O
' k9 F0 M% @- F4 X. |
                CTM_to_Euler(est_C_b_e_,eul_);! z- k* q: b, c, k
                for (i=0;i<3;i++)" }4 f5 a- b& Y$ c
                        printf("%lf\n",eul_[0]);; ]4 C9 s1 X% Q- e
                printf("end************************\n\n\n");
4 \3 G7 N: }0 H) y- L" H& c; r- y8 a2 R0 T9 E" h
                /**********************************************************************/, w' `! E- L( f& q4 D6 I
% c0 {' ?/ f6 F+ K$ s8 t* }
            char flag[4];
* M2 M) ?" @* j) j  g4 \
/ G8 |9 {% G7 l: L+ `& s7 R9 p            flag[3]=0x00;) c9 S6 z$ F" B
            flag[2]=0x00;& g  e# r* e2 w! ?" r) F+ P
            flag[1]=0x00;
; t1 T" a8 X& t/ O; n            flag[0]=0x01;5 l$ i" _' R+ P5 [) K7 R

0 T$ e3 k9 m& v& v, h  N3 p/ s    /* Allocate I/O buffer and init with string */
5 t* U/ x  A3 D: Y. P% l    str_buf = (char *) malloc(80);: N/ M0 f* `3 ]9 j) ?. I; ]
    str_buf =flag;! Y2 Y4 p5 v- o/ N% A
. E% G/ p* S6 G, B( p3 d! G9 A
    /* Send buffer to remote CPU */8 Q/ f& b( x4 }1 E  P
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
2 ?+ K$ a; T% x  |2 E  Y: a# e- U" R$ B8 a  x
    printf((char *) myPayload);- w' k7 }+ q/ {1 Y3 P
        }. f9 ~1 U/ ?8 c$ T
}7 I$ p  t! Q# w4 e& D0 S! @3 O9 g
" c5 f4 C! d2 `% ~3 M; z
    WAIT_HERE;6 y1 [: ^# h: P
}
, }. ?) V. M2 U0 ^0 h2 d" H
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:: p" V4 _( q6 @% h9 |) d( i' ?9 y) [
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。7 G$ t! t( m: p$ {
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2102

积分

创龙

Rank: 8Rank: 8

积分
2102
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
# O0 r& H5 w3 p. L2 }, F. }/ msyslink 的初始化是否成功,notify 通信是否正常了?

' k! K8 |5 q3 q  d0 Z1 ]0 Y  `8 }双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
0 x2 h; ]5 E% U! Asyslink 的初始化是否成功,notify 通信是否正常了?

0 l1 H) i9 l# V5 ^& c$ E! i6 w我用的是裸机开发的双核通信,用的是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
7 x1 J4 v7 d- V8 }我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

8 M! `9 Q: O4 e建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 05:32 , Processed in 0.056505 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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