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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。; `( c7 [2 P: i5 c* `! }4 @' r
我是在DSP初始化这不太明白。; U2 k' d& Y8 f0 G1 o2 ?# v7 Z
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
- Q6 z3 ]( d  z5 K4 E+ X  O, \7 ^. l0 R0 w8 Z7 s
" O! \  M" C" p5 r/ V0 w5 Q0 W, v
首先        PSCInit();//UART0使能% X8 E9 \: ~$ S, u+ Z- M
void PSCInit(void)
$ _5 p- X7 f; |{
+ ^7 m7 ?1 d5 L6 X        // 对相应外设模块的使能也可以在 BootLoader 中完成5 o! ]0 O/ t: N* p/ e+ B+ j
    // 使能 UART0 模块7 e$ t( e+ W4 c3 K
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);3 X; V+ Z# D6 P0 [4 |1 C$ n2 G
}7 J+ @7 M( Y, a# n6 u" K
7 N- j: M+ a6 x# z2 u5 d8 X

& z/ R1 @) t+ O# D3 k3 t1 Y然后是 双核通信的初始化           AppInit();- ~' _+ z, ?& [
void AppInit(void)
( l+ T" J( Y: O! {+ v: H3 T{$ {( ~1 G7 F" n; A
    /* Structure to initialize IPC (see Ipc.h for definitions) */
& s) b, j1 ?; f% ~# o+ @    struct IPC_cfg ipcCfg = {
0 e) n( n* W/ ?0 T, u' E            IPC_DSP0,             /* local processor Id */: b4 d1 W  M) B5 T' ~
            IPC_ARM_HOST,         /* remote processor Id */
% v" g! F& Y$ s. P            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU *// C) Q$ s2 G" ?. Q3 ^+ {! d9 l# p
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
5 y$ r& {- z9 w            NUM_MAX_EVENT,        /* maximum number of events to be created */* K" g: [% J2 {$ y
            &ipcPvMemDsp,         /* local side private IPC memory */
  k% l; r1 N9 `% Y            &ipcPvMemArm          /* remote side private IPC memory */
8 }$ J6 U5 C( d8 `2 i    };
, _+ F1 M* q4 O: s( D/ i    IntDSPINTCInit();9 m1 \. [4 z- h3 ~4 W0 {' x" D1 W* X
    IPC_init(&ipcCfg);- w# M% Z9 }5 O/ d. q8 m
    IPC_intRegister(C674X_MASK_INT5);; w9 ^2 d7 k2 Q9 g0 |
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));* q. S9 ^1 i0 o

. {# Z  |7 w; P6 W; D    /*  Enabling interrupts for DSP C674x CPU */
, k$ T% Z. I5 B: R2 e0 r, x    IntGlobalEnable();        /* Enable C674x global interrupt */
2 r) D( ]2 o% g! S# p. _; G    iAssert (Notify_start()); /* This will enable IPC interrupt */
, e  e. Q# z/ D1 c}  C; q0 q* C$ `+ n/ S7 U# j
0 u- T5 b1 m6 j! X; j% U- M; z
然后是  ( ^. t9 n& J5 y4 F7 i7 E
            // UART 初始化
- u3 m7 [" `) T' X+ T# H& X            UARTInit();
1 ^0 d" B7 e. g" x4 f* P- j
1 k5 n% H9 q: W! ^4 S            // UART 中断初始化
3 T) s7 `  d' W( c8 k# A7 u            UARTInterruptInit();8 N& J# h# [5 K- e: S* _4 s! \

% [) G# o) M6 N; m$ r+ E/ H
; _; ~# D  ]2 a9 u8 ?. @void UARTInit(void)
# Y+ G  F) V# @3 ^7 M, x1 g{
  x1 ^% M( Y8 X        // 配置 UART0 参数
# M  M9 U, h5 b) B  x        // 波特率 115200 数据位 8 停止位 1 无校验位1 e9 B! H2 \% p% ?
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
8 D& u5 I( }' z4 L8 k( o                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);1 ^+ T) Q+ b7 r. j' c' L* U; O
        // 使能 UART0
; d9 S7 j; {: k& u$ Z        UARTEnable(SOC_UART_0_REGS);; b. M: u6 I' E& ]' l
: |3 n3 J7 n9 B) i
    // 使能接收 / 发送 FIFO
5 l2 u6 N/ h# E" d8 w1 ?//    UARTFIFOEnable(SOC_UART_0_REGS);5 E; \2 w5 O6 B) U4 d" V) ?

4 R* ^( w' P0 I& {6 M( o! w( i        UARTFIFODisable(SOC_UART_0_REGS);
* ^/ ^6 H* |# {4 ~5 \4 s  `" j2 Y& M2 ^5 Y# ]' K
    // 设置 FIFO 级别     接收FIFO的级别4 p$ G$ O6 T7 [5 G( g3 s
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);3 m$ e' a& v; ^; `3 k
}5 C) A' D* z# ~6 M- `5 m" p% Y

2 o4 I! {$ _, Y8 O2 j0 B9 r4 {: |3 ?3 C, r
void UARTInterruptInit(void)# q, K- J/ z7 [
{2 b: o! j* S# ^
        IntRegister(C674X_MASK_INT4, UARTIsr);2 P; \' M8 x+ S; m3 N
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
2 j2 i( Y9 }$ b4 }; i! Q        IntEnable(C674X_MASK_INT4);
1 W/ i4 I% ~1 ~9 \$ ~/ ~( g1 ?7 E) z2 t
        // 使能中断
7 @" |1 F" `+ k* @% q/ ]" @6 c        unsigned int intFlags = 0;, v; n/ x5 H8 O6 R
    intFlags |= (UART_INT_LINE_STAT  |  \
! O/ N$ O, O' x3 u& ]" j/ m                 UART_INT_TX_EMPTY |    \
# Z6 I" L+ m) L5 C8 q" M                 UART_INT_RXDATA_CTI);
( R5 |+ @$ }0 p% g1 g0 W# n" [    UARTIntEnable(SOC_UART_0_REGS, intFlags);
: Q6 _4 g8 _$ `% v* P3 N}) d+ l" D0 d6 \. Y+ ]2 s* B
- o. }1 U* y; b
3 z9 T; Q- L' h7 ^* k) o9 ~4 B) M) w
void UARTIsr()
* g& Y& T) [) O* e{" l9 |- Z+ ^5 I7 N  l
    static unsigned int length = sizeof(txArray);
/ V* P& C% m$ J, ~, }    static unsigned int count = 0;4 ]' r" q4 I9 g
    unsigned int int_id = 0;! t/ {1 \& \, d0 _0 `
2 s. l4 c) k  M' ?$ I. z& `

2 m/ d" L3 X+ K: _) A, H* n1 l* E: y, P' ]# j" a
    // 确定中断源
" g: o& ~" k- b0 r. I    int_id = UARTIntStatus(SOC_UART_0_REGS);8 w0 i* X2 K: q1 f/ Y( c, y: g0 [3 _
6 h2 `, q, C4 m: U9 K; s5 Y" s9 _; V: _
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。' @9 g+ X2 s* V! \3 @

; g# h  L5 L  D% q7 \* x7 J5 ]$ E) l/ s. \# u' \! m
    // 清除 UART2 系统中断
* ~- J& O" J4 ^& K( H    IntEventClear(SYS_INT_UART0_INT);# s! _- V6 r% W5 \

  u: r5 m3 B% F" _( I2 @0 W& s0 Q0 i    // 发送中断
' }  y5 ?8 W) S/ E    if(UART_INTID_TX_EMPTY == int_id)
6 x- w9 U& I. P# ]$ @. k7 }    {. \4 C# u; L; e3 ~
        if(0 < length)
/ Z" r) }. Z. q        {5 w3 s8 C. W5 u& t
            // 写一个字节到 THR3 X: q5 y" e$ m5 q
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);' o  z$ |5 U% D' B" M  z
            length--;% r# q* e1 j) i; X1 S% a8 L: k
            count++;
- U1 h1 t  H; U* P+ ^* Y6 s0 T        }$ W) k7 c5 m( _8 j3 W
        if(0 == length)
  k% C& P& A1 d! L; P' x( A        {
0 ^, D; b  d# i7 W# H7 T            // 禁用发送中断1 h6 x: Z: i6 o
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
4 S8 a1 ^8 W( S/ C( X; u& B; u        }
+ j9 E7 O  b8 I     }
6 w. L6 e$ i; f9 j4 B" \6 s! c# n9 J; y# B( M
    // 接收中断/ b& z5 o9 ^, g- @9 [) h( t2 s& x- A6 D  W
    if(UART_INTID_RX_DATA == int_id)
) m( V/ L" [, I1 p: N    {
. o% N7 l- O3 O% W        if(status_a0==0)
) ?0 O2 C5 n/ l9 \+ y4 U' F0 e        {3 M3 c/ ]% q% h/ F; ?' X" t% I
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
5 t0 |3 E: S$ n; F                if(a[0]=='#')
4 H3 O7 M+ H* R$ b( _# ^  p/ R                {( g7 b3 [0 u% W; }; ?3 _
                        status_a0=0x01;( C6 l) E$ I) I' i
                        status_a1=0x01;
7 E3 T' Y9 e2 _                }
8 M* Q7 O: T/ o  j! r        }( y6 K8 L0 U: j" _7 d
        if(status_a1==0x01)
3 S7 C/ _+ K+ |- _+ [- d* ]        {
( S  H5 I3 x, L: l% N                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);( j# E* w! p9 K: B, Y3 Y
                if(a[1]=='R')
5 b5 v% ?# d% ?+ A$ Q1 W! p  z                {
$ w- h3 n3 \6 L6 }3 m1 D                        status_a1=0;
" Y% l% t5 l, e                        status_a2=0x01;
7 `: L* B/ x& i( K% Q                }
+ B/ f, Z7 a" K( D        }
+ I! Z) D/ z' P, @6 R        if(status_a2==0x01)/ w+ ^+ {1 `% r
        {
) t/ l2 b1 Q8 A/ a( J7 d% {                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ l. o* Z: V5 |+ ]7 g! ?                if(a[2]=='A')
# f3 @" w: F7 j9 M                {0 |, k& Z+ ^6 _% v5 V7 Y* n: S
                        status_a2=0;
6 G0 x# ]. R5 o0 U( {0 _2 e                        status_a3=0x01;
0 v7 Y  \/ b, }                }+ M) B! }$ e7 E) c* c% i3 k
        }
