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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
* N& G/ a" `( d! b  L% e我是在DSP初始化这不太明白。
; a4 z+ e  y- }# j6 Q初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。$ I% ?6 c0 S5 n( C
2 p* g3 F% G/ D) C+ V
* b( A3 ^( P7 {* r
首先        PSCInit();//UART0使能- f# L- v8 o2 K. a  E
void PSCInit(void)2 V2 V" f2 ?9 b0 E- }( [: b- f7 A
{
% e6 r  C0 A2 C7 ^  j- J9 ^        // 对相应外设模块的使能也可以在 BootLoader 中完成5 |+ P/ @. r9 k; C
    // 使能 UART0 模块$ {7 p5 `' C1 g
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);( }) S/ \" U- h+ F: K9 \! j! F6 I
}
1 b  M/ _% x, T$ b* ~& \

! B' q/ t( D2 y: `) Z9 u
9 \: I1 {3 `$ F; T" }1 ^然后是 双核通信的初始化           AppInit();- q% p* s: e* ]( Z% ~, f
void AppInit(void)6 |$ P& W' b2 y4 s
{0 B6 O6 i1 C4 i' i8 C( k
    /* Structure to initialize IPC (see Ipc.h for definitions) */! G3 ^7 S$ M* v
    struct IPC_cfg ipcCfg = {
, F) j; h- G& ~* d7 u3 f            IPC_DSP0,             /* local processor Id */# K: q1 L* q# D
            IPC_ARM_HOST,         /* remote processor Id */+ ?; z4 I/ T2 y/ I
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
9 l2 s' z9 q# G4 I# |            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */1 J5 z5 g) V' {$ t* g/ _) E* w
            NUM_MAX_EVENT,        /* maximum number of events to be created */' k3 z6 ]& n6 _/ a: I/ y
            &ipcPvMemDsp,         /* local side private IPC memory */' J4 x% l4 m: d/ Y' f' g
            &ipcPvMemArm          /* remote side private IPC memory */! V% x5 ^) c9 x% s; ~8 n/ y& j
    };
* s0 b- I6 Z7 L2 u$ T5 K9 j    IntDSPINTCInit();$ {2 m$ N) C/ V  T
    IPC_init(&ipcCfg);  R0 q, o0 g* D4 O& M8 l3 h4 N* Y4 m
    IPC_intRegister(C674X_MASK_INT5);# Z! R9 f7 }/ U, G- q
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
" Q8 \7 v7 e; i2 {
- I2 Y& L& d8 j1 T9 @. o$ m7 Z6 \- f    /*  Enabling interrupts for DSP C674x CPU */
% k1 d' c3 c3 c' i5 k2 a    IntGlobalEnable();        /* Enable C674x global interrupt */! _" F  x3 w" e& f4 z  [! w
    iAssert (Notify_start()); /* This will enable IPC interrupt */
) }# l" n9 X/ H& y}
$ {* w1 R% u9 Z3 Z) }  r8 ?

3 P2 g7 W: a1 c5 G1 t) J! C然后是  
% q& ^2 z  e: n0 F: f            // UART 初始化
! O, r: X$ T3 \  S+ A1 n" H: |. B            UARTInit();% x9 K( |# V- i+ e
& g4 B  P& C2 G! Q1 k' _
            // UART 中断初始化
% D; \1 c  y* _  q- j            UARTInterruptInit();
+ T3 u8 N9 {& n% \5 b) \. Y6 z

+ E: m/ ^' O/ H* D' N( m8 y6 p6 f# D' R) N& Q" F
void UARTInit(void)7 S) o5 Z; a) _0 Q
{
& T2 L' v& k8 j& M& E0 K3 w        // 配置 UART0 参数
5 u+ T0 C( _: @        // 波特率 115200 数据位 8 停止位 1 无校验位# v/ I* q! ?$ a% J' {' E% |# F
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,; E$ y9 \# R1 |0 h
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
8 p$ S% f% T* A7 Q: z: i        // 使能 UART0+ v% k& m9 p; C. J
        UARTEnable(SOC_UART_0_REGS);& w; j# ?+ B2 U& ]4 d
* k  V# {2 P. ~$ `
    // 使能接收 / 发送 FIFO! \0 N$ R9 q- L- s
//    UARTFIFOEnable(SOC_UART_0_REGS);% e& F( t. U9 ~9 J2 J0 u$ ]
- s9 C. q$ U* ?- m: B, K
        UARTFIFODisable(SOC_UART_0_REGS);; y! ^4 o% d  ~7 u

+ n" g: e9 q( i+ P2 E% i; o    // 设置 FIFO 级别     接收FIFO的级别
/ w  X/ s7 y: \//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
; b7 e: L2 V% c0 t6 u+ u, |  E}
1 F4 e4 M; ?: Z- R+ n1 y& v  q
* \: l0 O$ a# s
% J: G* C( h  c# `+ Q
void UARTInterruptInit(void)
4 x$ n8 j, ^) H0 `; [{
( x- h0 ~* F- D7 d2 ]% Y) E( K+ l. Y        IntRegister(C674X_MASK_INT4, UARTIsr);
6 Z7 H/ U0 b- V, J* H        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);: |+ q) \" J! n0 K6 N
        IntEnable(C674X_MASK_INT4);
6 C5 {) E4 A( ^% k  }2 ?: B7 j" V) |) m& d
        // 使能中断
2 R0 n: R8 o  V0 J" }5 g+ j        unsigned int intFlags = 0;0 w# J9 |0 e8 j/ W; g0 z
    intFlags |= (UART_INT_LINE_STAT  |  \" {) W, p- C$ N4 K% X' y1 p. K
                 UART_INT_TX_EMPTY |    \8 ?8 H6 E- T* P4 d# R6 h) e* B8 z! t
                 UART_INT_RXDATA_CTI);0 m/ `0 r, _' ~, A. M2 i$ R
    UARTIntEnable(SOC_UART_0_REGS, intFlags);4 T8 C' f0 h( ]( p
}
. z. Z9 u/ w, I  H( m
' j: Z9 w" V3 i# q$ Y" {. U/ y& c
0 n! s1 w/ d/ O; p2 ^9 I" [+ q
void UARTIsr()
0 e7 d& W! c; l6 v) U6 P( E{
! d8 ]" z& i+ J% K+ ~    static unsigned int length = sizeof(txArray);
+ Z" b( ~/ n0 b) P& G    static unsigned int count = 0;0 B, i4 U( h! u  P
    unsigned int int_id = 0;
, @, \! G0 g# c5 `
" c' f6 }9 M( `4 F" V) }3 K& _+ x! o

