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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。7 W* b$ u( F- c2 e6 c7 ]- u# D  y
我是在DSP初始化这不太明白。! I0 y$ M$ k& D/ M" N! S
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。4 b2 Q6 O: X+ k0 ]) V2 e
  s$ }# `9 r5 ?6 A
5 U8 ~+ z8 X" @, a
首先        PSCInit();//UART0使能+ L2 G1 u- _. A6 m! x
void PSCInit(void)
' V# o( n) F8 p1 Z7 u( r  n{
( C6 u8 N5 A/ Z6 X* G        // 对相应外设模块的使能也可以在 BootLoader 中完成
! ^. F# V) @: L$ j8 D) |! b    // 使能 UART0 模块
. b- p/ j' [# _5 F6 x% |& ^8 a! j1 b2 T    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);6 {+ X% A3 q' Q, x) P% z
}
) g! I2 g, {* h6 D7 \1 }$ y6 ~
3 W# ?1 \* r' z3 @" B, W3 Y$ w- X

' u4 l# V( `5 t! {  H5 @然后是 双核通信的初始化           AppInit();8 \+ e4 V, e8 e- K0 k# L
void AppInit(void)
8 ~* Q3 p% m# a{+ j5 r' O" G) a0 F* R6 [2 X
    /* Structure to initialize IPC (see Ipc.h for definitions) */
! c; ?0 z/ ~$ u7 s    struct IPC_cfg ipcCfg = {2 s" K- ^1 ]2 y& j6 [
            IPC_DSP0,             /* local processor Id */: |" E4 S7 V  j
            IPC_ARM_HOST,         /* remote processor Id */
: g- V; C# c' {7 P            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */, L0 Z& j6 S- Y6 \* }) Z6 O& e
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
+ m/ H2 a( v  Q. ?8 S! f. |4 a/ `) t            NUM_MAX_EVENT,        /* maximum number of events to be created */3 A" i* `0 _# r9 |( Y; F
            &ipcPvMemDsp,         /* local side private IPC memory */; _' Y1 m1 }8 U
            &ipcPvMemArm          /* remote side private IPC memory */
# t5 |0 o5 E3 M0 H    };6 P1 W5 [( B. S  P
    IntDSPINTCInit();4 N6 W8 M$ T$ Q9 N+ V( L: S. p6 n
    IPC_init(&ipcCfg);% o4 s% }! m2 g2 d3 e
    IPC_intRegister(C674X_MASK_INT5);$ G7 I1 z* \: l9 c7 e; D
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));) n& D6 w; r5 v: ?* l
7 M7 q- Z8 @0 w, Q
    /*  Enabling interrupts for DSP C674x CPU */
, Z! T$ @+ x, f2 h% T4 c    IntGlobalEnable();        /* Enable C674x global interrupt */; j& L9 U1 P# c9 Y
    iAssert (Notify_start()); /* This will enable IPC interrupt */, t* h/ R& H4 p% u  @7 M
}
4 ^0 @4 ~! N& p; p6 S8 q& e
) c' i7 F5 ~6 d7 o
然后是  4 S+ k7 D! p; G+ @" E
            // UART 初始化
, m$ e9 D5 d/ {7 d" K9 E            UARTInit();
7 t/ i" A1 p2 \4 j! V, c$ J- D
0 r) v2 R3 Y; Z            // UART 中断初始化6 Y# L( W8 ~1 v! Z
            UARTInterruptInit();
