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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
跳转到指定楼层
楼主
发表于 2016-8-16 14:54:35 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
OMAPL138双核通信,现在需要DSP核中的UART0接口。) w2 \; h) b+ T
我是在DSP初始化这不太明白。! H7 N" q! k5 A3 w
初始化要初始双核通信的IPC和UART0。  我是按照下面的顺序进行初始化的,但是UART0接口接收不到数据。
8 \/ K) T  ]1 m: H. _4 x  L2 A7 z& p6 F* t( }! p8 k3 E

( U% D) ?  }- Y首先        PSCInit();//UART0使能
" l3 A6 W$ t+ ]7 ~) U9 Svoid PSCInit(void)  R& u0 q5 `2 C4 f- ^& B# J
{" g2 a+ _0 Y. I1 K2 U( |
        // 对相应外设模块的使能也可以在 BootLoader 中完成6 b4 E  Q* }. A+ w
    // 使能 UART0 模块
; f0 U. b0 A) J- E1 q+ _# X    PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_UART0, PSC_POWERDOMAIN_ALWAYS_ON,PSC_MDCTL_NEXT_ENABLE);
$ q3 O& p; _! ^  \% u" g}
' `1 j: u/ D3 G* C+ `

# T6 y5 h1 M5 K1 P9 v; v
8 o6 |* Z/ R& _" f0 o( i6 I. O# |- a然后是 双核通信的初始化           AppInit();* a) R7 f9 C! u/ `7 A* E+ L. U
void AppInit(void)
' D8 P2 {) [1 D6 u- b9 u3 c{! d" x4 L# r- `% a' P8 a
    /* Structure to initialize IPC (see Ipc.h for definitions) */0 D" f4 ?) P2 ^
    struct IPC_cfg ipcCfg = {5 W& i8 E7 e/ h8 a5 a( ?
            IPC_DSP0,             /* local processor Id */
" [0 w3 h, o4 O# [* W, v. p            IPC_ARM_HOST,         /* remote processor Id */9 g# \3 S! `4 K% O) K6 X
            IPC_HOST_INTLINE,     /* ID of interrupt line to remote CPU */2 a/ f' |- Z% r+ e; C
            IPC_INTERRUPT_METHOD, /* Method to receive from remote processor */$ E# A( e# f0 W
            NUM_MAX_EVENT,        /* maximum number of events to be created */4 d7 N  T# A. A% A( v
            &ipcPvMemDsp,         /* local side private IPC memory */( f+ _2 ?8 N) P
            &ipcPvMemArm          /* remote side private IPC memory */
3 O" b* k  O; Q! l+ W. m    };  O/ v8 E3 j. d  f1 G* ?3 e
    IntDSPINTCInit();
' e: X$ e, s& T# e( E0 j  ~) ?/ x    IPC_init(&ipcCfg);7 u7 o" A/ F5 j5 P# u; b% P
    IPC_intRegister(C674X_MASK_INT5);4 a$ l; o9 X% d7 \# n& z
    iAssert (Notify_registerEvent(IPC_ARM_HOST, IPC_HOST_INTLINE, EVENTID, cbFxnEvent, 0xc0de));8 p- x0 S2 J2 K+ N1 _0 h- E

. y8 F6 v; @4 u* K3 |9 b7 t    /*  Enabling interrupts for DSP C674x CPU */
( n: l& J; ]1 H+ v! }( n: |9 `, D    IntGlobalEnable();        /* Enable C674x global interrupt */
6 l7 {! K' x1 U9 ]: N, K5 W/ J% {; y    iAssert (Notify_start()); /* This will enable IPC interrupt */& q6 d3 P3 N* |+ Z& K; {
}1 `0 X" n8 ^7 b$ Y# V
$ s  Q; e, ?7 a+ e' l$ V2 l) j# K
然后是  # `8 f- N9 d+ l
            // UART 初始化- X- w6 A- Z1 }: k) p; a1 k8 N1 j
            UARTInit();
4 P- ^5 l: h, t6 t
( h$ V$ R: F' Y) a8 B3 ?            // UART 中断初始化
7 U7 I* V3 X5 E( H1 i; c: D# S, _            UARTInterruptInit();
( a7 X; y+ r( k: d

+ ?2 L: m# E1 d: j2 t
5 D; e2 G( R- t! ~void UARTInit(void); F) ]6 z- y1 a
{
: W1 s" B! w& _$ L& U        // 配置 UART0 参数
5 f3 c% I+ a% ?/ O        // 波特率 115200 数据位 8 停止位 1 无校验位
  y1 w4 j8 I" @    UARTConfigSetExpClk(SOC_UART_0_REGS, UART_1_FREQ, BAUD_115200,9 }0 W7 s5 F3 x, G: o; v, H$ u" X
                                  UART_WORDL_8BITS, UART_OVER_SAMP_RATE_16);
' h* v$ c& L7 Z5 [1 Z        // 使能 UART06 o  f' b6 D; N2 |, t: L  T+ d
        UARTEnable(SOC_UART_0_REGS);
! X# J; q6 K5 L! v; y4 [1 Y+ h- w: {& ~# I
    // 使能接收 / 发送 FIFO
5 D1 a* R! P/ F- V1 V  {& t//    UARTFIFOEnable(SOC_UART_0_REGS);
! h& M  l! P" c2 g4 U2 x8 }0 e6 w+ O" E, X3 i4 T
        UARTFIFODisable(SOC_UART_0_REGS);
) t: }6 t1 S4 U  B+ D1 C; ?9 F0 t7 ?* b7 R" W7 p6 E
    // 设置 FIFO 级别     接收FIFO的级别
% J& [. X- b$ R: e//    UARTFIFOLevelSet(SOC_UART_0_REGS, UART_RX_TRIG_LEVEL_1);. {3 b  Z/ ]. g/ b7 {
}' L/ ~' q4 z6 p+ _

1 {) _. |! d) s5 X; L! l3 s6 t9 R1 s8 N2 o/ Q$ n$ _
void UARTInterruptInit(void)# l5 s- p- v* V8 o
{
) e# ?/ e6 M+ \! M1 l6 s        IntRegister(C674X_MASK_INT4, UARTIsr);( A8 b: t# E1 j! ^6 [& z
        IntEventMap(C674X_MASK_INT4, SYS_INT_UART0_INT);
( w& y' X1 F0 i        IntEnable(C674X_MASK_INT4);
: w4 ~, @+ v. |& F( U, s" w; l0 X" k% w4 O9 B, L1 B0 U! \
        // 使能中断6 j- s, ~; C; `: S* U
        unsigned int intFlags = 0;
! H+ G. K8 G1 Y6 B0 g- \; ]8 c    intFlags |= (UART_INT_LINE_STAT  |  \; `5 b4 U8 l# _6 E: a$ N9 L
                 UART_INT_TX_EMPTY |    \
- i4 i( d" B4 L- l+ s+ x- m                 UART_INT_RXDATA_CTI);- S  O% [* @2 {, \# x' L' K- h
    UARTIntEnable(SOC_UART_0_REGS, intFlags);
- `& C! n# |6 a7 E( I) L+ \- K}
& E' }% Y3 V0 k4 `

2 D6 t; P  a! P+ }+ f. i( n, Q& Y6 _5 q& y* x) J
void UARTIsr()4 x! E; |: x7 P  S* ^; O
{. \; h9 k3 v" u2 m
    static unsigned int length = sizeof(txArray);
. a, _1 M% t# P3 ]    static unsigned int count = 0;
; ^* z$ [4 x  y  X2 g! c  @  H    unsigned int int_id = 0;1 H# X- c! r' k5 s* K

* O# k6 t1 \/ w9 a- `) Q: z# X6 ^$ I* e% o# u
, `0 a3 T' @# K8 M& Y% S) U! F
    // 确定中断源
& N( }' B# z2 S% k; j$ C2 A# ~& e8 h! m    int_id = UARTIntStatus(SOC_UART_0_REGS);
9 K+ C; r- ^( m! X% a
+ A* P" F$ y" U/ F9 N7 a7 r    // 清除 UART0 系统中断       软件清除中断,进入中断服务函数后,中断不能自动清除,必须使用软件清除,若违背及时清除,则退出中断函数使会发生混乱。
* K1 N9 h$ {: M" N% f& {* r5 w. ]
* K5 V4 u# Q6 U: z
    // 清除 UART2 系统中断
3 B( ]+ E; r8 x  G! E    IntEventClear(SYS_INT_UART0_INT);
, H9 ]+ V6 C! K* C+ K2 ^
2 c1 D- L$ }/ f! H1 C+ x4 ]! Y. Q    // 发送中断
2 f) W$ Y4 B; S4 N3 F" w" Y    if(UART_INTID_TX_EMPTY == int_id)
1 u" l) n& o  [    {
4 _1 z5 o% {. f        if(0 < length)* `8 Y' [5 L; {! R
        {4 F4 J# ]2 Y' o* S2 [- k1 U
            // 写一个字节到 THR
, D/ E3 W2 @% l9 U+ Q7 w- M            UARTCharPutNonBlocking(SOC_UART_0_REGS, txArray[count]);. }' K8 i  T: K( O$ K% d
            length--;( L. }* y6 K6 `: b$ h! i( ~% z0 s
            count++;% J2 e3 b0 C. |* w
        }/ U; J% O6 B- |: e% V
        if(0 == length)9 U5 {9 k) H1 y4 X/ L
        {2 M9 f3 n" s4 |) Y
            // 禁用发送中断
" K7 g" t+ V, S. I/ D            UARTIntDisable(SOC_UART_0_REGS, UART_INT_TX_EMPTY);$ ?+ D4 d- X: e) F( W; S
        }
3 i7 N& d) w  \; p: p0 i     }5 \8 a% W: E0 @/ M( W) E# D9 j

2 M0 O4 _' ~# Y, {' q    // 接收中断
  \6 u  v# T: l) i    if(UART_INTID_RX_DATA == int_id); H3 J2 o. ?- T( G- A
    {$ C. y% Q& B+ m) ^# E
        if(status_a0==0)# O: l! P0 o1 n' r& {- j9 x
        {8 j+ b% B3 X+ k- Y$ Y5 K) i* ~
                a[0]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
# J' V; g& S% ?5 Z. d, X                if(a[0]=='#')
8 ?5 n, U/ b1 d( ^5 I                {
% Q+ y8 }$ _9 G+ T# d- E* L$ Z3 `                        status_a0=0x01;
' P$ m3 w2 z  {- E! C+ C                        status_a1=0x01;, |. J' @+ a5 n8 w" M! v1 a
                }
& f4 W) W$ w9 a$ _* o        }- e" |: C# G( B; k2 Q
        if(status_a1==0x01)% z$ }  |5 f+ y5 l/ V' C: f
        {
2 ?. s7 r: E' M, {' G                a[1]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
- t& ~' g+ p( L' }: `+ P, d+ ]! \                if(a[1]=='R')6 A2 [9 s4 u/ u, v( ^! f
                {& S4 k3 J: z+ q- z* K# i
                        status_a1=0;
# S: {1 M% h2 h" d+ M; j                        status_a2=0x01;
4 z( C" X" ~1 W# d# v- e                }8 [7 j$ {$ {! D. J# ^  ]
        }' W, |' }2 E, b2 D$ D
        if(status_a2==0x01); {5 u# c' I1 J5 R7 e
        {6 x% t2 U3 E: V% Q2 @, i
                a[2]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
' v; Y  Y( |0 `& P" s. G                if(a[2]=='A')
2 P( O/ w9 d- h3 H& H. N/ @; o4 J                {
/ B. [9 U2 Z' g% K                        status_a2=0;
6 J$ U" T  r& c" H% W: b                        status_a3=0x01;$ f: O" [1 W% g7 k! e" G
                }
( Q! J* J! f4 F8 B3 T) C        }
' X% p" W  V# e1 O4 V4 i        if(status_a3==0x01)
2 j- X% e' j" o3 f        {1 E4 N/ v' Z6 s+ L0 r% m9 _
                a[3]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
( ?- s" i6 J6 O. A$ L+ v                if(a[3]=='N')
2 w( L! H$ @: ]                {
" i. W1 M1 i, p" ^% L: Q  `' |; @                        status_a3=0;/ L8 L4 ?) v  r" g6 w
                        status_a4=0x01;% `: C2 l- T! S
                }
" o: Q# Z8 l" `# I# |" k2 @) C        }' c1 }! D; m% V! X- ^. R0 i+ k
        if(status_a4==0x01)* B; G; |9 g! T1 U$ d0 z: X* B% q
        {' z5 _; V% B6 `; V1 m$ H# ?; [* c
                a[4]=UARTCharGetNonBlocking(SOC_UART_0_REGS);; g2 ~8 r$ i/ B+ r, F. d& w8 K- ~
                if(a[4]=='G')+ V, W5 _) F; V3 a
                {, l, a/ F0 V5 ^5 u& [) S
                        status_a4=0;9 U" ?0 j# Z" N
                        status_a5=0x01;1 ^: t: _3 s) y
                }
) [3 }$ c, q2 l( J5 ~+ x        }
: R* v" o2 ~; ~! L) h! Z: c, }1 k        if(status_a5==0x01)
5 ~  K! q! {0 W2 c0 E        {
, E& p0 ]; L8 `' H/ N3 {( W# X, y4 A                a[5]=UARTCharGetNonBlocking(SOC_UART_0_REGS);$ N- z/ a& B. d
                if(a[5]=='E')/ E+ [/ c8 I1 N( s
                {
( s  \" v9 O) d7 }' r( l                        status_a5=0;
; \  u$ t8 F3 _( s, y: L6 b                        status_OK=0x01;
1 ?( S9 k" F" c                }/ A$ M/ H+ R# `) C
        }
  f. p7 Z; `3 F: U            if(status_OK==0x01)- h% l6 K4 r3 ]
        {) H3 L) A7 L; n, u. E5 B
                        rxData[lengthrx]=UARTCharGetNonBlocking(SOC_UART_0_REGS);
4 M) c, v+ c4 t, w, G5 P/ o6 M; M* [                        lengthrx++;6 L( w1 B) Y) e# {1 S$ I! ?* t/ \
                        if(lengthrx==10000)//可从这里加多个矩阵   if(100或其他值)
$ U( n+ Y' g5 O* k2 }7 S4 k                        {  R8 L/ o3 ~  R1 H: b
                                RecState=0x01;$ `1 w1 @( i6 V( S5 l
                        }5 \) ?4 O8 x) f! s% h
         }0 Q0 D) c0 I( e6 ]