7 ^6 M5 b# D3 ^    // 确定中断源+ f! M3 F2 W  [9 N
    int_id = UARTIntStatus(SOC_UART_0_REGS);" {, M; h8 F; o0 B
$ j3 i8 s4 v1 ^' I% U
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。1 ], |0 F0 v9 ?2 p+ S/ U. K/ \+ v+ z. H' {

' t  T& K. M& o8 j, m3 Z* C" q6 w3 H$ n
    // 清除 UART2 系统中断/ F% Y) N2 U  e) O0 C% j
    IntEventClear(SYS_INT_UART0_INT);
+ Z0 P/ C8 C9 m4 i' v- w% `
. X! @# i6 O) E0 I  b8 q1 E1 F3 a    // 发送中断/ l0 a! Q% ]: I7 r/ V( g) N
    if(UART_INTID_TX_EMPTY == int_id)
" [2 b+ C$ M, s9 A1 X3 A2 f    {) d# q# M4 V8 p' {. `. D, l" N
        if(0 < length)
( _2 E0 }6 _% `' Z% {# C$ N        {; n; z5 I, S; x2 |/ q
            // 写一个字节到 THR
  \" k2 [* S( G2 u8 Z            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);; `7 D+ P* n  p: H* \7 R+ {
            length--;5 c* f& e! w2 v& d& A- g8 n
            count++;& m" l) D0 ?- b0 l0 p8 w3 c: [
        }
' J2 d7 v2 _7 O        if(0 == length)
6 r$ l+ ?+ L, Z8 d2 _) z) t4 Q6 c        {6 O* J* J% ^: C) _+ \+ E
            // 禁用发送中断, M4 `' m2 U2 b3 l3 l
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
6 z2 ?, W9 ~4 P0 ]# x& P7 b. f        }( U% E" ~# w2 s
     }