0 _& M7 k0 L4 |8 Y$ C# H# @+ E
1 G3 `$ Y5 {: }' k" i# @

& N* z$ [: P% Z6 Z! K9 ?3 nvoid UARTInit(void)2 I# o- |$ m+ c; j  u  }7 k
{+ W1 }9 I7 J9 P. m4 t
        // 配置 UART0 参数
& Y  U+ P% w# ]2 p/ K  X4 I        // 波特率 115200 数据位 8 停止位 1 无校验位# G# I! J# e2 t6 i3 j/ D' q
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
7 `0 C( a& f+ K7 L. a! L: ~                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
' E* }5 T5 |7 E8 ]        // 使能 UART0
$ n( l% y6 u9 Q# w        UARTEnable(SOC_UART_0_REGS);- ]* o1 }3 X% |# @1 g7 D

5 D- ~1 ?  B! [( V* a    // 使能接收 / 发送 FIFO
2 m3 A! g0 j) @: {) d4 C6 U3 G//    UARTFIFOEnable(SOC_UART_0_REGS);
* o. E# s% n* y9 ~2 j9 a' n9 {7 M4 K4 B# D5 x  q7 l- |* H
        UARTFIFODisable(SOC_UART_0_REGS);* ~! M" b2 Y, Z. u
0 B) S8 ?, a: {4 ^" D( f% E
    // 设置 FIFO 级别     接收FIFO的级别6 m- k- P/ \+ X
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);! a1 I: L7 D% f3 W; `* ^
}& Q* k% W; _6 d2 K6 C2 |+ m

- \$ U3 ~' \& n5 P4 R6 U# r+ W8 ?' s+ E2 _8 ]; R4 J
void UARTInterruptInit(void)1 Z1 s! n$ h% S8 ~
{3 `# P0 a" B- S6 b$ g9 J, d7 P1 T4 _
        IntRegister(C674X_MASK_INT4, UARTIsr);+ m. l/ p! H4 `1 W; w- Y6 w7 [" A5 F$ m+ j
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
* o$ X' A; Z+ v5 C" |9 {        IntEnable(C674X_MASK_INT4);
% \6 Y+ B0 d& {- Q+ n  C! L! n& u. u; O* W- ~( A
        // 使能中断
: m: \, E! R$ J" J; U( `        unsigned int intFlags = 0;% _4 E1 G) K7 p+ O: l
    intFlags |= (UART_INT_LINE_STAT  |  \
2 [$ e3 q" H# D6 `% R                 UART_INT_TX_EMPTY |    \/ d7 F2 |$ L+ o; n8 I
                 UART_INT_RXDATA_CTI);
, A: ?. }3 }7 u: T5 N    UARTIntEnable(SOC_UART_0_REGS, intFlags);
6 K1 [3 r+ f% z+ Y}- a/ {; o1 h% [9 Z  |, y- i; @

7 U- X. N- l/ Y9 D/ D9 A/ R& V: M9 ^1 s% J9 R: u$ E2 p
void UARTIsr()* r1 i8 I- S- _; M+ \5 D8 r
{
9 O! t# h( M/ X- E$ u% I* [+ q    static unsigned int length = sizeof(txArray);" c( Q- k! g* I) {. J( S
    static unsigned int count = 0;1 m1 p6 k9 I/ s/ S+ q0 C( _
    unsigned int int_id = 0;
* R- V5 V% y+ p" ~0 Z) N7 U: p& U3 m! N) c" T5 v; ^9 \

6 |/ }3 s5 h  `  o- |
, l, V; S# t- I6 W    // 确定中断源
2 `: ~* q7 T) O    int_id = UARTIntStatus(SOC_UART_0_REGS);8 w# d1 ?3 p) i
( Q9 P- x% G0 S7 S( U1 n9 P$ u
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
  c+ \6 z( x, k0 K% n! b& S+ H4 ?" D8 X3 g% M4 t% i
( ^$ L* ~" ?2 ?
    // 清除 UART2 系统中断6 i; e" o+ c+ S
    IntEventClear(SYS_INT_UART0_INT);% ]; k! W! |3 i
) X7 b  |4 p. R1 A; r' H' `1 o
    // 发送中断' F4 @, U" `; T2 }( m6 ~) V
    if(UART_INTID_TX_EMPTY == int_id)
! e6 V3 A7 t6 J: ^. s; z    {0 Q! Z5 L8 l. _% G& }/ g
        if(0 < length)/ N! v$ m2 C  j
        {
) n; ~% i* z  f5 D3 s            // 写一个字节到 THR# [/ I& i7 ^: B0 S
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
% I5 p2 T+ \: I! ]: j6 R            length--;$ S, B7 i# [+ i0 f9 ]6 z# L8 E
            count++;0 f/ L/ j# ~# p
        }5 {) V( c# _4 d; p: m
        if(0 == length)' W8 y5 h$ ]4 A' c
        {
& |5 v3 L! o& r' W& D/ m1 Z  J            // 禁用发送中断: d$ j, o: X8 g. C' j  P) M
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);. E. y- x) N* a8 P7 A' U
        }! L0 A8 e+ e1 n
     }- ]$ W" y9 k1 Z% L
7 t8 o5 ?2 a; g2 w$ \
    // 接收中断0 V: Z0 X6 p- c7 r
    if(UART_INTID_RX_DATA == int_id)