/ b8 @3 r- R1 q3 S        if(status_a3==0x01), B4 h. L$ ~( k5 ~2 P
        {2 F- V5 a4 S1 j0 r
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);  o* N* D9 P( E+ h
                if(a[3]=='N')/ [' Y" N+ F0 E5 {1 n
                {
$ F+ T# P$ }" ?: L4 d4 R$ m4 v                        status_a3=0;
% I( J: D: ~% H( z6 W; i1 D! t. o                        status_a4=0x01;
* D* `' n; d" i% C4 z: F                }8 e' E: E+ k* u+ s) A
        }9 V- K: `: `) u
        if(status_a4==0x01)# ]9 I1 \' T) _: i' _
        {
( t1 q8 }+ w5 N* G  r                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
8 A& V$ g  W$ M, s                if(a[4]=='G')! j, A, h/ V8 Z: P! I& H
                {" d, f; A* z# m' Y/ M
                        status_a4=0;* E$ Z8 L2 p5 R- a3 @' g
                        status_a5=0x01;
! m0 I+ w; X; _( _" s" ?                }  h7 V/ E0 o! r
        }
1 P) q( _8 M$ U9 R        if(status_a5==0x01)
- w. v. q7 U8 b! O, p1 d! f3 [        {
9 I# p9 J7 _0 U6 B                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 V% r) x( ^- W                if(a[5]=='E')5 w/ t% A' R! `" z# V6 y3 O4 E+ Z
                {
8 k( ^' B8 t. S* @                        status_a5=0;
6 o) t0 L7 X6 C6 X+ `                        status_OK=0x01;6 s4 C; V& r5 v
                }
$ l8 J+ i0 A0 M        }
' [& I) s0 L7 f0 S            if(status_OK==0x01)
. b  X$ k* |7 P& J) D$ q        {8 w5 [* g4 o4 z; i
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);, c2 M. J1 O. G4 w/ c, R- v6 _
                        lengthrx++;
* Z1 T, _  ?9 o( l, o! n1 X                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
' i* y& O* C/ k5 k1 h                        {
) \( z/ a4 g& U                                RecState=0x01;
) m8 ~3 \2 ~5 m6 r                        }& n& S* i' C: ^( Q6 I/ w: s& i
         }6 K9 J2 u, a* F' Z/ M( r" R+ g: D

8 E. H! p5 B* S$ g     }
% R# c0 A2 }3 t3 n3 O+ u8 k% O  ]" n
    // 接收错误
2 ^7 I& Q8 M/ W0 o9 A    if(UART_INTID_RX_LINE_STAT == int_id)
  A7 C% j/ R" m4 B% h% t& B    {# j. H# [! t8 ~+ t4 H' N
        while(UARTRxErrorGet(SOC_UART_0_REGS))
! w3 M7 n8 ]1 y        {, {9 w9 c5 @! e: V3 y$ o7 W6 w& m( U
            // 从 RBR 读一个字节! D  k) a0 F- ]1 F- l
            UARTCharGetNonBlocking(SOC_UART_0_REGS);# U% r; ?8 x' |4 a
        }
( J  C* V( w" M' Y8 b* l1 {1 v    }
2 D5 n! |6 p7 k/ {1 T, y: E" k: }- e- B8 p( Z3 B
    return;
$ b6 F' [- {! w9 g: `5 Y}: }7 n: Q# A7 K4 J% v
2 h  A; l. Z% ^. d9 U1 B9 {. Z
# w% \, x: m6 x- W! j, H& i

" |* H; ^. E1 v5 U1 g6 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2137

积分

创龙

Rank: 8Rank: 8

积分
2137
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,. l$ l% O3 [" }3 L. J
$ _" |+ r( ]/ ?; E3 i' `/ p
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
# F; c- r9 w) j  ?5 J( _* p/ _  d% J3 N2 p( Q$ j; h" `8 L
要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:139 S) n6 x6 Z, _/ q& L8 L1 h
hi,5 _$ m9 D( v# S2 B$ k2 j! W
- _" s" V; Q% ~( g& C1 O
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
' f# x5 x1 I$ N( [( m
void main (void)
7 t1 \4 ?8 ~7 q" ~{
; e/ h* p3 A- i/ G# ^4 ]        int i,j;
3 w  H  G. X2 a: f: R    char *str_buf;! {4 l+ y1 z, _$ l; A: L; E
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];  Z& S+ y0 E1 ^/ `. u& H( b$ g
        double est_L_b_=0;7 Z. T8 [  C8 n1 j0 j" N) f
        double est_lambda_b_=0;
- n( \; J( F5 F; [, R% s( Q' c        double eul_[3][1]={0};
" ~0 y* j& q9 z+ L& G        double est_v_eb_e_[3][1]={0};3 Q% Q" Y3 B& t% M3 D
        double est_C_b_e_[3][3]={0};
" Y6 t/ ~* N( Y5 j* x    char *qm;" Y5 ]; y) o% n7 N6 O: Q
    char rec[70];+ p2 E* b( s" z6 I8 X
        double L_b=0;' E; ]- ^3 B% L- z- g) t/ V
        double lambda_b=0;: J. Y% U) [& z1 v8 @
        double h_b=0;
# J3 E" i/ \" k! j        double rate;$ T+ H, U9 {; E2 ~/ J
  O4 [8 g: s% X4 \  k# `5 T
$ ]4 c+ k# }' _7 R0 X
        // 外设使能配置4 C* L+ j8 C$ F6 o7 p) Y0 Q* @5 p
        PSCInit();; n$ R3 g& }9 P! r
) J9 Q  z( g& E$ @6 k% ~
        AppInit();
9 Y0 Y& ]/ n7 g  k9 ]7 O8 s( e! a1 U( N& I! f
        // UART 初始化
$ a# y6 F; d: [* i8 r        UARTInit();2 O3 [% Q- r6 T8 Y. U$ d$ X$ |$ D9 y& ]

6 p, h2 n, X9 \/ P0 S; h; l0 `6 S( s        // UART 中断初始化  `2 K* @- F+ K& D* ~6 W
        UARTInterruptInit();
3 [+ Q  J9 Z8 t! y" L& ?1 D( J* Z( f+ o7 Y, {) S
    evtRcvd = 0;
% G6 {8 O: ?! f$ s    RecState=0;
: @1 m  \2 I+ b0 o3 t% t$ b2 T    /* Initialize */
5 V# V) m! d* j. q$ G( ?
7 W/ L) q; z, Q" Q8 S) P    printf("DSP subsystem ready\n");8 l7 L5 I( i$ E; _5 E  f7 l7 K

  i* q1 Z' n" T9 }! d    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
& B& `" S: @3 F0 p
& k8 b. }( v2 l( yfor(;;)5 i% m3 |2 D9 q) j" C3 w1 _5 I9 v+ [! C
{
, ~: \1 @+ j2 @" I9 g) A5 M        if((RecState&0x01)!=0)
( c  `1 {( ^7 x2 N# i        {; [% g0 a% G1 E
                printf("liuzhenxing\n");! z6 k8 F) |1 P* R) z
        }
# j$ ?; y+ r  i7 X        else
* }9 q2 R/ K1 u' W- z, h% b! M9 U        {& o4 N% I9 {) P$ U5 B( k9 }' S7 j
       wait_event();; u5 j' o* B& f( ?& T* k6 d
6 i: k* \* A4 d, P
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
% v' w8 H% L) ]* a) F1 P# h( V* x
! R) b. l0 \& k" H& E; z6 b           for(i=0;i<60;i++)/ R0 v  {; R) O& C( p5 E8 V
           {
: i# ]  n/ _) [  v4 R                    rec=*qm;% v$ j, l  u! ^) h( h
                    qm++;
, R6 t' t4 k/ G' U7 T           }' a' B9 p  d' J8 I/ ~$ z% |( Z7 I
; a0 x% Q' Y' s- `/ E3 k. s
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);* Y# d/ e1 a4 r

( q. @; C6 @' I( h! W! W9 k/ K           L_b=L_b_receive_double;
* Y8 o) T- }" r$ N6 E; X           lambda_b=lambda_b_receive_double;
* K1 y4 g- @; H           h_b=h_b_receive_double;
, M3 K7 H8 g; j! A, h" {           for(i=0;i<3;i++)
% F4 d# V7 L( v  z6 ]% y' I                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];# b& `7 z( ^0 j
           for(i=0;i<3;i++)
- D; d* v. \" ]( r: d9 X                    for(j=0;j<3;j++)+ a/ V3 h3 ~" ?+ b4 r
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
1 M& X/ ]' r2 l4 U& F# p+ Q/ |2 l5 }2 K% V
                printf("L=%lf\n",L_b);
5 M$ o8 _1 s9 l& a0 }1 `+ R# F                printf("lambda=%lf\n",lambda_b);/ H8 M3 c8 }' U7 ^3 I7 E+ o: ^2 V
                printf("h=%lf\n",h_b);
0 y3 s8 o" \9 b- b4 m) H$ @2 A. |9 i' x7 U5 u7 K
                for (i=0;i<3;i++)
6 O2 U. G' I9 t- i7 t, H0 P                        printf("%lf\n",est_v_eb_e_[0]);
( p; A* V' ?# p1 J# x% P% L' o                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]);7 n" t! @  T8 a1 @" |( U
                printf("rate=%lf\n",rate);: g, J$ m) Q8 d. _; H$ v

6 ]# R# z% s: i3 L! T3 t( M! y4 W. \3 r                CTM_to_Euler(est_C_b_e_,eul_);
$ P6 F3 Q0 v1 c                for (i=0;i<3;i++)
. r  \& a4 L4 j9 L( b' Z$ `                        printf("%lf\n",eul_[0]);
4 }5 _$ Z% \  L) K' _                printf("end************************\n\n\n");/ i) ^$ D/ Q- B) E, r

+ a4 [# A% I4 ]7 z: U0 A# W                /**********************************************************************/
8 l& x/ e0 ]2 T, G
% k( C9 g2 V1 u- f+ _# }            char flag[4];, o* R3 O2 F; N7 m: V5 ]8 |

3 p. @  C& E0 p* \            flag[3]=0x00;$ O, ~, k  i: o
            flag[2]=0x00;
$ b' x1 d( x$ J  A1 {; l            flag[1]=0x00;
5 R: L- W) U, s# I: M* E            flag[0]=0x01;
" D+ q/ _/ I  @* `0 o7 n7 |6 z. k! ?0 S9 r) j
    /* Allocate I/O buffer and init with string */+ U* _6 P& x; D& T8 f1 M+ J# q
    str_buf = (char *) malloc(80);- N+ E( a$ X6 @
    str_buf =flag;
/ w4 v0 u1 q2 f# D& m% v
5 x' B; S4 l3 V$ \2 L0 M# l    /* Send buffer to remote CPU */+ Y. c% i. O1 S- W: l; P
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
1 Z5 w) s, c  `& o  K* p6 e9 S& F9 @# R7 i/ k6 k
    printf((char *) myPayload);
4 S. X3 n: m7 z& k# N% x        }
6 @! V) r- u  Y% s}
8 s5 A+ z0 G1 X1 H: T- |9 U- p& o$ S, K0 ~/ F) K* u7 K
    WAIT_HERE;3 M' w# e2 I1 [  v! [7 `
}
% G! A, {$ {& K. o  j. Q
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:* t, `7 H2 b1 f$ r/ E
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。7 n9 _% V4 ^. v. m# j
然后我把双核通信的初始化屏蔽掉,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
! T3 Q1 m# a& z1 B* F/ {) }syslink 的初始化是否成功,notify 通信是否正常了?

9 B$ x! e2 L# w5 L. j+ |双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:548 f2 M2 Z" h  j1 ?4 ]
syslink 的初始化是否成功,notify 通信是否正常了?

4 G3 f; z1 q- V& p我用的是裸机开发的双核通信,用的是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: e6 Z. ^3 }7 T1 ]3 \! f! m$ x5 A% J
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

. C8 ]( f9 f( K. u+ I! B  H建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 16:02 , Processed in 0.058408 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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