% x& `2 e4 A" _& |9 k- U6 d' k4 u8 T0 g/ E- e$ U0 Y
    // 接收中断
/ `4 J9 a5 V8 \! x7 [    if(UART_INTID_RX_DATA == int_id)
/ w/ z) c! i- Q  d9 ?9 N    {7 S0 E) G, C* B2 [7 Y+ s
        if(status_a0==0)
" Y, Q. Y" T3 O& |" e( C& ~* b0 v        {( Z  M3 q! o* N6 c2 H2 Q0 B
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
% G* F! T# u4 b                if(a[0]=='#'); L; }" T/ z" f
                {
9 o$ w% J. O' Y! O& n$ Q! X6 ^                        status_a0=0x01;
( Y3 |! U& y: e" T/ c) }! T: s5 E+ B0 M                        status_a1=0x01;
# G$ ?  [. k. N7 g! R                }
: V& s! @& w+ @. D6 X1 y5 L        }% ^/ q" F. o& B+ R9 Y" A1 w/ g
        if(status_a1==0x01)
4 R8 n7 p, f5 `# K+ `, I5 N1 p2 z        {( [4 B# W3 H5 A8 D3 J
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);, q) v; r) X3 Q# O
                if(a[1]=='R')3 N+ B( {$ I+ l& p
                {
9 S2 X) }4 f5 u! d                        status_a1=0;
5 H! s, c& b* `" m1 x                        status_a2=0x01;% V2 L2 }  u8 ]- U- S7 P  `
                }) i. M' p- B) v; L  h
        }; F/ }$ T" [: `5 C0 z( t" D
        if(status_a2==0x01)+ |, a* c+ P6 J* d
        {1 A4 X- Q/ ~! I4 s/ h
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
. Y. L: a5 B% q- p$ V  s0 |                if(a[2]=='A')2 g; |' v# i% _0 c1 b$ h
                {, ~2 m. u+ Q. C, P
                        status_a2=0;
1 y4 U+ }. y! N% J1 r7 D% |                        status_a3=0x01;
5 j5 S9 v# l% e+ ~                }
4 Z5 n* f) j8 j: e        }& W$ F2 u; Q: C0 H7 F
        if(status_a3==0x01)1 l) V/ f5 P2 v$ s+ N
        {
- p; j5 Y; X5 l; _! _0 L                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
* m. {8 z. K! H: q  V) \4 t+ `                if(a[3]=='N')& }' B  J, l1 U  Y# P% h8 W
                {
. Y- v9 E! X+ L2 V1 e! _                        status_a3=0;- c6 Z' V' p$ b  ^9 ^( N# M* B
                        status_a4=0x01;
; [, d  m$ f2 N3 T                }$ H4 G" x; C( i; V3 y
        }
& \+ s( F! x5 ~* v        if(status_a4==0x01)
3 A) y: c2 B4 Z$ L+ x        {3 y/ j" ?! @3 W! F/ l
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
( `! j" \; i/ v1 l                if(a[4]=='G')$ |3 o0 x( v+ S/ \
                {  H1 i7 e- u$ _% Y1 v" R! T* }
                        status_a4=0;, L5 o; m9 l5 _' D' d
                        status_a5=0x01;
3 U; s  k" p3 D1 i5 J* Z9 \                }: Y- B) |7 T5 f& q" s; O
        }
7 K0 T2 X4 v* i7 X        if(status_a5==0x01)
* C4 \5 B6 l' o9 y$ z        {
: n. ?3 X8 b9 J- r: I: E7 s" N* H                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);- v! Z! O' Q) {1 d
                if(a[5]=='E')
/ F7 G- P& m6 V# {2 G* k6 |2 P4 H8 ?                {5 L5 @$ _: _3 w5 z4 r/ V
                        status_a5=0;& B" L- U8 f1 q& Y
                        status_OK=0x01;% {6 w+ o. m1 X) b
                }
* m. h( }$ _+ Q  F- ?" \2 I$ ^        }
4 w# b  j, `! P' c            if(status_OK==0x01)/ ~* V; F; Q/ x2 r
        {- W' s+ z, j7 I! j  |+ ~
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
5 N: Q0 B' X+ G- @7 L                        lengthrx++;4 E& b9 n/ M, }3 V) W
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
5 j7 ^6 r5 I9 Y$ h1 z6 z                        {
+ }2 n8 I- ]- M  r                                RecState=0x01;: u$ h. ~: t. e5 R( r
                        }
# }9 |4 }0 s* X5 \8 {' A         }9 I: ~- `, I0 v7 u3 H6 ?4 X) `8 `

5 I8 `* }; d& s& M1 {7 x+ A6 r     }
  q- l- \5 c. m% j) [# u4 S' K# T% |2 }  v) y9 U( z7 V6 M
    // 接收错误
1 v, d) h- O9 W4 B6 {7 k    if(UART_INTID_RX_LINE_STAT == int_id)1 O: d8 Y, d6 v$ d) t1 N! X
    {
4 g- e" |3 N9 k9 N) v        while(UARTRxErrorGet(SOC_UART_0_REGS))
  l. n7 j& V5 X; q! M$ R        {3 g0 Q- l; J$ C) ]8 i& a
            // 从 RBR 读一个字节9 n3 P& ]& K" ]* ]! T
            UARTCharGetNonBlocking(SOC_UART_0_REGS);: R% _7 Q" R% k) ^4 C$ o
        }0 L& y0 `  Y0 u' F! n4 m, O( `  l
    }1 P& X# A0 m3 P2 E9 `

