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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。
9 S0 _, C9 N0 i9 S3 N- T我是在DSP初始化这不太明白。
3 l0 V& f6 S. h6 B5 _" q2 }初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。/ X" I; p1 Z, A1 A1 r

9 p) }: b. k$ A/ H
! `( K# U/ z% L首先        PSCInit();//UART0使能
; X- L/ E" p2 s8 y7 w3 K# g/ Mvoid PSCInit(void), y) v( I% @* L1 @2 {& B0 m
{1 |' r: y' N4 N8 F
        // 对相应外设模块的使能也可以在 BootLoader 中完成
- P$ C# s9 o. j* A! J    // 使能 UART0 模块: s5 e1 c8 i) U/ R! s. _
    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
% Z; N2 `3 j" H& M. |6 a) i! I) X}: R1 C  U/ i7 s% H( a% W

# `8 w2 e& Y! g- T3 r5 [
/ V% }& M1 K8 Q$ s) ?8 B然后是 双核通信的初始化           AppInit();& l& k8 C- ]. S. H( a: z
void AppInit(void)
1 }% R2 B  d9 S) i% t6 t{( m: n( V; k8 ~# x9 S1 i
    /* Structure to initialize IPC (see Ipc.h for definitions) */
4 C, Q  W+ d% I! @# }    struct IPC_cfg ipcCfg = {
5 }: N" l& S- l& N! U6 y( N# I            IPC_DSP0,             /* local processor Id */
4 f5 w: x) U1 P            IPC_ARM_HOST,         /* remote processor Id */
& e6 @. _0 Z- z' n* i            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */7 V0 i0 V/ ^# p4 S6 y2 X3 P
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */
+ b1 z) l- P7 b            NUM_MAX_EVENT,        /* maximum number of events to be created */3 _5 A+ X# \7 Q# z
            &ipcPvMemDsp,         /* local side private IPC memory */% e3 C2 j* I3 x; i# S
            &ipcPvMemArm          /* remote side private IPC memory */
3 A2 h4 J5 @/ q9 T) X. G    };
* h/ ?$ ~# U5 a/ h* V    IntDSPINTCInit();; A4 y6 Z$ V4 i  ?: j
    IPC_init(&ipcCfg);, N9 V* x) t; Q* Z- C; I( X# S
    IPC_intRegister(C674X_MASK_INT5);. H9 Z6 z5 i* ^5 B
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));' `7 z8 j/ ]; ]' m. M2 Z8 K
% j( {( \, z7 R7 Y7 v' S: J
    /*  Enabling interrupts for DSP C674x CPU */* T  N7 I$ ?- R, }" W' z
    IntGlobalEnable();        /* Enable C674x global interrupt */+ O4 C9 w8 n- T3 `, q, r) x
    iAssert (Notify_start()); /* This will enable IPC interrupt */- x5 B) M* a6 W# N' D' g
}+ F3 d3 c8 B( N- F: R: x

) Y" a$ e* U+ u0 J4 U/ }& b然后是  8 |8 _5 ?+ P, E
            // UART 初始化0 a6 M/ H4 v# ]9 ]$ l6 y
            UARTInit();& c- B% ]* Z' ?# G7 f& R- C; s
* Q& m# O7 O! L- o
            // UART 中断初始化
0 V2 X4 |. |) i5 J& _8 o. V# Q            UARTInterruptInit();$ D, h) |0 c  j( }
. a) I; B, T: @9 ]

' Z; [! k3 x2 \/ b0 a6 P: f2 Ivoid UARTInit(void)7 a% _0 i9 s& c9 ?6 _
{8 Q! a: y" ~0 P& l3 [% E8 e
        // 配置 UART0 参数  p" H) s6 {+ m2 V5 O) {
        // 波特率 115200 数据位 8 停止位 1 无校验位# i! G& q6 o/ l! U+ Z% P
    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,9 n$ L& l8 s2 l: s% X1 O8 v8 Y
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);2 G- M2 C4 J0 I& |1 Z/ W# h4 @# L
        // 使能 UART0
- \* s2 W% D( p& }- t; x0 [8 E# D        UARTEnable(SOC_UART_0_REGS);, V1 D% l& u. Q# m5 X6 Y7 K  a, X4 }# ^
7 m' z; i$ @! W$ \
    // 使能接收 / 发送 FIFO+ P4 K( f4 N/ \' J
//    UARTFIFOEnable(SOC_UART_0_REGS);* F4 b- N* q( I' K' r+ b' q1 \
  h( T1 J4 v, n4 F+ s( g
        UARTFIFODisable(SOC_UART_0_REGS);8 J$ {, h4 `0 d* ]

7 }4 V9 C9 U5 F7 P    // 设置 FIFO 级别     接收FIFO的级别5 m% F, r, @# i1 c! K0 I* z
//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);
0 P* i; u. T% C+ f4 |0 r# w( f}2 v0 U( P5 S% q