/ `( _6 l# D4 M/ B6 r, _    {4 ~* S6 M0 O8 K0 O; v  V# e$ g
        if(status_a0==0)
+ E  S! ]0 X  [6 U' _$ Z8 L( B! m2 T        {5 A1 T8 [/ h' q5 T; u
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
- J# o3 n( \6 E0 n* ~                if(a[0]=='#')
8 T- E7 s0 {# O1 @7 Y9 l                {
5 ~: ^5 u4 y  ?                        status_a0=0x01;
# Z; H( D0 u" @$ I& ~$ {4 P                        status_a1=0x01;, s4 ]0 R7 |/ L
                }- b7 M0 T9 q4 B9 _! k  x
        }
  L# g* W! B# q* O+ q: V: l- n# s        if(status_a1==0x01)
& G8 A7 }9 ]: F2 E' t        {
8 W& l' |2 O+ C) _                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
& Z2 ^6 [4 D+ ]  E, m                if(a[1]=='R')
# W3 k% M# J+ k. R/ H                {
" A( Q' I7 e1 }& ^* U" {                        status_a1=0;
$ O% O6 I* i! s8 e5 E                        status_a2=0x01;" v5 c! @6 b. ]8 s
                }6 n3 e+ m, z# D$ o' A
        }/ t! v9 h1 q$ u5 S! \; \; N
        if(status_a2==0x01)5 B- a1 L; h; L! A0 T7 t( ]1 v! t
        {
8 g) z) _2 R6 T. E3 _$ A                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ O. S/ b) v8 ^, r                if(a[2]=='A')
4 F" v8 R# D% J0 H4 t                {
2 A# u% v( H; c% a% D                        status_a2=0;
9 V( \0 h) s* p. q# l0 }  R' q4 `                        status_a3=0x01;! G$ n3 E+ J2 D8 U* {' J- j
                }4 O3 F; q% t* q1 M+ b
        }
* O! K3 b4 ?! ^: S# }        if(status_a3==0x01)
) e4 J0 I- }2 T# N( G+ z: J! z+ v8 K        {# A5 g, y2 Z3 W1 t# h% {9 x9 f
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* `# P. P3 M6 J( S- v! F6 W. c
                if(a[3]=='N')1 H+ v: {& l$ u3 `) u6 k" F
                {
6 ~% t, e" b$ |& E; q- U: i                        status_a3=0;, g5 K, ^! A) u% W" S
                        status_a4=0x01;
/ X4 {/ [: u# c8 q, l& N                }
/ Y2 n4 C! H0 B# V4 {) m6 v        }1 m' Q: [9 i( J9 C
        if(status_a4==0x01). |: }1 D! A- ]* w+ R; S
        {/ E. l& x* `- F! O' t
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);% q' K# k; P3 Y. ^, Q
                if(a[4]=='G')$ E: v$ n1 B, p( q( l+ [% Q
                {; {4 }- t4 o* @  H
                        status_a4=0;
- }; _4 F, Z: _2 u" F! \                        status_a5=0x01;
  {6 w% g3 e6 X7 Q9 I                }7 _. y/ @% |4 i+ Z" _. w% I- W
        }
' r3 P0 F& N% K3 e& b        if(status_a5==0x01)
3 j/ \$ E4 X7 x- l. V; s        {3 F$ x( |3 D! p) x+ X( n
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; e  c( w3 g" x) K
                if(a[5]=='E')8 u$ m$ u( v' i+ P2 r" D7 @8 J
                {! S% Z. {+ O8 r0 [$ m" K. B
                        status_a5=0;- h/ X( p- p5 b1 Q* i
                        status_OK=0x01;
1 D8 x% f, o7 n6 |                }& _" _( c6 G7 o  k) d
        }$ M) f& l6 w& E8 L9 j& ^) k1 ^1 v+ O
            if(status_OK==0x01)
8 D1 T0 V6 d" }, r, E. S        {* m$ E) n) @7 R% d* \3 l
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
7 t, q( J' y+ [' J, I9 N1 i                        lengthrx++;1 v% T1 Y+ D& z- y
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)# U3 T' S$ Q3 {' S9 S. b7 [
                        {$ ]5 ~- v8 s" P' \2 t) [
                                RecState=0x01;
  g2 }2 b2 t; o* B% E( T                        }
* k/ `4 q1 g1 I5 D$ V- ?. r         }
# R8 B2 y& C3 W/ q$ l  e& U3 E) l! c' n7 c: k
     }
