双核通信的同时需要DSP核通过UART接口读数据 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。) @9 ?, ?9 i% ]( M8 o0 N0 N" x8 c
我是在DSP初始化这不太明白。
) \9 P- J5 f2 M初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。' }$ f; d* O" Z! V$ s$ Q
( S' a- m# c7 K2 `% W0 Y! M

: c: r) m2 K5 @1 W! n. N首先        PSCInit();//UART0使能
8 K+ Q. J& K/ _" E6 \void PSCInit(void)9 R# b, t+ B- ?% ~% r! P& J% P
{$ G' M% t0 P+ e# ^" S+ {4 z/ e
        // 对相应外设模块的使能也可以在 BootLoader 中完成) u8 [" n' h; Z& [- d
    // 使能 UART0 模块" ~' k7 T8 P8 U$ z
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);" M9 }) G9 I" K
}, r. f1 o5 ?$ J3 M
: h0 {: F6 B4 E* I: c! {

6 v  Y. R4 A1 N2 }* z然后是 双核通信的初始化           AppInit();
! g  k, i: T& v  T' Gvoid AppInit(void)
0 q6 J1 @# I( s, I% [{; [8 r  G- r: X- y# A( H
    /* Structure to initialize IPC (see Ipc.h for definitions) */
/ S" M2 a" ?5 F, F+ B4 L* U    struct IPC_cfg ipcCfg = {
1 E8 ^  t* E2 C3 Y( L& n# o            IPC_DSP0,             /* local processor Id */; |, C* ?( M: |! r$ f
            IPC_ARM_HOST,         /* remote processor Id */
' R2 e& ^4 V% b2 q# L" a& u2 r7 w            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */
: \1 |  y- B6 t; j  S            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
, x  y1 ]" P: S$ t" M2 x            NUM_MAX_EVENT,        /* maximum number of events to be created */
9 N& m8 T- P9 r" t; @& f            &ipcPvMemDsp,         /* local side private IPC memory */2 u0 R: p: e( M4 L
            &ipcPvMemArm          /* remote side private IPC memory */
8 p: G  X' Y8 \( y    };2 |$ P! w& h" y! [
    IntDSPINTCInit();
; U  A  E' Y, b! i2 q, {: z    IPC_init(&ipcCfg);$ m% P: x: [; x2 B# x$ _3 _
    IPC_intRegister(C674X_MASK_INT5);) b, g1 O3 [8 Y7 ~# t8 e
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));" |5 a5 n; X! G' G! z

  ?& N7 X' H- k9 A8 |% V    /*  Enabling interrupts for DSP C674x CPU */
* b3 w/ M: m4 ?1 ^    IntGlobalEnable();        /* Enable C674x global interrupt */1 C- E7 ?6 r& e5 r% ?  y0 b
    iAssert (Notify_start()); /* This will enable IPC interrupt */