- R! C. y$ @8 m5 L( ]; s3 ^1 {" X( Y, v; W
void UARTInterruptInit(void)
" e2 a7 F# z( n! o{
+ T. R) z6 D4 L: Q        IntRegister(C674X_MASK_INT4, UARTIsr);
$ S5 `# ]& E7 ]- Q3 z: Q  j        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);. y+ f0 \3 k! i- O" ~
        IntEnable(C674X_MASK_INT4);; \! {" K9 D0 T  W/ U! s

5 h% H" R# }# x' u        // 使能中断7 B) c  \0 J+ `( z
        unsigned int intFlags = 0;- N. X( J$ _# I7 u2 p) P# M
    intFlags |= (UART_INT_LINE_STAT  |  \  l8 `' }1 [3 z* H
                 UART_INT_TX_EMPTY |    \" x1 i# {9 P; ~
                 UART_INT_RXDATA_CTI);- d  }  a0 H, ^- J8 W: s+ r
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
' C% k3 b2 Y5 s$ ]! r}9 P# ?' C$ j. d3 d, V
. [/ r, d. u, s# `0 k

- \$ S( ]% `+ ~3 M. H* W2 `! Rvoid UARTIsr()
3 S3 Y" B# G. G{
2 H2 |# D4 r( [    static unsigned int length = sizeof(txArray);6 a* ~9 O6 x2 @% h  b4 s1 Y
    static unsigned int count = 0;
9 V+ o$ K9 h! S1 I    unsigned int int_id = 0;. U+ K0 n' q* }8 P$ n; B  R+ W

$ v+ R6 X( x, s7 z9 N* p$ @
7 U- x( ]& j  S: l4 P# A
+ U/ t- D( w% Q) J3 Z- l% E% S    // 确定中断源2 b. w5 S+ y( X3 x+ p: x
    int_id = UARTIntStatus(SOC_UART_0_REGS);
' \( q0 }! C  Q7 E$ a- p
2 [5 g' }3 F3 \# W" k    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
, K4 S1 k" J* v9 R7 V2 s; I: A3 H8 I' c3 L* S
% o: N* }6 F% D7 ~
    // 清除 UART2 系统中断: _' w, O$ i2 p
    IntEventClear(SYS_INT_UART0_INT);
" c6 x. Q$ n: k+ S* \, z5 U2 b/ q% G4 o4 m
    // 发送中断9 U; z  f1 f# @; s4 y# r
    if(UART_INTID_TX_EMPTY == int_id)5 o" ^' L$ Q2 F
    {
  c/ `+ Z3 K8 G! }/ E        if(0 < length)" n) R: [  q5 `0 m
        {
, k8 ~* x  b* ^9 D' h6 g            // 写一个字节到 THR
! X( M' L2 |$ ?3 G: K) e            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);! d% c0 w9 \' v0 h( ]
            length--;
9 H# n- i3 w$ S% `3 ^            count++;
/ m$ `, L: \4 c        }4 n$ a  s* P5 V) h. A3 B4 Q
        if(0 == length)! E6 W3 n0 e. e, D' b3 M
        {
4 \2 @8 v! N0 Y- p. h3 J            // 禁用发送中断; f5 D- m0 L6 u6 z" K" a6 J
            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);
  h7 y& G3 Q$ T: u4 J' d, ?9 d% A        }
) J' S" C% e% n+ d& F1 a# E     }
1 j, F: C, f% e' b1 W7 s! j. N0 c* S8 Y& a, p7 ~3 r
    // 接收中断$ P% Z/ e$ {# s8 X! Q
    if(UART_INTID_RX_DATA == int_id)- |% h% @8 m" b6 q
    {
7 _1 Z0 w5 N" h! \        if(status_a0==0)
1 a* \  q  u# i" ]( K        {
* _  d  l& v# a$ J" o2 X# p2 ]                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# N6 L$ V# e% ~/ R6 Q3 y
                if(a[0]=='#')
. D$ |+ D( P# v7 B                {
4 q, t# s/ v8 `# D5 j' r                        status_a0=0x01;! g5 U3 ^5 w2 B6 q# I
                        status_a1=0x01;
* x3 l3 g2 Z9 c! y3 t                }4 e  A4 @% u, a# ^- u8 w
        }
. [+ A* g0 R% I1 \$ U        if(status_a1==0x01)
. |0 g& P+ t3 z% v: U& ]        {
/ m& R( ?) X1 X7 \5 w                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);+ e5 I1 u* M, s. n! x
                if(a[1]=='R')
; A" j% V6 l0 S7 O                {
; X, B! ?2 i) X% \/ g                        status_a1=0;# k! }% @& j2 m+ d: K" P
                        status_a2=0x01;
* R" T7 g+ M/ u) m5 i5 u                }
6 p) E! u- S3 J4 {        }
, `3 ~) Y% ^; N3 H1 f4 Z        if(status_a2==0x01)
1 y$ I( f5 a0 e' ]  H; p" B# J        {
- p$ r1 ?) K- v8 F6 b( r                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
# p& A) w4 l' \7 b                if(a[2]=='A')
7 y/ m. k! a, s6 S9 U                {
" Q9 I) Y% W) \- H* |  G; O                        status_a2=0;
9 u! w6 ~& {( i                        status_a3=0x01;: T4 q7 c- [) l- C. @+ y+ t
                }% R+ P. i. _8 \8 K/ g
        }: H0 k! b  p; @- q
        if(status_a3==0x01)
: N' Q6 C1 ~3 g3 b        {8 ]; R) z8 Q3 M2 j5 n: B; a
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
/ ]1 r. g4 T4 N% ~' B                if(a[3]=='N')
2 Y3 D8 i9 c6 }0 E$ |) ~0 t& D# r                {
. _" f: n1 M- W7 a                        status_a3=0;. C0 Q6 q' N) J: n, K6 a0 c
                        status_a4=0x01;/ G6 ~$ b( Y8 L& ^) Q0 [; F
                }2 m, B8 j. \. |* a- y5 q' A; `% w
        }
/ @! z- Z7 |4 }8 X, N        if(status_a4==0x01)% t  J+ W# N, c- I9 z( X  n: c* u
        {
5 e# ~" x9 w( {8 l                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
* t; `0 T, K- b                if(a[4]=='G')2 B3 i: V' p& ]) g
                {
4 ~( o: _- o3 v. y                        status_a4=0;' r+ f% g1 v. I, f& F- f
                        status_a5=0x01;
2 @3 x  S; g: v+ i2 q                }$ `/ N* J' j/ h$ i) ^: |. u
        }0 m. {* T+ t' N+ ^) `' k
        if(status_a5==0x01)
$ x. ^& U* t: o4 M/ P8 o        {* t- O9 R  H* y5 t$ y6 [' U
                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);# }! k3 d0 w: h& b
                if(a[5]=='E'), A/ @7 S! o$ ?9 p) l2 K
                {1 ]$ q3 d( ?$ ]% z
                        status_a5=0;
* c, a% ~5 k1 O9 [8 W* D" w/ l2 m                        status_OK=0x01;
: Y6 N- ^4 z- V1 h* @) n, f) W                }# i* n; H, L# X/ Z6 [
        }- M  ?* S4 z5 `% S
            if(status_OK==0x01)
" `1 g+ H' p, N: l( |! I        {' F( ~" e+ F" @+ i" y
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);" \1 |' E9 d4 R# i- S
                        lengthrx++;
