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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。( h; n/ O6 y! g  S1 t
我是在DSP初始化这不太明白。+ C7 L! C& |- o% R9 a% C4 I  ]
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。! g) c/ i2 o/ G1 ^( U, @: W; K, b

: i3 k6 x) P/ C* w
1 |9 `9 Q6 p; C6 O5 {  h& p! M, D  i首先        PSCInit();//UART0使能) S* d* n3 `- ^. U% U7 |  N2 d
void PSCInit(void)
; x. o/ |1 ^( I% L/ X{- M" s  X& @- ?  s6 L
        // 对相应外设模块的使能也可以在 BootLoader 中完成- d6 w1 n* s4 V& @* H) H* v) m
    // 使能 UART0 模块2 r9 t% s" v; ]( e
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);1 k  j* g6 T! {/ z4 X4 L; i
}
; d1 v% e+ ]3 F6 x$ A& c
+ l3 r- \+ {6 T
3 M6 V, t3 @2 n4 |  r
然后是 双核通信的初始化           AppInit();, d+ }) W' e) j9 x1 ~
void AppInit(void). R# w: @. o6 }+ I3 w: {
{
% c- y0 F( F2 ?. y    /* Structure to initialize IPC (see Ipc.h for definitions) */; X2 c) f( I0 l& T3 P4 [
    struct IPC_cfg ipcCfg = {
" |3 R5 a% t7 Z4 S2 |: R* q            IPC_DSP0,             /* local processor Id */
& D: k7 H) h$ x            IPC_ARM_HOST,         /* remote processor Id */# _0 z: U) O1 \* R# w7 w
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
8 m& C" G# _# X            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
  g; ~& J  h. x6 ?            NUM_MAX_EVENT,        /* maximum number of events to be created */# H# ?' Z1 A4 u3 \' `
            &ipcPvMemDsp,         /* local side private IPC memory */, a# ]; d4 X9 u: h& l
            &ipcPvMemArm          /* remote side private IPC memory */
% A2 I6 Z5 z8 ~3 O3 P    };) W6 T, {# q0 Y0 Q8 O
    IntDSPINTCInit();. W1 o# |3 O- U+ S$ g
    IPC_init(&ipcCfg);% [% b. k$ U/ c# t4 |# t
    IPC_intRegister(C674X_MASK_INT5);3 {! l8 Z- B1 G) _" P
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));
8 }. H4 s* f& |
: G* w& O' a# v" f1 U    /*  Enabling interrupts for DSP C674x CPU */# z7 t/ X  f( k% i: l0 `8 _
    IntGlobalEnable();        /* Enable C674x global interrupt */$ ?# B! J5 ]% @& v& d8 M6 C
    iAssert (Notify_start()); /* This will enable IPC interrupt */
  x! C; ]$ ~& w}: z3 S0 B- }; S7 }2 ?: J0 a
3 u# a! n6 Q) M8 i" K
然后是  5 D' i0 i' b3 q& [% l2 u  ]
            // UART 初始化( n  k, \" q% n9 t( ~
            UARTInit();