% D2 D* ?6 Y* [1 W. F3 w, R9 i- _  |3 h2 z- G0 L
    // 接收错误
- P- a' b( a6 ]    if(UART_INTID_RX_LINE_STAT == int_id)  y2 L2 s2 \6 N& d
    {, @) a- P( ]1 t" Z  K, U# [
        while(UARTRxErrorGet(SOC_UART_0_REGS))8 k: S" G* K/ w- t
        {
8 V' m" S0 B% c- h$ N0 `            // 从 RBR 读一个字节
" Q- e# d6 k" p( e; t            UARTCharGetNonBlocking(SOC_UART_0_REGS);2 y+ w3 [5 j0 ~8 Z
        }
  Y% h. z! `7 S    }
* B# r/ e2 t+ F# I! x, p5 M3 R3 K1 m: ]# O3 |; T+ I
    return;
1 x/ w- W4 H6 b2 K2 P}
+ P( @  u; g; G# [- S! Y4 M
3 Z8 v% r" a& G  z8 {
$ r5 @$ R/ x9 Z, C

5 f+ l3 t) u, Q- l* H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,/ V; W5 s- Q+ @

$ ?, L7 P1 i8 j5 Z4 g4 ?/ U; uUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。, p" j) \" x2 [

* ^( F( @7 P" \( P. j7 _要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
# z. Y# l" c) ~6 w0 B& W3 {  _4 qhi,
: H: W/ ^8 L% [$ Z3 D: b1 @' L. d# }9 _( j4 T$ p2 |' w
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

* l6 }) u" O3 G* F. \$ mvoid main (void)8 F& ]- r; f' N8 o  o
{
+ C" y- [- M) m( [* j        int i,j;
. ]* [5 w# w  \( X3 h6 Z. K    char *str_buf;
! @$ ?9 _, L8 m  q4 t4 B    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
5 r/ T/ S' q8 \4 W2 F1 `8 ?" E        double est_L_b_=0;8 U, k# y/ b6 [; X( ]
        double est_lambda_b_=0;
+ U7 Q0 ^' V, k7 F        double eul_[3][1]={0};
$ ]. e" D: V; a/ z& e        double est_v_eb_e_[3][1]={0};+ ]' `5 n+ J4 @7 {2 o  r; ^
        double est_C_b_e_[3][3]={0};4 E2 f$ R2 j+ y) I9 h* Q, K
    char *qm;
! ~8 F. {: O- Y1 C5 v* L    char rec[70];
1 u$ r( q2 t3 P& q& V0 n" [: S        double L_b=0;
5 w. o% ]1 T; i8 t5 A0 A        double lambda_b=0;
# m" M9 g8 c* t5 o7 c        double h_b=0;
3 ?" G+ e) x) g# F3 z, v        double rate;
! Q0 T' C" [% G, F' R6 J3 x4 g: i2 w: B5 m
* Q8 i# s- g" |% |
        // 外设使能配置
! i+ M) u/ v: R, `( h        PSCInit();2 o" Z+ }7 ^. Z( T
6 a! S! w# g; P+ z3 i0 O
        AppInit();
0 `: F6 n5 ~! K+ z9 F' |% v1 z& n( @0 O! _
        // UART 初始化
/ b6 x! z' `+ _/ W. Z: [        UARTInit();+ b" E: c9 {) D5 H9 j5 i
4 G3 Z- _/ v) M3 S+ b
        // UART 中断初始化; k# b. a  N' A, ?( w* _/ O
        UARTInterruptInit();
