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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。  O) T1 g0 o% v: V
我是在DSP初始化这不太明白。5 F5 [: }0 P5 [0 V- G" R" `& P1 O
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
3 {% p* J. j. L6 c: @' \
* |4 E0 J8 O2 j5 N" {
& `- m: S8 ?" o$ w: G: u首先        PSCInit();//UART0使能8 u- {0 Y- z& B/ ?+ w, `# S
void PSCInit(void)
, M! ]/ H3 {% K' a  W{
) z+ p  l; S5 }7 f: b7 e' q        // 对相应外设模块的使能也可以在 BootLoader 中完成  u7 P) f0 Z* m
    // 使能 UART0 模块6 k# W9 j+ h4 H6 Q0 f
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);  `3 J3 F5 L1 p/ R; l
}2 V* @8 l, k/ k& G! A; A( @1 \

: v7 \: Q1 q; ?6 h' I# a; q7 H
5 ~* x% O# v( [9 h4 r# n然后是 双核通信的初始化           AppInit();
+ x) n' Z& Q2 W' Q8 i4 ovoid AppInit(void)
7 P; c/ O4 @0 h  R' |: c{
) t1 E7 F; X" @1 ]7 C    /* Structure to initialize IPC (see Ipc.h for definitions) */
6 x) b: w1 ]0 b+ _8 j7 z    struct IPC_cfg ipcCfg = {
4 L; w1 n# s4 z7 K            IPC_DSP0,             /* local processor Id */
$ e% |5 n+ ~3 R2 W& f! [0 B) k$ C            IPC_ARM_HOST,         /* remote processor Id */3 A1 q/ @5 ^5 p% K) k5 U
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */) d& k  T- f( w, w2 v: n2 Q& n+ }+ ]
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
. j; l2 f( R& c# Q            NUM_MAX_EVENT,        /* maximum number of events to be created */
! z" _" Y/ ?6 N2 w            &ipcPvMemDsp,         /* local side private IPC memory *// k; u# p8 F6 F4 e' ]+ |6 d
            &ipcPvMemArm          /* remote side private IPC memory *// v. ^5 d7 h: i
    };
, P1 W, k( P+ c  Z( O6 p" x7 ]    IntDSPINTCInit();. I" D  C  J* [6 O
    IPC_init(&ipcCfg);
( Z6 B( h8 l+ Q4 Q* [    IPC_intRegister(C674X_MASK_INT5);
+ M  _  B, v3 g( Z' j  y% _    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
0 m3 x: L; c" d% I: \8 e
5 E+ ]* y) M  K" m2 W( ]    /*  Enabling interrupts for DSP C674x CPU */4 k! F! f+ h. ~: d8 v
    IntGlobalEnable();        /* Enable C674x global interrupt */# T0 W  w3 E" o* w0 a
    iAssert (Notify_start()); /* This will enable IPC interrupt */3 b1 |2 M' c; W3 K  L1 E
}3 z, G& y9 B. g

: L' x! S: c  y0 k4 }7 Q6 y2 j然后是  ! u0 b8 n& v6 m6 i7 l1 ?
            // UART 初始化( c# M, {1 ^+ |( K) h- _1 j
            UARTInit();- E6 Y! c5 H8 c! z' x$ g
! l9 v( g  e" F0 H! k0 |
            // UART 中断初始化2 G* l: |+ k+ U
            UARTInterruptInit();
1 W2 c7 \: f5 A$ g* Z9 o+ j% m
. s/ _" I) f3 @& H) C& Q7 @
+ ?1 W2 k  F+ K& H7 A% v/ F
void UARTInit(void)+ I4 z, e4 f$ H9 |) |; m
{6 E0 l. z/ |! W- z; c
        // 配置 UART0 参数
0 I6 b+ F) l; x2 t        // 波特率 115200 数据位 8 停止位 1 无校验位
9 x) q" C1 E) r3 d    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,$ w0 w4 f# k' @
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);4 U$ t4 m" M8 z) @% I
        // 使能 UART05 I2 K+ n# B; E, E4 X- x
        UARTEnable(SOC_UART_0_REGS);
1 N: t" p, l6 W! c, j8 q6 L! x
$ ^3 u8 z, H' \    // 使能接收 / 发送 FIFO
# B5 _+ L/ P) `. Z  ~& @8 q//    UARTFIFOEnable(SOC_UART_0_REGS);
$ v  a8 z# E* |2 J3 N  ?% R( V4 O1 d2 E' i* G: g
        UARTFIFODisable(SOC_UART_0_REGS);) k' q9 F4 j5 N: }0 p: ~% I; T' l