% C+ S4 o+ `; H% B9 }" K* \8 K    return;+ b; A/ e5 ~0 @
}* s; ~5 J2 ]$ f! i" `

* O9 E8 W, }! b# ?9 P
) s: @& [8 |& O$ H" Q, T

! t- l* R% G6 o9 |% {2 l9 t$ ^4 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2102

积分

创龙

Rank: 8Rank: 8

积分
2102
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
6 A$ ]5 M8 w) B4 u& X4 T, a& ^( d9 E2 T  X# \
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
# t3 z9 A8 m2 s$ N
9 w9 V. ]0 r% c要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:134 b3 F" T7 e% T
hi,
9 U" L3 _5 o+ u( s, Z4 F+ G7 I' e7 @7 _% z3 d: R
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

6 A0 q3 j7 h% C( f2 S2 j' Nvoid main (void)9 w  O4 Y5 l4 t- f! b; V/ c1 ?3 R" X- m
{# S% t! V6 @/ Y  i' A9 V7 ?/ U* S. W
        int i,j;
) G% h& r7 |$ I5 A$ v1 c    char *str_buf;9 @- R1 }8 {: A+ w
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
! X4 S6 L9 Y% `) j) ^        double est_L_b_=0;
8 d' [2 v% s/ J% ]* x5 d1 ^        double est_lambda_b_=0;, f( o6 W4 u- D
        double eul_[3][1]={0};/ b6 W0 W) M: M
        double est_v_eb_e_[3][1]={0};
% f- i/ _% K! D/ O% q6 w. s! o        double est_C_b_e_[3][3]={0};
# e/ W/ c0 l, l* r    char *qm;
3 x! j+ a7 Y7 _    char rec[70];; L. E3 H- q  f$ B) F' Y8 S
        double L_b=0;
4 `0 b1 d/ f5 ~+ z0 v1 I" r        double lambda_b=0;
3 P$ T8 w. H' c+ U7 ~        double h_b=0;' M4 H. O0 J1 ^) r) v) R( p
        double rate;1 r' ^' K6 B$ |8 N9 f

, {# C9 c/ h7 k8 T
3 h% a6 x  e: }+ r$ Y        // 外设使能配置" |4 `& n& s7 t6 ?2 y4 C
        PSCInit();
/ V" K9 w! C. m6 b
' }1 P! X& U' B3 i  H        AppInit();
! V8 J' q+ z* ?
) Z: X8 g' @# A        // UART 初始化1 R; z0 B# g: e. E& Q- z4 [
        UARTInit();
# P2 _/ y( ~& u  X+ x9 Y9 V; m: G' s4 @
        // UART 中断初始化
' w: x8 q5 a0 g/ s: Q1 m  E3 q5 D        UARTInterruptInit();
' ~6 X. Y% r! @! t! O4 e
/ m8 i7 A1 @  P" M% C    evtRcvd = 0;  K' ^* X" u3 Q/ l
    RecState=0;
/ ^% U+ q& |/ K- K' u    /* Initialize */9 `; \0 I  m  t6 W
% f  b, e) ~: m( u- |8 F$ l
    printf("DSP subsystem ready\n");8 o9 G( S5 G8 \2 A4 `

0 J% |' K# h! P) S, s/ b    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));( }0 s: ^4 j* I  i
" B. }; {/ P( S% h/ e: x9 E4 E
for(;;)
+ u) M+ T  i2 S( |& O  G{
6 X2 i: L# a8 j        if((RecState&0x01)!=0)4 R5 V+ y- r$ W0 i
        {
+ M: L8 r9 d' O8 a* L: a/ \                printf("liuzhenxing\n");# B& C9 B: O$ `; B0 w+ U
        }' z( \3 t) C; L& T7 n2 |0 ^; M% ^
        else: z5 E$ `, C( }1 @
        {8 b: `- l8 K0 o4 x' J7 h
       wait_event();
; K- q) v! Q$ E/ b8 v, z5 {$ z  l- X4 c" o
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针# Q5 F2 O; h# ?+ L; p
3 y) p+ D1 Z* O9 |% N3 k
           for(i=0;i<60;i++)4 I9 K% P7 g7 C* M" t
           {
# U9 p$ A( d7 l% C7 T* g, Z                    rec=*qm;3 X( S/ `; U8 U) Y, O( n* Z# O
                    qm++;
$ X/ n5 F6 h* M9 i8 N* ~           }3 J: ]# F4 C, s