' _  W8 q% `7 w4 V: ?% W/ e0 ^$ x% I" ^& S. V" U0 V- j
    evtRcvd = 0;; j# g5 ]# A) C! d8 j9 k1 P0 h
    RecState=0;. i4 U( J; g, b7 S- a
    /* Initialize */, p- f' j* F* u

( q- N9 N9 c5 }5 M0 b! x% N4 d    printf("DSP subsystem ready\n");
0 H2 O2 f$ R2 t" d( n) b  x7 p% R( Y2 j
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
3 W5 w' L5 r5 Z4 J1 a
' L8 p: p/ j/ j: Z% S. `9 l, w/ \for(;;)+ N' t( Y: T+ \: r! C. e8 T" [
{
" l% `8 ]. z( c& l5 R+ s! K        if((RecState&0x01)!=0)
/ E& U3 s6 N* Y* ?        {
- g+ p% q9 }5 Q6 P                printf("liuzhenxing\n");
2 h( [! v8 o; o7 y6 c4 Q3 b0 w, Z2 b        }
' ^3 q0 r) c9 l9 W; z; I        else. @0 B8 b. L8 Y1 _1 f
        {
) L# T. N0 n# q# c  Z& b8 R! H       wait_event();4 i' ^+ T# Q) y! {, n$ c& F

. M/ _7 {: X& t6 K) ^$ B6 z           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
, ?1 ^  b& Y; q
* z$ @8 s+ K0 L; X; }* D$ @           for(i=0;i<60;i++)3 p2 a6 ~! C) h
           {& m. _! u. [' M# r. V4 {
                    rec=*qm;2 {! b( D7 M* \! _# n3 Z! D9 i
                    qm++;0 z' l( c/ U3 m
           }
: u$ A/ r5 d' ~7 x; M# q! u7 C
, r6 ~, m. [% F1 Q) y4 f2 T" z. P' [           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);. i9 ], ~; q! u: N1 D0 X2 ?
  D; `$ m# _+ O$ b
           L_b=L_b_receive_double;
1 i9 P4 x$ s/ W& i           lambda_b=lambda_b_receive_double;! v0 u/ d8 s: M4 o# C# `
           h_b=h_b_receive_double;
* L. P$ Y8 ]8 L2 P! P* s           for(i=0;i<3;i++)/ k& n* B, }0 q
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
8 s/ d* X/ b; q0 M           for(i=0;i<3;i++)
) S, f; x( |9 M8 ?+ n                    for(j=0;j<3;j++): D; m" s: [% W; `
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
$ ^) R; M/ z, l* g. m; Q; W9 F5 Q; t2 Y$ _. z- F4 \7 z
                printf("L=%lf\n",L_b);
5 g( e# D: t8 ^# H; R& C. ^/ }4 z                printf("lambda=%lf\n",lambda_b);
4 m  M' h' B& q+ f1 X                printf("h=%lf\n",h_b);' s' S7 C4 y" }
: ^! L3 O0 w- \: O& Y
                for (i=0;i<3;i++)
2 y/ Q, A4 u: Q/ E& C! Z2 j% e                        printf("%lf\n",est_v_eb_e_[0]);" h! g) e8 L/ N$ g9 [, s" n
                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]);: i& r- c+ |# d+ p% K% [
                printf("rate=%lf\n",rate);
; f  a, p5 k) m0 f# |
! E; I% [8 t  L/ [$ R! p                CTM_to_Euler(est_C_b_e_,eul_);
  I# u' e# y& e/ p. r  T                for (i=0;i<3;i++)
" l. d+ T+ ?; n( l4 l7 @) X                        printf("%lf\n",eul_[0]);
$ m/ x9 n4 [5 G, R, I1 `                printf("end************************\n\n\n");4 D$ r. V' V1 ?  z) |

7 D3 S6 t8 Q% q$ z1 _                /**********************************************************************/- {3 o% c7 k2 Q: s
9 [* O% _# ?1 v9 @
            char flag[4];/ i# a3 B! ?, j2 g5 Y7 g

2 s/ }) A! K, V! X0 e; ~            flag[3]=0x00;
  h. v% _3 G( n$ C  L/ t3 ?            flag[2]=0x00;8 z2 `4 F7 R( W. [. E! V, G
            flag[1]=0x00;: G# M# w0 B) l3 ]
            flag[0]=0x01;/ V# f+ a% F# o( w6 ~8 |8 n1 P
% H( S- Y# n1 G) L# n
    /* Allocate I/O buffer and init with string */
! G& T5 e; F/ G    str_buf = (char *) malloc(80);
7 q) E( _# L& X    str_buf =flag;
8 ]1 O( u; S% x7 j
3 C0 v+ R4 ^8 {+ q" b: Q    /* Send buffer to remote CPU */
, p+ |" t( `; Q0 \/ n    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
' p4 m% z9 ^, I1 x  _4 Y9 ^  C& _) C9 B( d1 J$ t' ~* l' l& w
    printf((char *) myPayload);
" A- U. k9 h7 N+ ^; ?        }& C$ ?5 P" \7 H4 K& p
}8 G) N3 X$ X) z1 x5 r8 @; {

1 {$ R* l6 l, K  f    WAIT_HERE;
/ y; ^6 A  Q% e, f. E' Q1 X. r, p- N& d}
' f* ~& ]  B$ Z2 b2 z
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:/ X% _. R9 b+ R* D  k; Y1 j5 L
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
9 B+ N$ _% \* h5 I8 }: N2 P6 y1 s然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
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
, F- [' L8 N# g/ M' ~+ J! {! esyslink 的初始化是否成功,notify 通信是否正常了?

9 a9 @) \4 M$ F: `+ y! w双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
. M9 Z, t3 o: E% }8 ~: }  @+ Xsyslink 的初始化是否成功,notify 通信是否正常了?

* k4 q9 Z  X* X/ a1 L我用的是裸机开发的双核通信,用的是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 a8 y% e( \- ]5 O0 T; f
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
5 E( t- ?8 D% D- @0 I8 l$ p
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 16:44 , Processed in 0.047619 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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