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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。' c, E8 i9 F$ g: I
我是在DSP初始化这不太明白。+ d+ P" x/ n3 R: m2 u! _
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。* J6 b( R; u- R- T7 N3 {7 K5 V
6 [: q8 a3 `% W2 @" ?0 S

+ t3 f% R3 n9 G1 L' w' D" N首先        PSCInit();//UART0使能6 N2 Q. D& {) T; x+ A
void PSCInit(void)- {- H* [, D9 V+ q5 @" k
{
! ^$ z& H8 n# r6 ~        // 对相应外设模块的使能也可以在 BootLoader 中完成8 T" i9 @6 J& o! h; C! ^' A( ^
    // 使能 UART0 模块+ d+ L$ q2 s% M, E8 z4 b) H
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);6 v5 v( \8 F; r  N
}$ ~4 O! I7 B% m
# ~- H9 e4 B  E, M
) r6 c1 C" V4 Q( M) Y: ]8 m
然后是 双核通信的初始化           AppInit();
( D5 r  I% y" \& Rvoid AppInit(void)
+ t7 \4 [" Q( w$ ?4 q  C7 r{
% A4 W+ v& x& K7 ^; P    /* Structure to initialize IPC (see Ipc.h for definitions) */
1 h, g$ |# I- d    struct IPC_cfg ipcCfg = {
. V9 T" [' m5 m  T* T            IPC_DSP0,             /* local processor Id */* {9 P, _3 X% n  A
            IPC_ARM_HOST,         /* remote processor Id */0 }! z8 Y; Q/ j7 W1 l
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */0 h1 e( f. L9 g- v" C" k! Q# U8 @
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
3 ^, t; y" q1 B# S            NUM_MAX_EVENT,        /* maximum number of events to be created */" b5 _" I0 `2 t: m
            &ipcPvMemDsp,         /* local side private IPC memory */
" Z9 _. d, i$ {! f7 a+ n8 @/ s            &ipcPvMemArm          /* remote side private IPC memory */  u/ l4 ]! p- O( ~: V* F3 t
    };1 j+ V. h, c2 }9 g  H8 G1 k4 |4 H
    IntDSPINTCInit();
4 t* h+ ~2 |6 s: }/ _' ^6 Q% u    IPC_init(&ipcCfg);8 m) p5 p7 ]# ~2 b. S3 T: t) s
    IPC_intRegister(C674X_MASK_INT5);8 ~  P% \. c0 w4 B2 g- s5 @
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));9 g( ~9 n# s8 m

  d! n7 x8 A1 }: w    /*  Enabling interrupts for DSP C674x CPU */, a: q$ ?/ s# T9 H& Y
    IntGlobalEnable();        /* Enable C674x global interrupt */! n9 \2 q" N& \4 }9 h" I  U" i2 F
    iAssert (Notify_start()); /* This will enable IPC interrupt */4 H7 U  G" J! d
}
. ~3 v' g2 _. h
1 r8 S% E; ?$ V
然后是  ( d  D2 ^0 r; `
            // UART 初始化
* }1 K9 T$ b& m            UARTInit();( Z; Y7 O# R- n8 c1 E3 @
' O) K4 `) `* a% N% x% `
            // UART 中断初始化5 u% N$ ?; ?1 M& ], U
            UARTInterruptInit();6 ?5 ?" q4 i% \' l4 v
* t! b/ ~4 o5 W8 ~# e, [

* O& T2 w7 j* R( N: j- v4 {void UARTInit(void)
. p; U8 d3 X: B3 g- l1 ~{. b% G* N6 G+ g* U; w' [5 a( i
        // 配置 UART0 参数
& y2 S0 c8 I% L% e' D: y( |5 h        // 波特率 115200 数据位 8 停止位 1 无校验位
: R( g, z) x/ N( x) h' E& C8 Q    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,: u3 R3 O; V0 Q9 m$ r
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
7 i& z! S' r' X0 B7 Y7 L        // 使能 UART0
) _3 t2 u7 F" j( f/ k9 K        UARTEnable(SOC_UART_0_REGS);
0 S- S- S& i4 v" G/ J" Y
6 Y! d0 K0 B" W$ F8 x    // 使能接收 / 发送 FIFO
  y9 m0 ~  B5 m//    UARTFIFOEnable(SOC_UART_0_REGS);
9 H9 O7 M. _) b
5 m( a4 A& X& g5 H1 Y$ N& ^        UARTFIFODisable(SOC_UART_0_REGS);
% C5 f) P+ u) U$ s5 G0 t# q9 T) ~! R# r) C$ S* ~# K) q4 L
    // 设置 FIFO 级别     接收FIFO的级别8 q( Q% D  |, s: s$ a/ A- n, |& J
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
) q  L% l, v+ z4 z1 y}
/ b+ ]4 H% ]: w