# I2 f# `- l* U) C0 h8 Q
( L" I; g+ V6 b% i; R            // UART 中断初始化
( ]5 b3 K4 a5 i% a            UARTInterruptInit();' j, u0 F5 @2 [/ R5 _# D1 I" G& ]

$ s) ^2 C! [. [5 a2 `
. U$ o! S5 l2 G! R* k+ j) Tvoid UARTInit(void)
& k: _6 z0 P$ [{" d% r6 _2 V, p% \
        // 配置 UART0 参数% J2 V1 y  k) S. z( Z& k
        // 波特率 115200 数据位 8 停止位 1 无校验位+ x( X( V2 [3 L% n
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,
1 ?. f( ^& }% n- |! `& m9 W) W' {, U                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
5 X4 K3 b" q( ]$ X# Z, D        // 使能 UART0& H9 X$ o, H# z7 r6 U) K3 m4 q
        UARTEnable(SOC_UART_0_REGS);
' P6 q( {0 W+ q) g& p- ?3 G1 w; O7 L: A
    // 使能接收 / 发送 FIFO, c: w) c8 d: |. |$ K
//    UARTFIFOEnable(SOC_UART_0_REGS);
$ ^3 W7 o% r8 T* q' o: n/ u5 b- ^9 g" t9 i' q+ `4 n8 I
        UARTFIFODisable(SOC_UART_0_REGS);  ?- Y4 _0 h) g+ B" W
* o6 x$ W$ l( a- A
    // 设置 FIFO 级别     接收FIFO的级别
: s" g; e" e) r: P! p' R//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
- n9 {5 ]- a8 l& m& ^}
# I5 d3 m! j8 [& X. S& {

3 Y3 }0 Q& e1 I  }: A" S7 Q9 t: ~% O, g/ k/ A- x( l
void UARTInterruptInit(void)- N* x9 V$ R3 {, F% b+ f2 b6 d
{
. R( M5 }  d1 I5 O3 M0 I; u# n        IntRegister(C674X_MASK_INT4, UARTIsr);
! E4 L% ?" e# J% x1 ]        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
) P* m6 T  ^/ `1 [4 H$ `5 F        IntEnable(C674X_MASK_INT4);
& M- O  H' J8 U  o0 v2 ]' R0 ?- P' u' T: p2 j+ P; w* v2 v" ]6 F
        // 使能中断
, {# t7 z- g, c0 u6 R! d$ C        unsigned int intFlags = 0;
% ~- e; O' k  G% m& U" }* b    intFlags |= (UART_INT_LINE_STAT  |  \: R  E- q/ E+ n4 A& X
                 UART_INT_TX_EMPTY |    \8 R) y4 D% G" b3 B7 l
                 UART_INT_RXDATA_CTI);7 \, a0 U4 W8 R3 M/ S) N
    UARTIntEnable(SOC_UART_0_REGS, intFlags);# f& x+ ]3 a4 y6 ?8 r4 K
}
$ H/ [+ |; W9 X

! h1 v, W3 r4 R0 {/ x
9 J0 L  k+ n. w8 b& Zvoid UARTIsr()
/ t- J" D* D' O! o4 T3 A8 ^{4 z7 n) D+ e8 Y; r4 |, v
    static unsigned int length = sizeof(txArray);; D2 J* \$ |/ C3 ~+ c) f8 N
    static unsigned int count = 0;: G* }  o( ?: C' c! V+ t  K+ R
    unsigned int int_id = 0;  x* {( w; s5 M5 ]4 T/ c/ N& c* F

, N' C9 R+ ?9 M3 w" A8 a3 S% \8 s0 C& K

% U" W9 K; y* |, J- T3 \    // 确定中断源
/ |' j+ _. K6 W8 h# h    int_id = UARTIntStatus(SOC_UART_0_REGS);. f* T. ~6 W* U! ]5 `6 {5 Z

9 Y, o! Q+ w  |/ }4 B; r+ u3 e    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。7 T- P* k* b( H  o9 g1 H8 {
, Z. A4 z' s% m) @8 o* F
  W" ^. W; p- v+ Q' }" G4 P
    // 清除 UART2 系统中断$ t! f' I2 z2 b7 q* H, p  M
    IntEventClear(SYS_INT_UART0_INT);
/ C/ o- W  B: x4 V# b% l, N. I) \5 g) B! I! F
    // 发送中断* u# C3 A% }9 C! C3 _5 N/ {  p; s
    if(UART_INTID_TX_EMPTY == int_id)
+ d% u, m& J+ t) x1 g) m, P1 A5 ?7 c    {
1 N9 {5 d! a% G! [& P" b        if(0 < length)5 p3 Y$ z6 b5 s+ _( s2 L% _
        {1 I! P' p3 u: w3 e
            // 写一个字节到 THR  X5 x9 t# ?; z) W5 k- v
            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);
5 N( n: j4 \# U' x8 ]  ?3 T            length--;
5 V" o5 z7 M( T) F+ W3 r# a) a; K            count++;
9 N, ?! y' H5 q' s, j5 [        }/ p8 n: |+ e3 T1 m5 p# v
        if(0 == length)' ~, W3 A: d, e
        {
/ N- Q7 X& u* [9 D            // 禁用发送中断  d# y, p9 }. m7 L
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);. n5 S5 Q7 |5 E  u5 g
        }5 T- }' X4 z+ ~" b8 F% B  d
     }3 ?" D. f. R1 [; v8 L9 a; C2 S

1 j+ ?( `5 F( a5 D4 T8 k6 u    // 接收中断) z; B- z% H7 U/ B; k- q
    if(UART_INTID_RX_DATA == int_id)5 R" H) o8 [9 `  I; x  u" V
    {, ^& R6 x* ~$ T. ^; y
        if(status_a0==0), O/ u$ J+ ~( _
        {6 j$ m6 i& U9 i6 C7 j( l  q' r6 d
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
* ?, }# d& D" B+ E+ W- C+ f                if(a[0]=='#')* H# K, a2 r5 c* g# F- O
                {
) O$ j2 S8 U8 ^                        status_a0=0x01;6 n" N6 e7 f0 |( Z
                        status_a1=0x01;
2 t: L" a* f$ ]                }* [1 O7 u) X, G; B: {! L1 l% Y- ]' Q
        }3 ^% v# ?( ]/ M
        if(status_a1==0x01)
/ ]1 M4 {, o6 d        {3 W: a7 p4 U2 Q- G& a2 y' f5 u" {
                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);0 d! E6 \& p0 m# L
                if(a[1]=='R')
) t7 w( ]% f( g0 D" h* k/ r                {
. Q5 L1 H, n# N; o/ R& K, e& u                        status_a1=0;5 Y, i+ |& Y" c% v' p! F2 }
                        status_a2=0x01;3 i3 ]$ J8 R1 S2 J# S
                }8 d) D* T% C: Q
        }9 S" ^& V9 k- U* J) D  J# }+ R
        if(status_a2==0x01)
. h& b' A) U0 ?' H        {' S4 }9 n7 K; [' W
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
  T; J9 o; y1 W8 s: g5 W; \2 i) W3 V                if(a[2]=='A')
+ y1 k" t2 R/ H) K7 |4 E3 y7 i                {
" q9 [" D8 w; j/ ]- b9 n- U5 M                        status_a2=0;: t1 ]# M7 _0 o& Z: ^% {# r
                        status_a3=0x01;
  V# T7 m, A7 T+ l, h8 a5 u, J                }0 M% j/ q" B) r/ c) v
        }: W& O- b0 F2 P6 m
        if(status_a3==0x01)