" u2 d' m9 V/ s/ P     }
6 d8 i" I0 o) k
- K: v0 L. F! q3 D    // 接收错误+ J7 J& w6 |, q. F; i9 e/ g. f
    if(UART_INTID_RX_LINE_STAT == int_id)$ S2 |" \/ }# Q0 K
    {3 ?! e0 Z0 q/ i" U' P5 u. f
        while(UARTRxErrorGet(SOC_UART_0_REGS))( N5 s7 R  m; N7 p# @! I0 L- y
        {
) t# Z9 }) O; [9 R' r$ {- G            // 从 RBR 读一个字节
6 [- h" O1 u7 d" v- L            UARTCharGetNonBlocking(SOC_UART_0_REGS);% F" S3 b, x( ]
        }
7 G) a9 h2 s5 L7 u    }
* c6 g$ X( e( _6 b* @
, z* g1 n2 p8 H; C( y$ j6 Q2 N9 ?    return;- k% {8 k  a8 ?* X3 a1 ~
}7 @- K/ U- W% {; E5 v' E
) d: z4 `' H2 {& X7 g& F- U

5 O6 Q; i8 v% v4 ]9 ^4 |% }4 `- m6 w/ {+ v) k/ }$ ]$ Y" J+ @8 @3 {6 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
沙发
 楼主| 发表于 2016-8-17 11:33:23 | 显示全部楼层
Jackindata 发表于 2016-8-17 11:13
8 L3 N. `" F  c# ~4 ]! A: Qhi,& Z) {+ B" O% i9 L: Z9 w6 g

5 {3 n- A6 m' lUART0 收不到数据是基于怎样的代码?请附上你自己实际使用的方式(初始化、读写),能说明你的调试情 ...
, q+ N$ R6 l. u* F0 I7 Z  C
void main (void)+ H  @: S  g" C
{: v. J8 C5 h# W. J
        int i,j;% _! G" z8 F' s- T: l1 v+ G. x
    char *str_buf;
6 s; P- C( U+ G: B9 y' P    double est_v_eb_e_receive_double[3][1],est_C_b_e_receive_double[3][3];$ W2 L) r% A$ _# W4 V, W  p
        double est_L_b_=0;2 X. T5 W- h4 n/ A( d: d* p& h/ }
        double est_lambda_b_=0;
7 J+ p! j* h0 T        double eul_[3][1]={0};( \& R; Z6 t' D% q1 \
        double est_v_eb_e_[3][1]={0};: e. C8 N  d, f- ?: s
        double est_C_b_e_[3][3]={0};4 l9 G( O/ Z# q: X, {6 g3 ?, e
    char *qm;
- o1 o+ r2 t# x2 K    char rec[70];
1 S; o8 h4 C* d; A+ O" r" c        double L_b=0;
- C8 L$ b5 X* v8 N        double lambda_b=0;% w1 E/ A9 l9 T0 r4 M' ^' L  H
        double h_b=0;7 v: B/ g$ N8 P& f1 D, w0 o; S
        double rate;) O8 l6 g0 k1 N& G, |+ S" V' b

6 H1 }" F0 U" L% @* Z$ I
, S$ S3 [8 g# X' g        // 外设使能配置8 W+ u5 V+ D1 f" Z3 Q& R
        PSCInit();
+ \! C, y. ]; L* ~$ G. ~: e. b' P. i0 G- h8 f8 K/ I
        AppInit();% w/ {- |! U& g4 q9 \+ S1 [
  {& l' H/ Y/ `0 b- q$ C2 M1 u
        // UART 初始化0 b0 S% D( Q3 V, N$ X! M) p9 t4 B
        UARTInit();
* \! w1 b( l% }+ q9 o9 y/ D4 }( c+ |- @
        // UART 中断初始化9 |+ H! g# h) z
        UARTInterruptInit();4 Z8 `2 {3 j6 k1 C

8 F7 V; z% P8 w( x    evtRcvd = 0;
( Q2 q; E9 z+ m1 D2 D    RecState=0;7 r- J" M; y9 j5 y# H# N* x4 a
    /* Initialize */
+ q2 u  c, s) a9 h4 g
7 ^7 Y! f; U* H+ }' i    printf("DSP subsystem ready\n");
  z" k! D/ Q2 Q$ p& o- h
3 M6 V  n! W" _6 |! h. r' _. C    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) 0x01, TRUE));3 L; I" R2 Z& y; W6 u

3 ]; a; A1 {! h3 Bfor(;;)8 Q' ?. s/ o' `2 x
{
6 W' ]* R) D( Q% w) i        if((RecState&0x01)!=0)
( H4 @) `( e! j        {
0 [+ T- T3 K6 N( G; D+ h. f4 N$ e                printf("liuzhenxing\n");" C( c3 T6 I" W( Y
        }& I, B  o, \: Y9 Q
        else# S0 K% y" J( d, P
        {! q9 i, R( {8 W% P! }3 F
       wait_event();7 I) o8 ^! E; ~2 ^" |" c3 n0 A2 B

, R0 p- S! j5 F3 x* ?8 o0 B5 }           qm=(char*)myPayload;//将myPayload指针(arm和dsp中间传输的指针)给一个新的指针6 j$ |2 e' t  s  o' p( x

! h4 i" T9 }' ~           for(i=0;i<60;i++)! ^, m* h: ~; e  G) s; Q+ O
           {% G3 s) |" D0 c' H6 \# D* r# J% {
                    rec=*qm;
1 E$ A) H+ G3 m* d* E, A4 B                    qm++;
8 P) T* `6 X! R2 l: z: c           }$ l: U" U( M" h' n! ^& J. N* \
8 r% R/ x9 U! M
           shujujiesuan(rec,est_v_eb_e_receive_double,est_C_b_e_receive_double);
) _9 c' K9 V9 J$ y; F
/ a4 z1 b5 b/ n3 D, k           L_b=L_b_receive_double;' ^% |8 b: {" r5 Z( h0 }
           lambda_b=lambda_b_receive_double;