* }! |5 i4 {: B2 P: X; r! e! p  y
void UARTInterruptInit(void)3 B. D# B% p$ J5 u
{$ S& {# y2 H1 B, ^  k1 l% M
        IntRegister(C674X_MASK_INT4, UARTIsr);9 D( Z7 ~' J! {0 B0 F4 q: L
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);2 D3 h" W& w3 a7 v! I
        IntEnable(C674X_MASK_INT4);
* I' |* A; P5 {$ e/ G( o0 z+ c5 i7 C: D4 H, |( z' ^' w# M6 R# C5 }
        // 使能中断
; l7 n; Y7 O3 R2 }, ^) X: U! `( M% x        unsigned int intFlags = 0;
: t8 `8 e0 [& t    intFlags |= (UART_INT_LINE_STAT  |  \
( @8 v* t; ]5 E, ^' _, x3 }                 UART_INT_TX_EMPTY |    \
% A. O- A* D6 ?9 {! `$ Q$ x                 UART_INT_RXDATA_CTI);0 a. E6 I3 r6 H& }+ B
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
+ `1 g4 Y. o; s$ ~# m4 n}
  `7 _3 S4 |0 L, S9 e5 S

( K- W& ^: g; \3 D  S( [5 ~/ D  L0 w1 m' Y% h
void UARTIsr()* \* M6 m  R' T! F& j4 C
{
( C+ t  t. _  @; g/ L) C. l2 g    static unsigned int length = sizeof(txArray);+ N. E% x% R( z/ Q4 k& h
    static unsigned int count = 0;
4 i4 ^- X6 U! H6 a( X    unsigned int int_id = 0;
3 h! }" n, n& F# z  H/ b' W  r' r* g9 ^& z2 K$ |0 i2 E; f. ]

) D. s; [* n+ ^) ?' A
6 \7 }. K9 [& ^3 e  m+ D    // 确定中断源, B+ V. E9 q8 m5 C9 C& X4 c) f+ D
    int_id = UARTIntStatus(SOC_UART_0_REGS);
1 n; Q7 l# g+ ~' k. V. B1 H: E9 T% D# u: i3 C
    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
5 Q& W; ~2 R. Y' j3 L
4 ~& `# _+ _. V6 I+ {7 g# Y7 [' T0 m# h$ Y& |+ C
    // 清除 UART2 系统中断
$ p$ `# f! R' c    IntEventClear(SYS_INT_UART0_INT);
8 O; L0 u7 A3 t- H9 U& v& z* i4 R3 O0 g: c/ z' M; r
    // 发送中断1 w. v' @6 Y0 X0 L7 w  [1 }0 U
    if(UART_INTID_TX_EMPTY == int_id)
& [% m; o/ D% r4 C    {
# G* X6 r" M1 i        if(0 < length)/ s# r3 a9 I* `2 P  M
        {
1 u( r! F2 h  Z            // 写一个字节到 THR' @; ~# e# E% I( \# Q! c3 \8 ~
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
5 Z, Q( w& b3 g* F7 b. ^8 b            length--;
% [# `8 V% i( |  L            count++;
* K9 y+ T) S: F) r1 Y. P        }
- j6 R# G7 j* @9 J8 P+ e3 b9 L3 f        if(0 == length)
# ^4 {. h/ u5 i8 D3 m        {
  _* b( r/ v5 F# h8 x( b; E) W            // 禁用发送中断
; _7 n7 q1 {* a% e8 P+ K            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
5 |; l4 ?" m0 |1 L* }1 x* {        }
8 i$ P8 t/ y; h" L7 z2 W& ~+ e3 Q     }5 U" D: ^2 v6 s3 J9 V
! P) k+ \& r4 B; G. k
    // 接收中断3 M& \. W0 v# x! l+ G
    if(UART_INTID_RX_DATA == int_id)
  B3 O1 W5 \9 L, k; R  p, w# i; I    {
: k8 C, h# S1 t* C% V3 V        if(status_a0==0). W) Y. h2 w, d! J' f7 f' n9 ^
        {
" D& o4 t5 D# V# c/ P                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
6 L$ u) v) f5 B# f8 u; J* S                if(a[0]=='#')6 F8 k. n. [9 e& ~/ ^9 a- @7 X/ {
                {7 k5 @# j& ?6 l- x3 Y' z
                        status_a0=0x01;
0 k( c4 N( i5 s                        status_a1=0x01;+ a: d" W1 L$ q+ s
                }
" J$ j/ F. _: w        }1 F6 S) G+ `" [: U( Q% Z
        if(status_a1==0x01)
3 ]5 T+ s. \' M3 R        {* o; ]3 U9 A) c! U8 m0 P
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
& k9 H" M- Q9 U$ k                if(a[1]=='R')# N7 U' O) g2 [! N2 t1 C
                {- s# ^6 R# r$ j/ R% [' h% c
                        status_a1=0;
; |3 |7 P1 D# q; I% S* U                        status_a2=0x01;1 g* B: w5 {# J7 F0 @( L
                }5 W- B3 y. S8 Y6 K
        }# h) L2 r0 Y+ c- ~
        if(status_a2==0x01)7 m# e! V. m7 d! f+ T2 n$ p! F7 }
        {5 u! [' H# z9 [% G, `9 W5 D
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
' y. \* B9 ~6 W7 s                if(a[2]=='A')
4 B: p& |2 i  @  a* e. Q+ w                {# T  V. p+ l2 X" ?
                        status_a2=0;4 `3 S" H" u* R0 _9 W/ M0 _4 N
                        status_a3=0x01;
* ?* I% g5 i3 G+ g9 ^, M1 V6 J  Q                }
+ a6 d* J  t7 H/ @' F        }9 a: s2 k4 L+ X4 l  _
        if(status_a3==0x01)
: h5 Q" \) s$ P% z" M7 Q" Z        {
8 H/ p% L0 n3 d7 D8 r$ S0 {' ?                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);6 ~( x0 s0 X+ r! }% G  x- p
                if(a[3]=='N')
+ O* j- j" @9 C+ S" b* k7 {& [                {
6 V$ ^9 z: d4 G                        status_a3=0;
( \: C& I. ~) }                        status_a4=0x01;
+ J2 e. b: X3 w# H8 U+ r) s( @+ k                }
+ G2 `0 K: W. F) ?        }4 V& f$ d0 S& c% G
        if(status_a4==0x01)
0 q0 x/ o1 @' G) ]        {, d/ ~9 _9 Q: T: j# C+ ^
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* p4 j4 X5 P% |! h4 N
                if(a[4]=='G')/ b9 Q$ F( I$ |  g1 f9 [6 s! S3 ^
                {2 x, ^2 N2 \  `: m( p
                        status_a4=0;# t& [9 D  R0 _( _! r# G% K
                        status_a5=0x01;
( Y/ J& i9 r/ p- i4 Q' J, g                }
4 m- v+ `: m/ O6 b+ z& H' k. L        }' U& a6 k) k( S, h
        if(status_a5==0x01)( d1 a% n  t" g; n1 o
        {
9 t. m6 [. S# W/ t& A) ]                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* _+ n9 U* ~6 x
                if(a[5]=='E')
) ~' F5 O& j. f' l                {
. J. K' C6 M! ], ]' [- P                        status_a5=0;
: G/ T% a* l3 b" h# Q                        status_OK=0x01;" J: [( J! K6 S; P& F
                }* B( C4 e5 z2 W% Z* W/ W
        }0 P  s) T$ d: B. Q2 X
            if(status_OK==0x01)
+ J) X( f2 _0 @: i5 T, C& w! ?( {        {" N* e7 q' t' t1 w% T
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);' X4 f# o4 {5 m* l
                        lengthrx++;' X; E9 T2 D* |' Z5 ~
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
3 H" Q$ z: N. N3 W+ G2 r7 h; o: I                        {
3 ~3 K$ u2 }0 ^                                RecState=0x01;
; z% m& L) r* O6 o- E2 G; H                        }: {' R* E. Z$ u+ w- l5 ?
         }$ z$ [% n1 K( F' R4 I1 ]
% n4 V( b: F& B. J
     }3 `' m* ~1 D7 `
' {- X9 H( A9 K+ T' v
    // 接收错误
: ~8 K& v3 m9 `+ T0 z    if(UART_INTID_RX_LINE_STAT == int_id)
) w( P* X- {; t% `) {2 l  ?    {  I8 j& Z/ G7 t* e% Q
        while(UARTRxErrorGet(SOC_UART_0_REGS))
. d4 W& R7 d! j6 \6 ]2 U% U6 t        {
& N* _4 l  j1 K8 D$ Z& D            // 从 RBR 读一个字节0 `* c4 ~! M$ x, ^) b5 |( W
            UARTCharGetNonBlocking(SOC_UART_0_REGS);$ j7 z" o% q/ S% {( Q( P6 I
        }! L7 n" w# o2 r7 T1 P0 h
    }
7 j% G1 I( h4 M+ A: Q2 R5 K: u  R: n& j4 W" P0 m( D
    return;
4 e1 x. n9 p# V9 O9 l! Y: j}
; p5 @: i+ Z( m# I. f
7 |: S9 [) Y4 a) E1 r
& q; y2 k: H6 Q6 m3 A5 _) K7 b8 E

7 N% c1 H6 M% l/ k/ I8 q1 i8 }* Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2020

积分

创龙

Rank: 8Rank: 8

积分
2020
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,' i) A5 M: v* {: \$ U  p

. S1 W2 P: t5 o; UUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。' ]: c' @& v( q2 r  H& L7 X

5 k7 k" V5 L1 [. r要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
6 Y% U- @- t. G4 w7 h6 Ghi,
% ~1 [  d+ s6 W( m* h! M6 w1 O9 h, f+ p% k- a+ n$ D0 t8 X
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
, O) I9 a$ o" |
void main (void)& {$ Z0 F- _2 }
{
; y! f# |* p/ q; q! R# ~$ E        int i,j;. Z9 q# |4 Q& A, _2 i: j* {
    char *str_buf;
) v/ A5 d* Z  t( j5 J    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
. K2 N- M/ q3 y) b% l        double est_L_b_=0;
; g2 p) p% }4 W, y$ @        double est_lambda_b_=0;
# R6 r( j4 u1 d4 [) U* j3 Y        double eul_[3][1]={0};
7 p2 J$ }. \9 b# i        double est_v_eb_e_[3][1]={0};1 ]  G4 W$ y! L$ G' q  B6 N
        double est_C_b_e_[3][3]={0};3 B9 Q; ?2 I/ `3 I: T( ~# }
    char *qm;' e1 I: l; l* h+ {# T- C, Y7 ]
    char rec[70];
- c8 {5 U' |/ `        double L_b=0;
: O" _! o: ?6 U! a5 C8 [1 f        double lambda_b=0;# u) K4 q( I* J
        double h_b=0;  p9 a3 A/ d( b7 z( y1 r
        double rate;4 X8 I; D% c& c( P' d
. S2 c0 j3 M2 l* S( a3 A% M0 P  _
9 Q+ t, k* c+ J
        // 外设使能配置
; k+ q4 }, i( c5 e8 f        PSCInit();
5 |& c; ]. W2 w* r0 a
# r& ^' Z+ H6 z( H        AppInit();( Y4 a* `, d( |
# v. l0 @/ V" N1 E% C. Z
        // UART 初始化
2 Q0 a5 m3 l2 @        UARTInit();+ R% |& a$ j- f5 _! R- e

7 Q7 }: g/ r$ ^3 W  q& z3 Q; V        // UART 中断初始化
. V% A; t9 D$ o# x& C        UARTInterruptInit();% q2 T) g& Y4 B; c! Q$ @5 s
. e9 R9 M# ]+ u0 W
    evtRcvd = 0;
( h' L! k1 D! p7 }7 f( ?  e7 d& D    RecState=0;- j4 Z/ M& \; j- T# x: t
    /* Initialize */  V! d% j1 N  k6 J
. o/ }4 h- H& S
    printf("DSP subsystem ready\n");
/ c! _* o$ V# i) y* R
, x/ C# s3 p: r7 J  `1 x  N- k    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
8 `2 q5 H# b$ V- f: L' @1 i7 f/ t& D. L7 {1 Q0 Z1 q
for(;;)
- M. a8 Y) R  z( `) [{
3 [7 Q; D# K/ m# S        if((RecState&0x01)!=0)
2 `' U8 F1 g8 f; Y+ e) y+ E$ m        {5 E) e7 Z' d5 h4 W9 U3 k# g7 @5 {+ b
                printf("liuzhenxing\n");
6 w& J( G5 L1 \: X3 Y        }
9 I, ~+ X1 D2 X  X1 T( r/ Q$ d        else! k" X9 ~5 |& e) A; h
        {
$ D9 O: b" m: c: i       wait_event();
' ?  v6 ~7 }0 _: n! c! ?) u; O3 S) Y
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针
4 ]* c8 Q+ ]$ b1 N" A& I6 h
3 R3 F; f  t( _6 }  `+ g, `           for(i=0;i<60;i++)
2 d: }& P% ~! E4 Z3 |( ^           {
! a4 }7 s( B5 W+ v                    rec=*qm;
7 N8 d/ v8 B' _- Q                    qm++;
% `. m: J: p7 i( x6 c( y           }
  M) q- W: Y# O$ Q
4 L; F3 D7 Q% p. ^' `& L& F           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
7 x: A- p. z  A* @" J8 E$ ?6 \2 q3 t' A' n+ i, a
           L_b=L_b_receive_double;- f- c) G* P) s0 p: L
           lambda_b=lambda_b_receive_double;- T% S. X7 Y9 @! E/ ?0 B4 G6 M, G$ y
           h_b=h_b_receive_double;
  v/ o; f( \6 \/ B2 ?4 W           for(i=0;i<3;i++)
: |2 L# q5 E. S5 ?) V% ?0 s% p- x! T                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];7 V, C/ H& h2 o) y% C0 D
           for(i=0;i<3;i++)+ b/ Z4 Z7 w5 F- D# {! c
                    for(j=0;j<3;j++)
, c. }+ |+ T, u) x2 `- I                 est_C_b_e_[j]=est_C_b_e_receive_double[j];8 t+ {" e( Y" l; r0 x
6 A+ J% ?- y3 `3 j1 @# G
                printf("L=%lf\n",L_b);. G7 q# a3 g$ {- K0 f' H) m
                printf("lambda=%lf\n",lambda_b);
  V) e3 ~( {% o: f1 e                printf("h=%lf\n",h_b);8 e% H9 k/ r, a6 n0 y: q8 _6 X

% {1 m* s- D7 ?1 @$ c( r  O                for (i=0;i<3;i++)1 e2 a- k3 y. ^: h5 V. D1 r% X
                        printf("%lf\n",est_v_eb_e_[0]);
+ n' U3 N% ?! c7 c( a+ j1 f                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]);- Q4 g& {7 A, m0 b/ f7 J5 [' V
                printf("rate=%lf\n",rate);% A2 Y2 Q( w$ \9 B) I3 V
! ~, n  R  G) Q/ D
                CTM_to_Euler(est_C_b_e_,eul_);6 j: c* f9 ~; s9 i1 f! F. ^
                for (i=0;i<3;i++)
1 l) c) Q6 _4 O) b$ D7 J! i                        printf("%lf\n",eul_[0]);4 t" v1 v& s/ v; Z- [& y
                printf("end************************\n\n\n");9 r( u! S3 G1 @+ K" U/ [; C

) c6 H! k9 M6 r                /**********************************************************************/3 ]2 b) y0 N5 H0 T9 M

3 T2 w1 k8 T8 G+ t7 S! v: L            char flag[4];- }+ t* f; {5 i: l
% ~; S$ p- {% j
            flag[3]=0x00;
3 l  ?) A. n+ i  o            flag[2]=0x00;6 G4 H9 Y( g& I, ?% t4 c
            flag[1]=0x00;
& M: a# f4 q6 J1 c6 w: G, T9 @            flag[0]=0x01;1 a5 P0 Z. e; Q. w+ j2 M2 u
$ i' O( r) c' K
    /* Allocate I/O buffer and init with string */% c, ^+ e$ m4 l5 a) F/ ^
    str_buf = (char *) malloc(80);* a7 L7 R8 `) \0 [
    str_buf =flag;
/ U2 u+ O8 Y. V, M, Z$ f
5 c6 E4 c4 U# Q- M  _) Q. O) l  l    /* Send buffer to remote CPU */
8 \+ D% P% L9 |* x    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
; ?- o! o3 o7 D& o( ?8 k! O8 X$ I
    printf((char *) myPayload);, b, Z% A- }; ?/ R8 E: X
        }
/ j) Y5 ?% b0 W2 Z+ m/ N5 J% d}
% e: s7 u  m" _0 \0 x
1 |( h8 p6 z5 D  F, ]    WAIT_HERE;
, X6 o8 x" \, ]! M7 [}* G8 A+ y  O- n: n
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:% e$ J8 q1 i% ?" }1 d) T
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
3 P; d& M: Y$ ]! l' b4 }7 o然后我把双核通信的初始化屏蔽掉,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
. d7 d2 t# B1 g/ {( g$ l1 L1 }! S4 lsyslink 的初始化是否成功,notify 通信是否正常了?

& ]; A' q8 g; k4 C双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
" W2 E( d6 D1 |8 w; ysyslink 的初始化是否成功,notify 通信是否正常了?
/ M6 ~+ G  m& R6 h; ~+ t3 @
我用的是裸机开发的双核通信,用的是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: x- B) m& N7 m
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

# O8 f. F' K- K) }6 h建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 18:59 , Processed in 0.047688 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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