4 z, B; K. E# S& K$ Y' @        {" q; T# U3 s) K: s) q
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);( y: i( H8 N/ Y" v7 [+ a
                if(a[3]=='N')% u+ S% S6 e! @* Q
                {
& x5 }/ x& s) \3 @. m2 m                        status_a3=0;" c6 o; ~2 d7 D* T" f9 s( W
                        status_a4=0x01;* J! q: N* u: h: y( p: D$ G! Z$ R7 o
                }# e; n; d8 G9 u3 o5 h- w
        }/ C5 W  T7 F& a- Y: P5 \
        if(status_a4==0x01)
, C( p. N" G, T& ]( y3 x0 r# x        {. `1 @2 i7 L4 n2 Q
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);% Z# U+ q- ], B# S4 g* E+ ]
                if(a[4]=='G')
& \7 l+ s0 B: \2 {7 z# [" W                {) b( w( l. o' Z9 o* ~3 w4 e
                        status_a4=0;
, F# h- {) ]: ^" V* Y) _                        status_a5=0x01;& `5 X+ s' W( ?1 }/ F
                }
, I+ A) |" [3 e" T( I        }
5 d2 g& k* [* n. F  \+ {        if(status_a5==0x01)- O2 x. y2 b) m& J' J( z1 d
        {
/ t5 i) L" f5 J, f                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; B" o) d( m9 Q3 {0 t
                if(a[5]=='E')
  _5 ^) I  r" G2 p* _                {
7 O+ l; V1 \% J/ {+ ^% j                        status_a5=0;
6 B  ~) v! ]/ w. k. ~' }/ z. k                        status_OK=0x01;& K+ ?6 P7 y+ l( }7 Y
                }
8 W3 ~2 ~6 K( e' C) G2 I        }( k% I) X" }. ~7 L7 g2 f7 L& N
            if(status_OK==0x01)
+ ~8 h1 q# q  {7 t9 R+ H        {
/ N: Y) A" I' b2 Z; |+ R                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
+ n9 i% d4 Q* _/ G" |1 C1 U6 E                        lengthrx++;
3 r2 s" F3 e% q' \                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
2 l! k. x& }& l) |                        {
+ b4 Q- b  J/ ]" w7 w8 `: p; w                                RecState=0x01;
% M5 p0 K7 a% j/ ~! J                        }" D9 }6 |, R" m
         }
* h" y* W* X) K  i0 ~( q
3 J& y$ u& ]  J     }7 g+ \! r. Y% m