' I/ h! c; ^; D2 N                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
6 J$ N  u/ m9 [. x0 D) F; {: Y: A                        {
% M( g* n7 X1 h' v5 a+ a" @                                RecState=0x01;
5 ], R$ E- W' t; p! y6 B: [5 v                        }
  V. e( l6 b4 ^7 J1 H' N         }; b( I' c6 o, n& d2 g

8 k$ R; [: _% v8 L     }0 g; P. w( E1 Q, ]/ P6 |
7 |0 L2 b0 c4 @, X( {
    // 接收错误% O% _* S3 T2 Y8 L6 ?" I$ [3 I
    if(UART_INTID_RX_LINE_STAT == int_id)
; s8 F" C; X" B; i  C    {5 H/ ?' i; ^, H" N, t. y
        while(UARTRxErrorGet(SOC_UART_0_REGS))
6 {+ Z3 d4 {+ V1 s& B- Z$ Q        {5 Z( ~+ \8 ?0 N  b3 ^
            // 从 RBR 读一个字节# s% ?0 y4 M* t' {& \  M' Z0 n% U
            UARTCharGetNonBlocking(SOC_UART_0_REGS);; u, C, a/ g! a* n+ I8 T" U
        }
2 M, `  R5 J: ^! o    }
* e+ s/ b6 j; d# r% Q) C- l  c0 j* a' x" M5 n, _8 A/ U  k, @
    return;
6 }8 Q9 t7 Z% _, \+ ~- [! g}
+ f6 U$ e/ e. T2 i9 f
& g8 A7 q& H% k

1 C) R7 H# e% H  r( T$ o% Y' A2 Z' q* Z  m) \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2191

积分

创龙

Rank: 8Rank: 8

积分
2191
沙发
发表于 2016-8-17 11:13:34 | 只看该作者
hi,4 \, L, O1 f: |9 n$ ]2 e9 w
+ w- q% m4 I+ j6 ^; [
UART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情况就更好。
" x, {: L4 j* B6 a
8 R+ L1 v6 H- b要更具体明确地说明下才行。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:33:23 | 只看该作者
Jackindata 发表于 2016-8-17 11:13' Q& d' |) q/ |* e
hi,
6 ], j4 s7 m) ^
( A0 ~4 e; D5 _- I: OUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...

2 A$ c6 f7 N, [( [void main (void)
4 r4 `; @; s( E) O{
1 R5 P. T+ o" D, A. S        int i,j;, k+ c7 ?3 }1 e8 s8 _" E( V( E. f6 `
    char *str_buf;6 J. \$ Z" ^5 Z+ Q! w' N6 K4 l
    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];( `+ D- h1 f9 ?. M& a$ v7 i% B
        double est_L_b_=0;
/ p; g+ A2 t9 P/ ^) x        double est_lambda_b_=0;& ]" K( p0 l5 F7 x) ~' L
        double eul_[3][1]={0};) |- y2 h$ t/ D/ o2 h4 S# p
        double est_v_eb_e_[3][1]={0};
( c# h( X7 ~& L        double est_C_b_e_[3][3]={0};
: M- I4 Q8 a5 J7 {    char *qm;
( d9 a+ u8 |1 z5 s/ ^! {    char rec[70];$ c$ x3 x* {* N" ?, [
        double L_b=0;
) E' m+ V% T. D( K% W0 x  X        double lambda_b=0;' r8 D0 F: q. t4 b  m; u. G5 \3 {
        double h_b=0;
8 B- H/ l3 `, J; f3 e7 v5 |3 S7 H1 d        double rate;
( y1 E7 g- l0 t! v! ]5 K: u  ^. f- C2 C% A% O$ U) z7 i

# W1 R( S5 r; I% J& b& _0 M* e        // 外设使能配置
0 N' R' s8 j3 N  @        PSCInit();0 S9 u! ?+ N5 ?- \4 j- o5 d

9 i2 F8 r2 E' B" U. Z% A        AppInit();
6 ~. ?- D; J+ M; K! h
& b3 c) N& F( f+ C$ C: U        // UART 初始化, \; {9 x2 l0 {! T- l( Q! {# s
        UARTInit();
* d& w8 K  t* D3 L( l7 u  E6 N( O. ?" k
        // UART 中断初始化& z; F, {  A* L* N/ o, T0 M0 @
        UARTInterruptInit();! J3 u- s# f, B( P, d5 w: u6 j
7 x1 S; g, [4 p" D1 |! M
    evtRcvd = 0;
0 y) N$ _  |, U  c$ L2 I" K* [    RecState=0;- ]4 C4 H' f4 y  D
    /* Initialize */
6 a# h& Z. m0 V0 W* V
! Y; _" k& ]8 H9 z, l) l9 z    printf("DSP subsystem ready\n");% \1 \% H4 S# Y) m0 C5 W4 K

2 O1 {; L. A& D: x    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));0 ], E8 d) w; g. @( O: x
  z  g$ J% x% @  l1 s
for(;;)
" c6 G0 s2 w3 Q* K{) ~! ~) l7 a' X3 z6 B
        if((RecState&0x01)!=0)7 T7 ]. R' _0 j! {( `
        {  N0 D2 ~7 J% Z
                printf("liuzhenxing\n");
7 }) Y( v) Q* ^5 W0 O; s        }) `+ g8 |# p7 q2 Z5 u& z0 n
        else
3 F' b8 A& s" K. Z* l7 \        {
! a* V& k% @8 B8 i* N: [" \       wait_event();
& s8 H  i# f& I0 |( C6 H" Z; a! ]! i. T/ {0 q1 F* b
           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针+ a% M- A/ C3 c! f) D1 L- W
, K; v: [, U) q- ]  X
           for(i=0;i<60;i++)
; O7 h: H4 m$ M  x( W! _           {2 H# i1 c1 l/ c3 N% ~0 K
                    rec=*qm;
! S' J# M/ Q; a/ h2 H6 `& b                    qm++;2 K) g. O. y( w0 I$ h+ S
           }
7 C% Z" I' _5 y; I) L; g
1 R$ V, n( W( _! T. w$ K# X9 u& y# f           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
/ `# p  ?# R0 r( N, _2 U+ h7 i7 t  e* _. I9 ~$ Y
           L_b=L_b_receive_double;
7 b% ^: o4 K( ]6 f           lambda_b=lambda_b_receive_double;
7 d8 m9 u3 ~3 f* ?  `  K0 ]( Y           h_b=h_b_receive_double;+ c& c4 p4 _9 I/ R
           for(i=0;i<3;i++)
- ~$ c0 ~( O' F. C% L* e/ S                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];
" H" B! q  x3 j: H2 r           for(i=0;i<3;i++)
! D+ n. q  K4 F/ H3 i! p8 Y! V! F                    for(j=0;j<3;j++)
; o1 S  \1 a& [( a! D" y2 G& a                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
( N3 a$ [0 q! D  S# d! G
  m4 A, }. |5 {( P. H& }                printf("L=%lf\n",L_b);
. z3 P* R  f  P! e4 \% `7 m                printf("lambda=%lf\n",lambda_b);
7 k5 {; @6 J# Q( B2 a: |                printf("h=%lf\n",h_b);, R, v* Z6 q2 p1 T& A) }
1 u1 n' X* _4 ^; P$ D1 y! Z& Q0 S
                for (i=0;i<3;i++)5 B  j+ b: c( T. Z
                        printf("%lf\n",est_v_eb_e_[0]);0 y9 M$ {) `4 G
                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]);
8 u, Y8 u! S) \# d% _                printf("rate=%lf\n",rate);
6 X0 a6 N, d+ @0 O+ `# I0 L  x  ~& P* T, K
                CTM_to_Euler(est_C_b_e_,eul_);
+ J  X# D0 M3 O, p                for (i=0;i<3;i++)
* V* P/ z# B* u& d6 X                        printf("%lf\n",eul_[0]);
1 u5 z  T( \8 ~7 P5 A                printf("end************************\n\n\n");
% y; I7 t( ^$ X  G& s0 Y; d$ `4 K; R4 O, M8 m. v' u
                /**********************************************************************/
( g/ g; x) O# t
$ k! X! C2 V  o7 ^4 L. ^* g            char flag[4];2 O' f' e- K7 g* T& \; x

# P) B. B/ s0 c9 f; c0 k& H            flag[3]=0x00;7 Q1 N  B* J* D# ]5 Q0 H
            flag[2]=0x00;
9 s3 C& g, s+ C2 Q- _9 }& e            flag[1]=0x00;  a  H; C" j+ {+ r5 P0 U
            flag[0]=0x01;3 E# |2 y6 ?8 _$ G0 ~6 _, w5 I
! A: d  @  U, [) v8 P4 {
    /* Allocate I/O buffer and init with string */1 A) d  t2 D  M* C" ^! B
    str_buf = (char *) malloc(80);
4 r: W. q$ t5 i# Z    str_buf =flag;4 i. ?8 A6 A$ C6 l3 |; F9 }
7 f7 H, _6 Q& ?
    /* Send buffer to remote CPU */
# N. H* s) W7 P/ ~% U3 D3 y' E    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));; C$ T# p  j! ~% r9 X) R" w, J/ `" J

* ~2 x3 d. C1 T/ S    printf((char *) myPayload);" O1 {2 c& O& |7 ?
        }8 L1 B. C& ^- e$ Z! h* N! V3 x
}# G% o( b$ B; t. [

5 G8 Z4 i6 n6 u0 S; I    WAIT_HERE;3 t" r3 v' \4 G. m$ L
}
! a5 V% R2 R4 \" E0 e* a
回复 支持 反对

使用道具 举报

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 | 只看该作者
我说一下调试的情况:
$ F  n9 A: H* _* y我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。- ?( D: |6 m- h: o! u
然后我把双核通信的初始化屏蔽掉,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:546 |% f. f# f9 L- I+ ~
syslink 的初始化是否成功,notify 通信是否正常了?

3 @! u* S) u5 Z  a$ ?1 r双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
9#
 楼主| 发表于 2016-8-17 16:20:09 | 只看该作者
Jackindata 发表于 2016-8-17 11:54. B  B2 z4 C8 I' B" p
syslink 的初始化是否成功,notify 通信是否正常了?

. H& i: E! `, Z' l8 U; w* {我用的是裸机开发的双核通信,用的是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
% F: |) d8 p1 F1 H9 X我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

% ~! C# |* A7 E6 ?: c) O4 m建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 19:16 , Processed in 0.052936 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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