3 t. R2 ~5 X" B, a' ]; o- _           h_b=h_b_receive_double;8 ^1 z! I" a' l6 |3 v9 D
           for(i=0;i<3;i++)% P6 [- @1 L+ s4 Q4 ?, v: y9 _
                est_v_eb_e_[0]=est_v_eb_e_receive_double[0];; O1 c/ A4 G& t/ V+ L" a) a4 T
           for(i=0;i<3;i++)
3 B) f2 {* e; j9 D/ k' }                    for(j=0;j<3;j++)8 _9 h" X# Z; s/ p7 O; P
                 est_C_b_e_[j]=est_C_b_e_receive_double[j];
6 j2 x0 ^% z% U, m! E3 [; F0 k
/ z& J2 W- Z+ y1 i6 _" p) n& ]: O                printf("L=%lf\n",L_b);1 y( r6 f9 D4 n) x  X+ K
                printf("lambda=%lf\n",lambda_b);6 C' r# e# x+ H6 W" X# c$ F. X
                printf("h=%lf\n",h_b);; b  G( l8 m: {# f- r4 F& [2 C
" Q/ g! w! [" F9 G- e" e9 X5 Y
                for (i=0;i<3;i++)
, z' k# q$ J# y+ `4 i% F                        printf("%lf\n",est_v_eb_e_[0]);
, r! y# r0 B! k% X+ _7 }6 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]);
# T7 g" j- g. s8 Q7 Q                printf("rate=%lf\n",rate);1 F" j9 {: b3 G
7 X" l- p/ z' u+ j
                CTM_to_Euler(est_C_b_e_,eul_);# i/ b  P- \9 M5 K; k
                for (i=0;i<3;i++)& H) |7 [0 p9 z  b5 T2 T6 r, N
                        printf("%lf\n",eul_[0]);
& J- Z+ s$ \6 w2 h% F" g                printf("end************************\n\n\n");+ r$ @* U% {/ h: {. n; f) ?
4 `6 c8 ?8 y) y9 [" W+ X
                /**********************************************************************/
0 a' X- d( k3 g) @: x$ g0 H9 `9 F$ U; g8 G* H
            char flag[4];
1 b. Y6 s3 V9 n! Y, }$ s' N
1 ^2 H1 @- w( O% h0 g  N            flag[3]=0x00;
' U& |' ]% z- ]- I$ F0 I            flag[2]=0x00;
+ Y3 V4 U# z9 |$ `, ?$ Q            flag[1]=0x00;
5 ^- b, ]; B- i/ `' D* n            flag[0]=0x01;3 W( D/ [( i' S8 r
% ^1 u* S( p+ W0 Y2 W6 p9 f7 p8 s2 j
    /* Allocate I/O buffer and init with string */
% m/ y* S( j2 v8 g# M    str_buf = (char *) malloc(80);
! Y( C( [. ?7 ]: d4 M* Z. s1 _$ y    str_buf =flag;
0 p  m) `5 s- V" V4 k' Q. O2 p. y! p3 T
    /* Send buffer to remote CPU */
2 @6 }$ Z' t) r5 c. T9 U    iAssert (Notify_sendEvent(IPC_ARM_HOST,IPC_HOST_INTLINE, EVENTID, (UInt32) str_buf, TRUE));
) U( [4 r5 ^( q2 j4 r" ]9 L' i7 j/ Z3 r" ]: a
    printf((char *) myPayload);
- @3 Z! \( P/ l; C( ?5 m        }/ L+ M+ \5 N1 L: F
}4 Z; ]5 x! a4 N( r
+ ?/ P# L3 j8 \% A0 F: I2 n
    WAIT_HERE;4 X( a- v4 l; t' X6 s7 a  y: o
}& N% E3 x7 `+ T. e  {; O
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
板凳
 楼主| 发表于 2016-8-17 11:34:30 | 显示全部楼层
上面的关于UART的子程序,在一楼
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
地板
 楼主| 发表于 2016-8-17 11:37:05 | 显示全部楼层
我说一下调试的情况:; ~; T; [: b3 }
我按照上面的程序,双核通信的和UART的都初始化了,然后UART就接受不到一个数据,就是UART这个中断就没有产生。
2 X4 k$ R8 l: l, y# d0 w/ I然后我把双核通信的初始化屏蔽掉,UART0可以正常接收到数据。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
5#
 楼主| 发表于 2016-8-17 11:40:55 | 显示全部楼层
我现在就是需要接收数据,基本上不用发送数据,所以不用管发送数据的。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
6#
 楼主| 发表于 2016-8-17 11:57:43 | 显示全部楼层
Jackindata 发表于 2016-8-17 11:54
1 m' h# y$ F$ O+ \  Z7 Esyslink 的初始化是否成功,notify 通信是否正常了?
8 ~* @( X3 ~% p! D- f0 g/ D
双核通信是正常的,就是UART0读数据不正常。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
7#
 楼主| 发表于 2016-8-17 16:20:09 | 显示全部楼层
Jackindata 发表于 2016-8-17 11:54
7 a: y# o- |% P: y4 x( m. F) X. a9 ?syslink 的初始化是否成功,notify 通信是否正常了?

1 z4 O. E# U2 d我用的是裸机开发的双核通信,用的是IPC_BUFFER_IO的例程

点评

建议查看 UART0 及 DSP 中断控制器中断相关寄存器值 是否正确  详情 回复 发表于 2016-8-18 11:34
回复 支持 反对

使用道具 举报

1

主题

9

帖子

63

积分

注册会员

Rank: 2

积分
63
8#
 楼主| 发表于 2016-8-21 14:56:04 | 显示全部楼层
能否说的具体一点,就是双核通信的都修改了哪些寄存器的值,这边双核裸机通信的资料很少。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 15:12 , Processed in 0.045711 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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