; |) Y6 `/ Y7 V- N+ o- c    // 接收错误6 L' M$ a0 G7 o5 r% b
    if(UART_INTID_RX_LINE_STAT == int_id)3 g% A: x8 C0 S* K
    {7 }4 u1 _7 ^4 z" t0 o/ _$ {- U3 v
        while(UARTRxErrorGet(SOC_UART_0_REGS))
3 s* C$ G" k" |6 U        {
" @: E5 r* h7 x( V% V8 J            // 从 RBR 读一个字节% B$ h6 W& o8 P0 {. o/ f& w
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 A3 E1 Z! L( @; ~  s        }* R0 n; I* N" S& n% N
    }
- v# s8 G5 F7 Y: _& d0 o, P9 Q) |8 U. F5 e6 I
    return;
9 L+ ^( k# P: d  R) n. g- O}) \+ _, b  z8 q

: K4 V+ _/ J( ]8 d+ R, K4 W& F

9 _- Y# K, r+ S9 c3 {& u; T! |
5 ?3 m4 q" ^/ t# {  d& e4 H8 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2096

积分

创龙

Rank: 8Rank: 8

积分
2096
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
# ~6 a1 F3 N5 w+ M, D+ a
" q, x7 S7 s9 N! p; P( k" ~UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
& T- w4 G% ^. J$ e
9 I7 E3 W1 |3 r# t* w要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
( r# N& D, H3 _, x5 c6 O  B- q) Ohi,$ x! j. P- N$ v- G: @+ R

- v. [  V" P" ^3 cUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

) |- q: l) b6 H7 ?( [$ W9 N5 h0 o; Jvoid main (void)
/ }/ }( I4 O/ A2 o6 _1 X{
; a- H; ?0 l  X  e        int i,j;  R! N6 i# d8 y/ _
    char *str_buf;
' O6 H. ]" G/ }% r    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];
$ T2 m9 z2 W; ^! @/ l" n$ |! U5 B; R        double est_L_b_=0;
0 o) D, F. O8 m0 N0 [5 Y3 B( q        double est_lambda_b_=0;
, o' Q, i4 w7 O, q% g6 a        double eul_[3][1]={0};8 |# B8 q. \3 x: O+ K$ X1 P
        double est_v_eb_e_[3][1]={0};. Y7 b, R. h" y
        double est_C_b_e_[3][3]={0};4 D, i0 T; g5 c( Y" d& s9 a* Q) c* M
    char *qm;
1 i/ `4 n  ~  }" \2 x# n+ m    char rec[70];
8 e! j' r. n) t        double L_b=0;: r" l8 N% q! k' g3 Q7 U5 n- }$ o
        double lambda_b=0;( E  ]+ W" P- F+ I+ |
        double h_b=0;6 A- I/ ^7 `+ |" V" j: j
        double rate;5 z$ j& p5 [. a' _* l3 W6 F; t
* p3 u6 B6 r$ h# n
- l2 Q( d* k& C9 k& n
        // 外设使能配置
$ a5 U/ [  U' C+ t  E* ~        PSCInit();
$ [! c' f5 U) N8 J' h. Z( ~0 C3 N! d+ N9 k& G
        AppInit();
* S  E: C7 F1 m" [/ J) H
, f# q2 T1 ]" x! w; L( ~        // UART 初始化
. }) {" F6 l0 J/ c* {        UARTInit();1 Q; c/ S: i2 B( @$ _+ R

) C) h0 j# t  ?" ^9 p/ H. r( O# P0 X        // UART 中断初始化
+ E' ^$ ~5 l+ R3 T2 q$ B3 Z  V* `' }        UARTInterruptInit();
6 a" ^% t) c7 n3 X+ C2 Q1 r" s" P8 R4 p7 H
    evtRcvd = 0;# n# v# n# T3 p! f5 |
    RecState=0;9 E) ^9 H2 y9 L1 J
    /* Initialize */
6 O/ q% y: P$ J& r3 [& D3 t/ c5 n& x! j; V
    printf("DSP subsystem ready\n");% e+ j+ H8 X0 W
# S  P# c" p# x& b
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));
# B* t0 Q/ R* A4 h% @4 C* R
# ^. K, t( Q7 o# Sfor(;;)
5 O( L- J  }! M4 r5 }, \4 e; u{! v- s! l  R# z
        if((RecState&0x01)!=0)
4 H9 x# k8 i. X* R        {: T1 ]& `. V" ^. V
                printf("liuzhenxing\n");/ w7 z7 e$ ]( V1 [7 q, }- k) g: w
        }7 @7 i2 p" H( A0 X* ?
        else
* Z- p7 V, v" C& Y" d        {
3 Y+ n( x/ e4 ?( d" ^. E       wait_event();) |# S" q5 p' {- x( m% y

" t5 Q: M* n; X$ s           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针" x9 Y8 Y, Z7 ]5 J

/ w- a; R6 C# z* Y/ J- B5 V           for(i=0;i<60;i++)4 W  B& m$ N1 x7 s, H, ]0 a
           {
5 n9 j) ~8 d" f( V                    rec=*qm;
6 O# z5 ]- b8 H; U' X2 t                    qm++;  \  s( D2 X8 F0 X& ]
           }7 B+ W) A; j/ b' E/ d4 I0 @

) L( K. P; k- d9 N           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
3 L- x: Y' j$ {2 F7 g$ I' O  }  d' X, P8 m9 n1 w' A6 Y$ r2 Z; k
           L_b=L_b_receive_double;2 |0 C7 F9 B7 Z: F) B5 u
           lambda_b=lambda_b_receive_double;