: H1 I& N8 M/ H# x' w}
4 h; }2 ?5 W4 X6 l7 }
( D/ |' e0 N+ w  Z4 b
然后是  
# K0 x" x! z. c4 A            // UART 初始化
* I  S9 u2 u+ k" X) |, }            UARTInit();& `  B" R! ~. m5 D( D
* B# @- [4 U5 ]: D) _6 n  ?# O3 `9 W
            // UART 中断初始化
- Z; a6 o& O$ S  N' Y) m            UARTInterruptInit();
, R( O$ F: C3 I0 f

2 l, T/ W! }! x& T2 u' Z, W% x2 u
  T. L; m( r* O# A3 ^void UARTInit(void)& {8 b4 g& _% F/ p2 B
{( r) D; D, X5 J! t& _5 ~: i: u
        // 配置 UART0 参数
4 Y) @) ?# u! V+ ]$ K- t        // 波特率 115200 数据位 8 停止位 1 无校验位
3 s1 W! L3 c+ Y    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,+ P" L/ H0 W/ v6 c! C! f& |
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
0 e- Y2 L1 v1 k  G        // 使能 UART0
2 x; u: M0 q2 `* }        UARTEnable(SOC_UART_0_REGS);; A) S. Q1 |, J3 x
& L  r1 G* J$ R
    // 使能接收 / 发送 FIFO
. S/ t1 _  D0 W& j6 D3 W//    UARTFIFOEnable(SOC_UART_0_REGS);
2 u3 X" E' [; o6 o6 S1 M! f9 p+ u& @& D8 l, l# R6 J
        UARTFIFODisable(SOC_UART_0_REGS);
6 l' `+ t1 w$ M5 _! R5 a1 I( A  r8 @
    // 设置 FIFO 级别     接收FIFO的级别
( F0 f6 K& `" H8 F2 c; X# _- I//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
% X/ R: E2 r+ }1 v! V}
- a! c0 f2 U! n6 x+ N

  d- \) X" k+ T" L; z$ q( C
! Y1 a7 s1 t# q' m1 {( evoid UARTInterruptInit(void)5 f4 e2 ]% m4 H4 a" E; P
{- {  ?8 k  Y1 U+ G* P" N4 N
        IntRegister(C674X_MASK_INT4, UARTIsr);7 R. g; B9 ~4 x0 g  G1 {% a5 Q
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);! h7 t* b4 o. `0 d3 k5 c
        IntEnable(C674X_MASK_INT4);/ I, x7 q9 X* ]8 h' J; x9 x
, O$ ]2 j% U! U; g7 o, O2 B5 J- L
        // 使能中断
' X# I, ]* x8 c        unsigned int intFlags = 0;
$ m5 ]; S/ ]* O) y$ R0 b; f! R    intFlags |= (UART_INT_LINE_STAT  |  \
. K' ?: }& A. h5 P! a- H                 UART_INT_TX_EMPTY |    \
" ~1 p6 Y0 b& t: ~                 UART_INT_RXDATA_CTI);
1 m7 e$ ^/ l6 [    UARTIntEnable(SOC_UART_0_REGS, intFlags);
& C" A, h( F* f% K0 a9 U2 r}
* E  [& M  q+ v7 }5 W
/ Y, O) Y- A. _6 [$ _
' W) H  f( m- P, ~2 [% r
void UARTIsr()
+ K+ B4 E( D9 g! ]6 U2 L{
/ `- U  z, ^) T: \3 R: |    static unsigned int length = sizeof(txArray);0 `. C* Y' D! x0 g5 n. a1 g, ?9 F
    static unsigned int count = 0;! `9 j) k* p$ c1 @
    unsigned int int_id = 0;' j* z, b# g" N# c; \7 x
3 Y0 s6 C2 k+ j' o9 I

4 {9 H" S; e) o+ F+ X
0 d! m2 s0 Z$ F2 x2 x  }# r' I    // 确定中断源) g- p7 k) l, n0 @- M
    int_id = UARTIntStatus(SOC_UART_0_REGS);
0 P" j- m+ X; `
% \5 P3 I  G% ]. x    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。+ E5 S& U6 {" a: Q
  y* w+ @6 a! Z. K! `

7 K7 i; i) @/ I0 l2 C2 A5 Q" a    // 清除 UART2 系统中断+ E5 h' b8 b6 a; T6 ]- |. b
    IntEventClear(SYS_INT_UART0_INT);. D6 t- K2 n1 r/ u9 ~
& }/ j% P( ?5 e% x
    // 发送中断9 U/ J. r- H6 K' f# U# ^
    if(UART_INTID_TX_EMPTY == int_id)
5 |$ w5 o7 Q1 e9 f+ m( _    {
8 s! l0 R8 x2 r        if(0 < length)
& b7 V, I; u5 \/ e. Z* S6 R/ f        {, I! M2 }# e/ {' G
            // 写一个字节到 THR
3 C4 {; {) h) F: a$ f- @            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);  y' l  O+ a& `; `; H( V
            length--;+ V0 c7 Q  s: M- B
            count++;" R' v& S9 }! s
        }, r& q4 }/ A$ u& l
        if(0 == length)/ X6 S! e/ Q* T6 k
        {
+ V# ~+ q8 C* S9 ]4 u  H            // 禁用发送中断2 b! A) v' Y4 _5 }( g- ~+ @
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);% S0 N* G: `8 C; X* ?
        }
  e& R4 x5 Q1 h3 L, u0 m) @     }2 S5 b+ s. Q( q  Z  i) `

+ p# Z2 E; ?6 p- f& t* B/ {  H    // 接收中断
0 L2 R4 `; v, _% g1 D    if(UART_INTID_RX_DATA == int_id), e5 O4 k' _% }4 h9 V3 S$ y
    {
* c! J/ y' O+ ?5 D        if(status_a0==0)5 A4 k, L& H) T2 ?
        {6 _. h) t$ s/ f5 h3 Z6 L
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* s5 A' \; ^- d: r+ ?$ A9 i+ v
                if(a[0]=='#')  O9 i8 w3 |4 ]$ T* i0 C/ r3 Q
                {
* [* _+ a# O2 j+ h3 B                        status_a0=0x01;' e2 n7 e- q! ?8 E5 H" t: o
                        status_a1=0x01;7 j/ ~, p" s; Y* F$ `% C  z
                }
6 i  E$ e7 y4 T! A0 ^/ C& b        }
1 b. y- Q4 ~- ^3 w- j( l6 k  I        if(status_a1==0x01)! q2 }4 s8 G" J7 ]" x6 n
        {
, Z  o2 ?8 z2 n& M* F. r- l0 \                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);! G6 t7 E, H; ^3 V, E) u
                if(a[1]=='R'). v" q0 u! W/ U
                {, [- R9 g' k# E6 V, ~9 I
                        status_a1=0;
% K8 X( \; A/ S  Z& k* N/ J7 z                        status_a2=0x01;
' c8 p& J. e2 P  p* q                }
7 S4 l, X/ ]. q% f5 Q        }9 _1 F- _  U  _0 p
        if(status_a2==0x01): j$ k' n: D& x: O$ q7 }
        {% e. @! X6 j! Q2 n
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; h& {2 M2 r" L- D% V, w
                if(a[2]=='A')8 G  h8 s( c& Z% j  s; Y( k+ q
                {
6 Q3 v# d) k" b: Z+ s0 c                        status_a2=0;
& ?' N2 S5 K, X8 Q                        status_a3=0x01;+ o+ P) p& L+ K2 K+ [: b
                }
/ _+ x1 R4 W1 j1 x; |        }; w" U2 c$ H, E2 E: k
        if(status_a3==0x01)
- L- p8 {! Y' }% s" J) K        {
  X" f' R0 }; K& C5 L6 c                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);+ l4 H" x4 X; N9 b6 ~  R" A) F
                if(a[3]=='N'). n+ g3 Q& M  u4 i' z2 E
                {: k$ l+ _: `* v
                        status_a3=0;$ @$ ^) ]$ S8 D% {# c' B
                        status_a4=0x01;
* x" Z9 {' S; X- Y$ C$ E% s                }
6 @6 H7 @2 U: [- x        }- @2 u1 h9 q$ k' p+ T
        if(status_a4==0x01)3 s% n( N( I* S4 ^- d; o
        {
* f+ p1 O4 V! R2 r, d                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);3 M: A# x# @" Y8 P9 _) q8 ]) ?+ U; H
                if(a[4]=='G')
1 Q5 j! D6 E4 R& t% N) O* p- R' q                {" ~+ _3 \+ g, a. u5 H  ~: v
                        status_a4=0;
: n; b6 T( {# s- `                        status_a5=0x01;
% \- s- Q( v0 a( v" j6 [                }
" I8 \' f; r  f# s/ u2 |        }
: u1 K6 M' h- r/ \. [  {. i$ r5 G        if(status_a5==0x01)
% G# R9 |" Y2 [/ \5 D( U        {5 h/ z% T/ x, @6 W, [; ^
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; g7 u" B5 z; D% `/ i- C& k! x, d
                if(a[5]=='E')* u7 p; r: R! ]% ^  O
                {; c4 f7 g( h# C9 A& M* g/ _
                        status_a5=0;
" T, A, x! c8 t' a  e7 K6 F$ M- G                        status_OK=0x01;3 h) A3 {% k5 B+ a1 z
                }3 l- f+ p$ d( b; b
        }( {; m$ K! e* ^1 f; O' m( T& C
            if(status_OK==0x01), V5 {* k' ]/ B# v7 s
        {: x# g+ H  H) N' `( {- D) K
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);* z2 {3 S8 U& W9 b
                        lengthrx++;
/ C+ A: ?7 Y& m3 ^/ h" l                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值), V$ f# \% Z  [* X/ X
                        {: w0 M1 H# i: T/ H" D$ c  \
                                RecState=0x01;! K1 O, j; ~- j: l8 j, n  v: m( c, [1 c
                        }3 \% h4 H1 z' E- V- ]$ Y
         }% }- p$ X8 t# y
$ j4 Z! x3 i; Z5 q2 H1 c7 i
     }' j( h, Q0 F+ k& W
/ o$ z! _' n) b5 b6 r  D/ i: [
    // 接收错误
/ ^- ~) Z) _# L6 H    if(UART_INTID_RX_LINE_STAT == int_id)
7 J! A8 `* {9 m9 ~    {
  N  n" i8 f0 \        while(UARTRxErrorGet(SOC_UART_0_REGS))
$ i, j& `# \; l& i' g1 j. ]2 t# b        {
9 \2 e) M% z- `, Y+ w1 E            // 从 RBR 读一个字节: O+ J% e1 J4 G
            UARTCharGetNonBlocking(SOC_UART_0_REGS);
0 d& y+ u, d5 d, `        }' H) e1 K, a( \$ Z/ }/ o
    }
, R4 s$ p6 U$ s0 c! Q- e+ E( _9 v6 R& E5 T) ]: \3 e
    return;- L; J# }6 c: W# c! c# X, F
}* X/ U' K$ b& r; X" s& _; k3 R
- P. [4 U- q* d) ?" Y

0 P& U5 [5 `0 _
* c' j- b0 H- J% P8 k: o4 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2191

积分

创龙

Rank: 8Rank: 8

积分
2191
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,
& c. M" }" }* B) l' ?7 v  T2 e" i$ j% H" S8 o% }% f
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。0 s3 \( C" }) L1 A6 ~% [

) \7 H  N4 k* @! [6 X要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13
' B9 v+ j6 `' Hhi,: K( E$ Z: Z( d* }; U8 ~
; H0 ~( a: d, w
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
; G+ c) @5 r* i4 C. [5 P
void main (void)
/ N, S  ]4 w: S# `" z* U0 ^+ n{: L6 i# C9 {% Q' D2 M) v2 ]- w
        int i,j;7 \% M# h; p+ Q
    char *str_buf;
4 x" O# S7 s3 K% y5 v7 Q* g5 _    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];$ p. w3 `' d% w" V7 C8 \" Y
        double est_L_b_=0;$ @) x! {$ I: Q$ ^8 W2 M" V
        double est_lambda_b_=0;
* Z6 Z0 J) q3 E        double eul_[3][1]={0};) F8 W8 e1 c4 @& K; l
        double est_v_eb_e_[3][1]={0};- T4 f! c9 I/ O; [2 A5 ?* @
        double est_C_b_e_[3][3]={0};5 P3 b# B( C) T4 C
    char *qm;
" m! d* F* E& k/ h9 I, a    char rec[70];- Q0 h: O% i) v9 K" G
        double L_b=0;
( M! [& B' ?, G5 N7 Q        double lambda_b=0;% W7 n- I* c0 _+ m
        double h_b=0;3 ~3 L  e- N6 @0 l0 \. }
        double rate;
3 w( z( F& ?' f7 e! l% R7 h6 @8 u  |& b  G

; _) r7 I9 i& a        // 外设使能配置& m5 J( F" N- i5 U  t% U5 B
        PSCInit();
* i/ b; B& J9 W% I' h% u4 ]7 `/ l9 \
        AppInit();' l" [" O7 i, w8 j( D: w* W* P

' I, D! {0 Q. O* @        // UART 初始化
0 l" x3 @1 N* w6 {& }        UARTInit();
5 Q2 O; N7 h; `: L5 y# G6 }3 T% E# I( Q- j/ S7 W) L: i9 t% Y
        // UART 中断初始化
& I" R1 D" f, g' [. e: @        UARTInterruptInit();7 Y. X. T  }4 ]: |2 h6 D

( j5 d6 X( W9 D0 {    evtRcvd = 0;% o; K% F* H5 T; [/ S; W$ a
    RecState=0;2 V4 }& ?7 m3 D5 Y
    /* Initialize */
6 e: X2 s4 `* j/ w; Y1 I' J! D1 |" ~0 f; g/ E/ \
    printf("DSP subsystem ready\n");" w: K6 _1 P( E# n8 n$ a: l

$ v8 z3 D& a6 S$ A# M$ o( Y! g    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));5 r- }) m, O7 `' `# f- R4 G$ E: R& w4 a
  y0 o* U( U$ ?2 o. b, A
for(;;)
- N0 u6 H- h/ K+ f/ u, l' Z3 j  {  `{9 V" e# r/ d9 u7 u2 {  T
        if((RecState&0x01)!=0)( o. \  \- r8 t+ E3 l" O9 J3 k# x
        {
3 s8 B# ^; N. O2 T4 a* O                printf("liuzhenxing\n");( |$ n0 B1 h. H* b# t* h9 Q
        }
( \0 c! ]6 y* O        else
/ o: r! m# J3 @) L9 G, i: r        {3 b2 }* \1 y3 N' n3 M
       wait_event();. E' Y9 u1 y- C) j) o4 t% E
1 y: y" l  t; D3 F5 w3 v# q
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针4 L% j3 r9 L" H8 D" C( @7 }
2 [; r6 G5 b9 Q, M2 A8 r6 w
           for(i=0;i<60;i++)- p9 e2 C  {- Y4 D( [
           {
$ ?# W# z# g: |/ ?                    rec=*qm;
1 x% T$ c, g$ S* G( c8 A                    qm++;
3 F; @% z* J9 A* N$ r           }& ?$ c1 A$ h. R( H
7 G* f/ ^& Z8 f0 H- D9 |# E; a
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
' @2 Z$ N& n  W1 t! V( s8 L9 w# T2 |' e" N
           L_b=L_b_receive_double;
. k7 p0 e4 E3 z. q  f: Q, O4 F/ m           lambda_b=lambda_b_receive_double;
2 Y  B, \% o0 Q2 a, |' s           h_b=h_b_receive_double;$ [! {& U* c# ~( R5 c1 h# `" O
           for(i=0;i<3;i++)
! J  y( [2 `% r+ c& T9 s  ]; d1 @1 d                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];5 |( q& F6 i/ z( j, }) j$ C
           for(i=0;i<3;i++)
9 B9 Z# j3 \( V# s; @                    for(j=0;j<3;j++)
1 d% ?! f, Q1 Z, Z# @" X& n  r                 est_C_b_e_[j]=est_C_b_e_receive_double[j];0 T7 w- n4 `" T+ w/ O
6 b+ F, }" m/ ]; Q1 A
                printf("L=%lf\n",L_b);
3 X( D9 }, q& {. Y! E5 \                printf("lambda=%lf\n",lambda_b);
4 y+ ^5 c7 }! O( T* `3 U- f: s6 F+ O" N                printf("h=%lf\n",h_b);; C8 A: U7 [$ c- s  I$ y8 \" d5 J% B- ~

6 }+ z/ U: k! f) p3 E% V                for (i=0;i<3;i++)
' l2 G$ a* ~/ N, V' }5 @                        printf("%lf\n",est_v_eb_e_[0]);$ c+ v- T( m6 J1 b
                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]);
; M% V5 o6 d9 T                printf("rate=%lf\n",rate);+ _6 {, _3 K3 u5 l2 C* Q

) l: c) k. e& {9 @7 j( K0 y                CTM_to_Euler(est_C_b_e_,eul_);
9 m8 j# N% P9 n4 |                for (i=0;i<3;i++)
( R* j$ L7 [. H2 c) s                        printf("%lf\n",eul_[0]);0 s% w, G9 G1 U8 w! j
                printf("end************************\n\n\n");1 ]7 k8 g/ v. _; X

, p! B2 |! b8 L) L* i! ?: [+ q8 w                /**********************************************************************/9 [0 V% D' C# D5 r3 H( q8 \3 U4 B
. Z/ n5 {: q0 D' Q% m* s
            char flag[4];
( S4 _: f3 o9 K! c, T0 p# U
9 X, @6 f0 U" ?) Q: _            flag[3]=0x00;6 ~- a) `9 f6 Y! q+ s6 ^
            flag[2]=0x00;4 _! N2 P# A$ D% I
            flag[1]=0x00;
7 G! q3 E7 k! S            flag[0]=0x01;
" T' P3 F: h4 d! b# m8 }0 b4 I* q0 b# E: f9 C
    /* Allocate I/O buffer and init with string */2 r8 ^. Z6 R: E4 D- @3 E, z
    str_buf = (char *) malloc(80);
+ A# ^' @+ y0 D    str_buf =flag;3 z4 o, }. V8 W' A1 P

* }' q& D) M% o) i; Y$ P    /* Send buffer to remote CPU */
0 Y( x2 d2 W: e! q    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));" s! [2 ^$ S: A3 l! G7 G6 a

" I5 a0 U; |4 s% b4 B  W3 I1 w    printf((char *) myPayload);$ K2 J+ t) O  F$ e3 I
        }
8 t5 F3 v) Q- w}+ p0 b! S4 Z( y7 D2 E4 G/ \

1 Q" E  ^0 T4 r4 p* V1 e    WAIT_HERE;; g  X* a' Q$ [; T
}
- `9 o; |! C. ~: h% X, K
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:0 c# [- }( f6 d% K( [
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
0 B& Z5 _( r! m$ q8 o4 m  D+ d9 i# f然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

113

帖子

2191

积分

创龙

Rank: 8Rank: 8

积分
2191
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
* G: b4 j: k* _syslink 的初始化是否成功,notify 通信是否正常了?

' z5 O! e. D& U& g" v- b双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54
* a. c( U6 }; f0 m$ Esyslink 的初始化是否成功,notify 通信是否正常了?
, J: j) X! \$ l* ~# I
我用的是裸机开发的双核通信,用的是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/ |& S" r7 j7 L" i% q, k6 Z
我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程
# h+ v) f; v( L4 O, t! w
建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-3-17 11:02 , Processed in 0.052365 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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