3 X. d: j# @6 T+ v$ S0 T    // 设置 FIFO 级别     接收FIFO的级别3 ]8 f" d, H$ Y
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
3 G3 D( U! |8 }0 {: k/ L7 B}- D( x+ U  E/ ]8 c4 R2 h
+ r  S+ ^9 h! }# R5 `* J

9 A  G) X% d6 T$ bvoid UARTInterruptInit(void)
+ `# |$ w% K" W) e* `/ D5 _{* d( f4 [5 n. ~0 F4 Q. I$ w6 }
        IntRegister(C674X_MASK_INT4, UARTIsr);; B! G( K! r0 ^
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
! i  d, `8 z, A2 @1 F; j, i+ n: z        IntEnable(C674X_MASK_INT4);
' V" V- v0 ?8 ]- k$ y
: ~. D  Y0 F8 ^& K        // 使能中断
3 J$ o/ P: z& P$ r4 V: X        unsigned int intFlags = 0;
1 [! d/ U$ z2 z    intFlags |= (UART_INT_LINE_STAT  |  \
  t$ s+ a0 X4 z# @                 UART_INT_TX_EMPTY |    \
( y: N6 k6 D) T4 A3 g* C                 UART_INT_RXDATA_CTI);9 m. X: w3 b& M2 x. \4 [
    UARTIntEnable(SOC_UART_0_REGS, intFlags);" p2 c$ H+ K0 z9 {7 J. R7 S
}3 v" u' Y' c* |3 x. ~2 w

" [/ p8 P+ V0 o# _" V6 ^
/ i* x; f/ D6 e. b" v" |9 w  uvoid UARTIsr()5 d- g" K; f3 M1 e
{
; v0 z9 k& o! h" l5 P5 o    static unsigned int length = sizeof(txArray);8 o2 D4 k3 a( w
    static unsigned int count = 0;; |. z) i# Q: {
    unsigned int int_id = 0;
3 q+ H4 R3 }1 V( {- c& R  \* v# o" B$ a# C, T
: q, J) v& ^2 \) _, |0 M
$ T5 U" s& v- S" {& j* }5 C! }6 u3 L
    // 确定中断源
- A# `( V6 ~4 l2 E9 O    int_id = UARTIntStatus(SOC_UART_0_REGS);* r1 ^4 H: E+ `8 ^8 h, e8 X

2 Q2 ]& n+ B7 b4 E    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
4 Z  Y, V3 h2 \/ V
3 K; q1 d/ I8 u: @1 I0 z8 @$ f$ V8 n, N9 _3 k
    // 清除 UART2 系统中断' v& `( r3 E- t
    IntEventClear(SYS_INT_UART0_INT);/ N# ~% l" r3 X* n/ p: f: w- A7 ~
: q( K4 f5 I$ b- m# V; w
    // 发送中断7 ^7 e* ?: K+ a9 c/ E1 z" j4 ]
    if(UART_INTID_TX_EMPTY == int_id)& ~- p/ {: T" ^3 D9 u
    {; f8 G2 k( n  g, e; L
        if(0 < length)( ~/ {% C2 }. r5 `
        {
2 n. t3 G" V8 Z% F            // 写一个字节到 THR
6 w, \) d2 t* I8 R            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);0 `. W% D! h1 e+ j( U5 B2 L+ T
            length--;: O- _6 u! U; L
            count++;! ~( X6 L2 t$ b% x; k$ h$ V& \
        }( L0 b) ?0 g3 f9 _; s( m; t
        if(0 == length)* i) o6 k' e0 V! _4 t
        {2 J) F5 y- [# R( Y2 P7 b+ m$ q
            // 禁用发送中断) R- H7 m) j  e% }
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
: c) q4 `! B- b! D9 @2 I  I        }
& |. \2 |" x% C( j     }. d$ R  B9 p3 }5 g
) N# h1 B9 P8 z
    // 接收中断
, U$ d1 m$ J# u+ f! W) m0 H0 O. v9 _0 M    if(UART_INTID_RX_DATA == int_id)# ]  z9 ~2 J5 ]+ o! E: f7 b
    {5 U! L! T5 U+ [5 V
        if(status_a0==0)
  J" O+ n+ H8 L0 E2 H4 h        {/ O8 l: I; W+ Y- P% c; S$ ?
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* S8 A! \* X  _1 ^3 e# t, K  X) |
                if(a[0]=='#')( \0 F% a* y; k5 P5 u
                {
% e! j  B& ?4 r. ~' D                        status_a0=0x01;! ^$ g) E& Q4 T* f9 |9 Q, a
                        status_a1=0x01;
5 ^# Q- C" A! a/ R. P; J+ A% L0 o                }# a9 ]% H( ^9 g0 `
        }1 `! I  V  V! {  z% \7 ~
        if(status_a1==0x01)
3 T% g- k0 j1 a! P        {
. o  ~; A" @" o4 c6 ^4 Z  m9 r                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);1 P4 i  W* c$ \( Y
                if(a[1]=='R')
+ }3 d  U  c3 c6 r3 \& w                {' Z. r' w% B" }) {, E( V# O$ t
                        status_a1=0;1 h7 F$ ~3 k8 s# T# C) ~: r; t
                        status_a2=0x01;( |5 T6 k  N/ s* O( K5 J
                }4 |0 T5 U+ v5 w0 |% f
        }
$ N8 F) v, v* e: |$ n; g        if(status_a2==0x01)
  g+ N. D6 e$ N" X' B. d5 G/ E        {. Q6 m2 I9 z) _* h6 g2 j- v3 W
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 y8 x  e# v, w/ c
                if(a[2]=='A')
6 S; c0 c/ J1 R5 z                {
" O' i/ K$ U/ b1 P- K9 M& p) }" ^                        status_a2=0;3 ~$ `% Y* p4 J8 c5 L
                        status_a3=0x01;
+ q. d. L8 ?& X6 v( p                }
+ }0 c$ N, D! {! L( D; O5 j        }
  @8 ~, s0 Z2 l        if(status_a3==0x01)
5 H9 ^- i" P/ P        {
  U# f6 W* W5 o, s1 x3 k$ R: O                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
3 Q( L% x3 w+ R" F                if(a[3]=='N')
+ G9 E: F  B/ m0 V! X3 ~$ K3 F                {
% X; S/ O+ C/ G8 L, g                        status_a3=0;
2 l3 p) N( [) Q; Z4 E% d                        status_a4=0x01;; _/ \, G' w) l: M0 W' T
                }
- _, B& d- L3 p8 i7 B# N0 Z2 d        }  ?' }% y0 Q9 F- e
        if(status_a4==0x01)7 f! v& L1 Z6 _! _2 _- t: b) o
        {$ c, y% K  L8 ?' F
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);7 b( L1 D; W& M
                if(a[4]=='G')8 x# g1 s- q; ~$ ?
                {
5 |7 u! K- ]0 c/ l                        status_a4=0;
  [' e0 d2 C# g+ k, n& F7 r                        status_a5=0x01;
2 ]9 a) z7 L4 d% [2 A( y2 D' `9 K                }" J! T1 {4 Q) h4 n" n
        }
6 U& b' t- R" g        if(status_a5==0x01)/ R& A" N! d9 ?7 A/ f
        {
3 v4 \' m6 N# U1 G6 N                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);6 f$ q- u* u5 k& @
                if(a[5]=='E')
, E* ~* W  q8 E. m* R1 U9 [                {
7 u/ }2 W3 K0 [  \/ }8 c2 B3 _                        status_a5=0;
1 ]5 [6 i. A3 C0 L                        status_OK=0x01;
  ]9 r* b$ {7 ]& n# V- P                }4 Q8 M7 s8 w+ b- P: s* A- z
        }
9 n8 w3 @6 S& G; s8 f6 F            if(status_OK==0x01)& o( y( a3 U8 R( z& b
        {' x/ V: @) J& f3 s$ x
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);  z9 ?2 e6 [+ Y& N* a4 J" s
                        lengthrx++;8 i4 s7 |# N+ e) D1 I
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
& x- ?0 y, l4 @' S5 F9 D                        {
' ?0 x* n" e$ n' V                                RecState=0x01;
1 w" n3 _, P/ ~                        }
1 l! T$ S& }8 |/ A3 K+ `1 U         }  `: f2 h0 [( n1 y4 G

. c  b4 j6 J8 ~1 k     }
5 P0 c; \; V- ~
* F! r, ?- d9 I/ P3 f    // 接收错误
- N" d7 B" ~3 j1 W9 G$ X4 {! C) f    if(UART_INTID_RX_LINE_STAT == int_id)
' T$ d) V4 n4 ~% C. A7 h: B, |- y    {
: I: a9 w) ]* Z  j. `        while(UARTRxErrorGet(SOC_UART_0_REGS))
  S6 N& K. O- M' ?) W; o        {
. J$ d8 U( D" C6 F6 F$ b$ v0 D+ h            // 从 RBR 读一个字节
3 m8 |6 Y& c. L5 Q$ U/ \% k            UARTCharGetNonBlocking(SOC_UART_0_REGS);
" O$ J' S: b( o        }
; k; W1 I9 e( @: D$ ~6 R, [" }    }4 m9 o3 s8 i" @: n9 j4 S

6 y# Y3 j  }+ a( x( B, M/ [    return;
. }0 o# D- a8 t/ Q' f2 \3 F}+ b3 B  u' J! c
( u% G$ K* Q, o8 H2 a$ K
9 w' J" E" \2 s4 a% X1 y
- H6 o% E/ O+ t% e4 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2096

积分

创龙

Rank: 8Rank: 8

积分
2096
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
# x' z+ l% i) @/ O" p/ _& b
: m6 v2 J. P, KUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。8 i) ?' `5 ^( k: a- t6 X) H3 ~

/ S' j2 x1 ?( S) K( K0 m3 ~- y2 |要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13- |0 k& ]) d" f6 h1 x
hi,
4 {# z) P( R: J9 {; o  y( `8 T, ~! n7 v
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

6 Z1 G4 w+ b( i3 _4 K2 c3 f- T# tvoid main (void): e- y# S" `( u% D3 @
{
6 ?5 r7 W: I4 a7 F8 C4 x  z2 V# U        int i,j;
  y# P6 n! @3 `( o% _$ k. F    char *str_buf;
8 p7 T+ S+ U; R: }    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];: F; I! g! p" T9 w1 h1 M8 C3 {* r, M6 m
        double est_L_b_=0;. e2 O4 Y( R$ S
        double est_lambda_b_=0;
# r8 N- {. T/ j1 `2 U- n        double eul_[3][1]={0};
( a' c$ |$ H; o. b* Y7 L        double est_v_eb_e_[3][1]={0};. p+ C9 @- Z) A/ ^& G. w1 F
        double est_C_b_e_[3][3]={0};1 w# F$ N& }4 m+ ?+ \
    char *qm;% U) n4 A! A, C& ^( g4 j
    char rec[70];
1 b' S) b8 ]5 g        double L_b=0;
1 j) G. u2 r5 q. Q, F! b        double lambda_b=0;: z. D$ I( D" v7 v. H8 \$ V
        double h_b=0;$ }4 o& R4 w8 Z
        double rate;  N% f6 B7 ]8 o; o

% z5 m# z* Y+ B  J# l6 c$ y" \/ S7 Q9 ~
        // 外设使能配置
) t" r# a  f8 H& T0 n" I        PSCInit();3 M( O4 A8 F- H* K, D3 l

; |) m1 T# m- a        AppInit();
* n: w  R! p+ k  t% _
3 I3 \: j! N' A$ \- V        // UART 初始化
: |# `; j5 t; L2 d' |        UARTInit();
# B+ J7 c* u2 F& d& G4 [1 y: C6 h3 c5 e2 T$ y9 s" B4 B
        // UART 中断初始化
0 y. X/ v% |% X- `: ?% v        UARTInterruptInit();
1 c( y1 y2 L, w$ `. t
3 C$ p. G: }0 T/ f" d    evtRcvd = 0;
" n; z) \% G0 t+ c, d/ I- @    RecState=0;" X' H+ G. C6 c
    /* Initialize */* v! z3 T( w5 P, a$ e
0 _0 R3 V  a* w% F' t$ k" G
    printf("DSP subsystem ready\n");# {9 l4 ~  |) ~* k# [# ^
5 Q& P  g' R1 ?
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));4 ~9 I, L2 [+ i3 W) ?  W0 y

( T4 ~: E+ F. e/ `0 T1 T& tfor(;;)- U& P% J4 e9 e3 _' B, h: ~3 q
{8 I0 O! h6 ^' z% c, p
        if((RecState&0x01)!=0)# ?6 o/ X- \8 W! N
        {
+ F  ?$ s! o; ^  c                printf("liuzhenxing\n");5 t# `! u8 D/ E* C9 ]
        }
3 C9 O' B+ |$ A  y) ]        else
9 V6 u9 L7 M$ E7 t/ _1 J) K% R        {
& z) k% O" Q) I9 Y* ]2 f/ w2 D       wait_event();
1 C( g, U$ s$ f: x* q8 t
) `& a) I1 k* x% Y4 A4 i. ]           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
/ J4 h$ y$ K, j" [! u( C% l
! b+ [2 ]  G, x           for(i=0;i<60;i++)5 @0 q% h: s6 N% k/ @/ i8 l
           {
4 L/ s  i* @) c  n                    rec=*qm;) L, K# e5 ]7 q+ t6 c
                    qm++;- l( A/ ?2 a, o& a
           }
) S" z+ p4 A7 ^  g& ^' m9 F: H, B" {& c
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);& e9 q9 C6 S7 _: b

# Y7 v/ q8 j, F' ~           L_b=L_b_receive_double;
4 t* ~( ?8 @* T3 m3 f6 c           lambda_b=lambda_b_receive_double;
1 D: \9 a- d% b2 _0 t! G  e           h_b=h_b_receive_double;
  O; a9 h- ]- V3 C) a           for(i=0;i<3;i++)
! j1 }; P& A: d5 y2 {5 v2 b1 A                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];  l; k: u3 C" @, l# t5 e
           for(i=0;i<3;i++)
2 k" W- y2 J* a! W3 A  e( C" @                    for(j=0;j<3;j++)5 W% W# q4 i; y! ?
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
: }# I- O3 Q4 D8 u- |8 E5 {, A! ?. }0 V9 f3 P6 e
                printf("L=%lf\n",L_b);
& B" o& r# p$ `; O9 H$ ?- J4 z                printf("lambda=%lf\n",lambda_b);
7 v& z- K0 n" ]; Q3 }                printf("h=%lf\n",h_b);6 o8 T4 Q+ w0 W! b* V: s7 k

+ K6 l, @, i3 M" H8 ]" E                for (i=0;i<3;i++)
+ m/ G- E/ [0 w1 U                        printf("%lf\n",est_v_eb_e_[0]);
$ _" u% z3 Z# O1 k) W                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]);
. y7 y0 Z. V# o1 ~5 i% g                printf("rate=%lf\n",rate);
: D4 c! U) o) M0 l" N6 B
4 c- [5 |0 N; f" G% d  K. Z  \; T1 u                CTM_to_Euler(est_C_b_e_,eul_);
7 h, x8 T7 \6 O' X$ d                for (i=0;i<3;i++)8 x- F3 j% }1 w" J' j
                        printf("%lf\n",eul_[0]);3 ~- h6 F7 K+ P* s6 D! T& O$ Y
                printf("end************************\n\n\n");' I& r/ n* {# }/ s; g0 W/ H
: _( L2 u. Y  Z7 [
                /**********************************************************************/
( F' n; ~# Z+ ?# c
$ Z0 L1 x9 n; _, o3 k            char flag[4];
9 s( x$ y: w0 ^8 t) p, G0 f3 G5 e. t4 K8 O" _* o
            flag[3]=0x00;
! Q- S, p4 `$ m. Q* C8 @            flag[2]=0x00;
6 A4 p2 Q& O4 F8 S            flag[1]=0x00;2 y& L/ q; d* T0 W; p8 U( Y2 Y7 K, H
            flag[0]=0x01;7 o3 ?. K% q3 D6 P6 a7 q2 I9 t' d" c
8 i" ^7 C3 P( ^7 C! E: K
    /* Allocate I/O buffer and init with string */
' h7 e% c1 b# D/ @, }! R- N# H    str_buf = (char *) malloc(80);# I7 i; x3 x& }
    str_buf =flag;
# M* R  q  L  c% u" K: N6 c7 D2 F( I; C# Q$ _
    /* Send buffer to remote CPU */9 r8 M, t( O( a! x. \
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));. r! r, b# W1 A; ]- O- G

  C: O& m% z1 F6 m% ~. x) D) N    printf((char *) myPayload);
+ ~; G- o& \/ z! @$ G        }% x2 O$ v) c# ]5 G' d
}1 G3 z6 X$ [2 N" j6 x
7 w0 Y' N# @. ^
    WAIT_HERE;* ~6 M2 q+ _8 M5 @: Y4 e2 g7 j) l1 D
}0 \' X2 F9 k2 K& l/ O- m
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:! J5 S% m9 z% _8 ^$ Y8 l
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。% k1 ^* a7 _' U0 A% T( Z7 ~
然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2096

积分

创龙

Rank: 8Rank: 8

积分
2096
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$ a3 D: X; ~& p% n" R
syslink 的初始化是否成功,notify 通信是否正常了?

  L0 ?1 l) O' A- @双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
. H' {1 e. z  u7 @7 Msyslink 的初始化是否成功,notify 通信是否正常了?
1 N7 s* [2 L0 D( |. H
我用的是裸机开发的双核通信,用的是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$ m6 c5 w+ w  W9 D9 z0 n6 P2 h
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

; U) M% I9 v5 ?" a  b% B建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 06:36 , Processed in 0.053875 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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