9 ?* ]( r' p5 H( g. [3 w/ @           h_b=h_b_receive_double;# C8 C5 F, T2 a- Q% t  G
           for(i=0;i<3;i++)
* t$ k/ G) u  ~% W" O9 t) C; t                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];$ t0 @: h6 e: @& K7 r# L
           for(i=0;i<3;i++)8 @$ Y& J' t' P
                    for(j=0;j<3;j++)
9 K; i- U% f. ]+ t                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
  k8 o" ?6 v  p2 O! k& _  `( Z# Q9 ^9 J( z" i, Z
                printf("L=%lf\n",L_b);
) I, |! f' ?6 \' f: q                printf("lambda=%lf\n",lambda_b);+ i, ^. {" k6 C) D9 c- J  b
                printf("h=%lf\n",h_b);
( O5 d2 F+ x0 t# K; V! N. }& z! J" _% ~* H0 m) v4 o
                for (i=0;i<3;i++)* \. v# A# ~  r; k( a- ^9 w
                        printf("%lf\n",est_v_eb_e_[0]);
3 A/ D7 K) K7 s2 `                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 x/ p  p  T+ g# c) `9 Q. w
                printf("rate=%lf\n",rate);" F3 m+ o: c6 s  i5 H) H& D
) L; x1 y# i# I* Z
                CTM_to_Euler(est_C_b_e_,eul_);. v8 D0 m% M+ P* {5 a
                for (i=0;i<3;i++)" v1 Q, }( e7 A- c/ u$ }3 j. `
                        printf("%lf\n",eul_[0]);
: L5 q  _, s9 @3 A' Z, w1 q                printf("end************************\n\n\n");
4 r) C$ D  k0 I; e) f6 |1 U- }
2 _5 `1 O+ f- x4 j5 ^4 J; h: R                /**********************************************************************/
" S" `/ ^3 c  _8 @6 F6 w
& O& n- s9 F/ A: ^" S' z            char flag[4];3 f3 ?/ D$ P+ n, m5 g0 Z. F
4 U- I5 i7 d6 t7 M
            flag[3]=0x00;
6 X9 }9 Y; ^0 R) `- n+ s3 M" e            flag[2]=0x00;
; b; ~+ G+ c& J$ T            flag[1]=0x00;+ B4 o5 Z& G" H% b, x4 b+ ~
            flag[0]=0x01;" B+ v, O3 i" G
' B# M4 v2 h9 G7 Y' D
    /* Allocate I/O buffer and init with string */, Q; `7 B1 L: ~2 G' q0 R2 P
    str_buf = (char *) malloc(80);
+ _$ c7 K' ^) W9 ^7 f! F5 p9 E    str_buf =flag;
! v) v1 @" c7 L% _& |* v. T& `0 R' |- {. w, B1 v. J
    /* Send buffer to remote CPU */6 E( n, X% @- Q/ e/ {+ k
    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));$ @2 @4 s2 ^. z3 u$ n% h' _" m7 j

, g. m  y+ D4 y( G# E    printf((char *) myPayload);/ V* B' g- P' B' P* u
        }
. c. w7 z7 n# X4 z4 [& b; a}% Y) [9 b  E3 l8 A$ C7 M

, G: P: h  A" d    WAIT_HERE;
% H$ e. H- M: V2 Q3 t}6 w6 C& z# }  B2 B* P$ t
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
" C# s2 R" F2 |; y5 U' J2 m8 B我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
; I7 I2 p+ T4 Y  ]% Z. D0 u+ j然后我把双核通信的初始化屏蔽掉,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:540 i( X* i, E  _; P  Y; @2 ^1 M3 r% |
syslink 的初始化是否成功,notify 通信是否正常了?

* X% B; A, Q1 ^- J8 h8 e双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
7 ?' z; {; c1 }. J* R9 s4 @9 msyslink 的初始化是否成功,notify 通信是否正常了?
4 `; J. y5 a8 O- Y. J) O% t' b
我用的是裸机开发的双核通信,用的是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:204 j. w9 t5 {1 K7 j/ z5 R0 }
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

( s" g0 W; Z' T; s, G2 r1 X  W; b建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 10:10 , Processed in 0.054547 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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