2 ?9 ]/ S, Q6 Z$ a" E           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);2 m  j5 k% v6 W  F
! \) y7 `! m* }/ p
           L_b=L_b_receive_double;" K/ ^. y9 V0 q, T  h- [& j* D' H2 [' [
           lambda_b=lambda_b_receive_double;
7 ^( K$ H* ]# @6 [  ]! n; S           h_b=h_b_receive_double;
- z- ]  ^$ X, k2 D) f! f- ^$ e$ _3 S           for(i=0;i<3;i++)
! y+ ^$ S: ?' p1 m; d" j' ~5 P& |                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];+ {' L- J9 T4 Y: Z" s, v& n( |9 A
           for(i=0;i<3;i++)
5 D* ?' G( s8 z6 Y$ `9 I                    for(j=0;j<3;j++)  ^; g& z2 _+ K
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];' V3 j0 A/ m6 f% z; Y# L
' l; n0 T# Q  L7 g
                printf("L=%lf\n",L_b);7 ?. `  e4 K+ }" Q0 L9 b) E$ z
                printf("lambda=%lf\n",lambda_b);
4 m% H: Q$ D- e) a4 E                printf("h=%lf\n",h_b);
. y. }. O& [4 D/ X: @$ P
, d1 ^" ^8 A) `6 J- J                for (i=0;i<3;i++)' R1 }) G! F) h& ?" G/ I
                        printf("%lf\n",est_v_eb_e_[0]);8 `* d5 V) ~' h* W; m3 z, 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]);# |5 W  R5 i, s; ?3 j
                printf("rate=%lf\n",rate);- H0 ?/ T5 E( b1 ?3 q  U2 j

, k2 n) K, B3 N( t" w8 }% ^/ W1 P  O$ D                CTM_to_Euler(est_C_b_e_,eul_);
- y$ O$ }0 R2 o/ j" Q                for (i=0;i<3;i++)
! F- ^, f- n. W. s                        printf("%lf\n",eul_[0]);0 v& p/ x" z: m6 n+ `
                printf("end************************\n\n\n");
+ B9 z3 v+ R+ j/ U0 }0 e6 d6 U. V( y- e  j
                /**********************************************************************/
2 a8 n4 W3 f0 X+ u/ T( l  h+ i; k7 C
! B" ^& D9 E# X4 c  P' N, ~            char flag[4];, g5 U2 ?* a2 @" R2 T2 ^2 W, q

5 v7 b; p) t' f+ E: S) D$ ?. Q# G            flag[3]=0x00;! l, h9 t8 G# l
            flag[2]=0x00;
: t: [, S3 ?* x# k            flag[1]=0x00;
. H- N5 M+ c4 Y. |            flag[0]=0x01;0 [6 c$ `0 }8 s# j7 U+ N/ b
, m1 s* u. c- H/ [9 `1 Y, {# v5 S
    /* Allocate I/O buffer and init with string */& ?4 ]5 |9 `/ Y, F7 z0 u+ q
    str_buf = (char *) malloc(80);0 G$ |; r: G/ J* K5 V
    str_buf =flag;' D6 ]( @/ l- L2 P
9 Y. d/ l9 e/ [1 X+ K; A
    /* Send buffer to remote CPU */
% [/ B7 ]9 M5 C9 I& s2 H. D, R8 s    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));6 [8 U) z! l! G  D0 ^% d

, z6 g! z1 f7 [. O0 U* E    printf((char *) myPayload);2 T( T* Q5 i: @  _0 I* M
        }& F3 X3 z' |# w5 y+ X0 y! S
}9 x9 E4 I$ Z9 a- h: _

- e; W2 k+ ~0 [  _    WAIT_HERE;
# D# A* ]/ m- {% N( ?6 K" x}
" x3 ?: ?! Y! J9 j8 e; L
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:% D0 j9 K9 f& Z- Y/ g
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
! N7 N1 D# ?) x, W: g4 p& e) b/ y然后我把双核通信的初始化屏蔽掉,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( w* Q" e! D$ X, _$ }7 i- J: W6 g
syslink 的初始化是否成功,notify 通信是否正常了?

, j4 I& k: X# \" }8 H. d双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:542 Z  ~$ k6 z! W" ]) h6 M; l8 @/ p
syslink 的初始化是否成功,notify 通信是否正常了?

! p1 o# z% N  Z) i( u5 ]  c我用的是裸机开发的双核通信,用的是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:208 q9 Q" ~0 ]; z) s  w% E4 c
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

( [" C& ]' D6 a; N- g0 ^9 \+ A建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 05:51 , Processed in 0.049179 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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